BookStack\Repos\PermissionsRepo::deleteRole PHP Метод

deleteRole() публичный Метод

Check it's not an admin role or set as default before deleting. If an migration Role ID is specified the users assign to the current role will be added to the role of the specified id.
public deleteRole ( $roleId, $migrateRoleId )
$roleId
$migrateRoleId
    public function deleteRole($roleId, $migrateRoleId)
    {
        $role = $this->role->findOrFail($roleId);
        // Prevent deleting admin role or default registration role.
        if ($role->system_name && in_array($role->system_name, $this->systemRoles)) {
            throw new PermissionsException('This role is a system role and cannot be deleted');
        } else {
            if ($role->id == setting('registration-role')) {
                throw new PermissionsException('This role cannot be deleted while set as the default registration role.');
            }
        }
        if ($migrateRoleId) {
            $newRole = $this->role->find($migrateRoleId);
            if ($newRole) {
                $users = $role->users->pluck('id')->toArray();
                $newRole->users()->sync($users);
            }
        }
        $this->permissionService->deleteJointPermissionsForRole($role);
        $role->delete();
    }