Show a warning flash message, if permissions were corrected and missing permissions were set

Related to issue #435
This commit is contained in:
Jan Böhmer 2023-11-25 00:28:07 +01:00
parent 17000da97e
commit 84c111ac7c
5 changed files with 1468 additions and 1429 deletions

View file

@ -230,12 +230,16 @@ class PermissionManager
/**
* This functions sets all operations mentioned in the alsoSet value of a permission, so that the structure is always valid.
* This function should be called after every setPermission() call.
* @return bool true if values were changed/corrected, false if not
*/
public function ensureCorrectSetOperations(HasPermissionsInterface $user): void
public function ensureCorrectSetOperations(HasPermissionsInterface $user): bool
{
//If we have changed anything on the permission structure due to the alsoSet value, this becomes true, so we
//redo the whole process, to ensure that all alsoSet values are set recursively.
$return_value = false;
do {
$anything_changed = false; //Reset the variable for the next iteration
@ -254,12 +258,15 @@ class PermissionManager
$this->setPermission($user, $set_perm, $set_op, true);
//Mark the change, so we redo the whole process
$anything_changed = true;
$return_value = true;
}
}
}
}
}
} while($anything_changed);
return $return_value;
}
/**