コード例 #1
0
ファイル: Channel.php プロジェクト: fetch404/fetch404
 public function can($permissionId, $user)
 {
     $queryObj = ChannelPermission::select(array('channel_permission.permission_id', 'channel_permission.role_id', 'channel_permission.channel_id'))->leftJoin('channels as ch', function ($join) {
         $join->on('channel_permission.channel_id', '=', 'ch.id');
         //$join->on('category_forum_permission.role_id', '=', 1);
     })->with('role', 'channel', 'permission')->where('channel_id', '=', $this->id);
     $permissions = $queryObj->get();
     if ($user == null) {
         if (in_array(2, $queryObj->lists('role_id'))) {
             if ($permissionId == 17 || $permissionId == 21) {
                 return true;
             }
         }
         return false;
     }
     if ($user && $user->roles->contains(1)) {
         return true;
     }
     foreach ($permissions as $permission) {
         $permissionById = Permission::find($permissionId);
         if ($permissionById) {
             if ($permission->permission->id == $permissionId) {
                 if ($user && $user->roles->contains($permission->role->id)) {
                     return true;
                 }
             }
         }
     }
     return false;
 }