*/
public function removeUserRolePermissions(User $user, array $permissions): void
{
- $permissionBuilder = app()->make(JointPermissionBuilder::class);
-
foreach ($permissions as $permissionName) {
/** @var RolePermission $permission */
$permission = RolePermission::query()
/** @var Role $role */
foreach ($roles as $role) {
$role->detachPermission($permission);
- $permissionBuilder->rebuildForRole($role);
}
$user->clearPermissionCache();
}
}
+ /**
+ * Change the owner of the given entity to the given user.
+ */
+ public function changeEntityOwner(Entity $entity, User $newOwner): void
+ {
+ $entity->owned_by = $newOwner->id;
+ $entity->save();
+ $entity->rebuildPermissions();
+ }
+
/**
* Regenerate the permission for an entity.
* Centralised to manage clearing of cached elements between requests.