コード例 #1
0
ファイル: Feature.php プロジェクト: vampirethura/modelvillage
 public static function getFeaturePermissions($role_id)
 {
     //
     $result = [];
     $features = Role::find($role_id)->features()->wherePivot('deleted_at', null)->get();
     foreach ($features as $feature) {
         $permissions = [];
         //$permissions = Role::find($role_id)->permissions()->where('feature_id', $feature->id)->get();
         $feature_permissions = Permission::where('feature_id', $feature->id)->get();
         foreach ($feature_permissions as $fp) {
             //get the role for this feature, check whether is ther any pivot exist.
             //$roles = $fp->roles()->where('role_id', $role_id)->get(); //not using the pivot...
             $pivot = PermissionRole::whereNull('deleted_at')->where('role_id', $role_id)->where('permission_id', $fp->id)->first();
             $checked = count($pivot) > 0 ? true : false;
             $permissions[] = ['id' => $fp->id, 'feature_id' => $fp->feature_id, 'name' => $fp->name, 'descr' => $fp->descr, 'module' => $fp->module, 'position' => $fp->position, 'url' => $fp->url, 'icon' => $fp->icon, 'icon_bg' => $fp->icon_bg, 'prompt_type' => $fp->prompt_type, 'prompt_title' => $fp->prompt_title, 'prompt_content' => $fp->prompt_content, 'checked' => $checked];
         }
         $result[] = ['feature' => $feature->toArray(), 'permissions' => $permissions];
     }
     // get result ...
     return $result;
 }