コード例 #1
0
 public function update($id, $permission_type, Request $request)
 {
     if ($id <= 1) {
         return \Redirect::back();
     }
     $params = array_keys(\Request::route()->parameters());
     $permissions = $request->all();
     if (strpos($permission_type, 'management') === false) {
         $provider = $this->permissionsProvider;
     } else {
         $provider = $this->permissionManagementProvider;
     }
     $response = null;
     $type = $params[0];
     if (empty($permissions['action_id'])) {
         $response = call_user_func([$provider, sprintf('add%sPermission', ucfirst($type))], $id, $permissions['action_admin_id']);
         $message = 'add';
     } else {
         call_user_func([$provider, sprintf('remove%sPermission', ucfirst($type))], $id, $permissions['action_admin_id']);
         $message = 'del';
         $response = $permissions['action_id'];
     }
     \Event::fire(new PermissionUpdated($permission_type, $id));
     if ($request->ajax()) {
         return \Response::json(['response' => $response, 'message' => $message]);
     } else {
         \Flash::successUpdate();
         return back();
     }
 }