public function detachRole(Permission $permission, Role $role) { self::onlyAjax(); $this->authorize(PermissionsPolicy::PERMISSION_UPDATE); try { $permission->detachRole($role, false); $title = 'Role detached !'; $message = "The role {$role->name} has been successfully detached from {$permission->name} !"; Log::info($message, compact('permission', 'role')); $this->notifySuccess($message, $title); $ajax = ['status' => 'success', 'message' => $message]; } catch (\Exception $e) { $ajax = ['status' => 'error', 'message' => $e->getMessage()]; } return response()->json($ajax); }
/** * Compose the view. * * @param \Illuminate\Contracts\View\View $view */ public function composeFilters(View $view) { $filters = collect(); // Permission groups //---------------------------------- $groups = $this->cacheResults('permissions-groups.filters', function () { return PermissionsGroup::has('permissions')->get(); }); foreach ($groups as $group) { /** @var \Arcanesoft\Auth\Models\PermissionsGroup $group */ $filters->put($group->slug, link_to_route('auth::foundation.permissions.group', $group->name, [$group->hashed_id])); } // Custom Permission group //---------------------------------- if (Permission::where('group_id', 0)->count()) { $filters->put('custom', link_to_route('auth::foundation.permissions.group', 'Custom', [hasher()->encode(0)])); } $view->with('groupFilters', $filters->toArray()); // TODO: return a collection instead of simple array }
public function deleting(Permission $permission) { $permission->roles()->detach(); $this->event->fire('auth.permissions.deleting', compact('permission')); }