namespace BookStack\Entities\Tools;
-use BookStack\Actions\ActivityType;
-use BookStack\Auth\Permissions\EntityPermission;
-use BookStack\Auth\Role;
-use BookStack\Auth\User;
+use BookStack\Activity\ActivityType;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Bookshelf;
use BookStack\Entities\Models\Entity;
use BookStack\Facades\Activity;
+use BookStack\Permissions\Models\EntityPermission;
+use BookStack\Users\Models\Role;
+use BookStack\Users\Models\User;
use Illuminate\Http\Request;
class PermissionsUpdater
*/
public function updateFromApiRequestData(Entity $entity, array $data): void
{
- if (isset($data['override_role_permissions'])) {
+ if (isset($data['role_permissions'])) {
$entity->permissions()->where('role_id', '!=', 0)->delete();
- $rolePermissionData = $this->formatPermissionsFromApiRequestToEntityPermissions($data['override_role_permissions'] ?? [], false);
+ $rolePermissionData = $this->formatPermissionsFromApiRequestToEntityPermissions($data['role_permissions'] ?? [], false);
$entity->permissions()->createMany($rolePermissionData);
}
- if (array_key_exists('override_fallback_permissions', $data)) {
+ if (array_key_exists('fallback_permissions', $data)) {
$entity->permissions()->where('role_id', '=', 0)->delete();
}
- if (isset($data['override_fallback_permissions'])) {
- $data = $data['override_fallback_permissions'];
- $data['role_id'] = 0;
- $rolePermissionData = $this->formatPermissionsFromApiRequestToEntityPermissions([$data], true);
+ if (isset($data['fallback_permissions']['inheriting']) && $data['fallback_permissions']['inheriting'] !== true) {
+ $fallbackData = $data['fallback_permissions'];
+ $fallbackData['role_id'] = 0;
+ $rolePermissionData = $this->formatPermissionsFromApiRequestToEntityPermissions([$fallbackData], true);
$entity->permissions()->createMany($rolePermissionData);
}