Esempio n. 1
0
 public static function build_permission_groups($group_id)
 {
     //Get the modules with permissions \
     //if module does not have a permission set for this group
     //get it from module // module needs to have rules and descriptions
     $modules = \Modules\Model\Module::with(array('permissions' => function ($query) use($group_id) {
         $query->where('group_id', '=', $group_id);
     }))->where('enabled', '=', 1)->get(array('id', 'slug', 'roles', 'name'));
     // Build permission groups for our view
     $permissions_groups = array();
     foreach ($modules as $module) {
         //root array
         $permissions_groups[$module->id]['slug'] = $module->slug;
         $permissions_groups[$module->id]['name'] = $module->name;
         if (isset($module->permissions) and !empty($module->permissions)) {
             //\firephp::getinstance(true)->warn('from permisions');
             foreach ($module->permissions as $permission) {
                 $roles = json_decode($permission->roles);
                 if (isset($roles) and !empty($roles)) {
                     foreach ($roles as $role) {
                         $checked = $role->value == 1 ? 'checked="checked"' : '';
                         $permissions_groups[$module->id]['roles'][] = array('name' => $role->name, 'description' => isset($role->description) ?: 'No description provided for this role.', 'slug' => $role->slug, 'value' => $role->value, 'checked' => $checked);
                     }
                 } else {
                     //failed to decode json
                     $permissions_groups[$module->id]['roles'] = array();
                 }
             }
         } else {
             if (isset($module->roles) and !empty($module->roles)) {
                 $roles = json_decode($module->roles);
                 if (isset($roles) and !empty($roles)) {
                     foreach ($roles as $role) {
                         $checked = $role->value == 1 ? 'checked="checked"' : '';
                         $permissions_groups[$module->id]['roles'][] = array('name' => $role->name, 'description' => isset($role->description) ?: 'No description provided for this role.', 'slug' => $role->slug, 'value' => $role->value, 'checked' => $checked);
                     }
                 } else {
                     //failed to decode json
                     $permissions_groups[$module->id]['roles'] = array();
                 }
             }
         }
     }
     return $permissions_groups;
 }