X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9551b59d3aab67f77240b90bbb550faec6b2a7d9..91550c635ed37c0a79c17f276823b48433247c8a:/services/api/app/models/group.rb diff --git a/services/api/app/models/group.rb b/services/api/app/models/group.rb index 0c36a048dc..85855fda97 100644 --- a/services/api/app/models/group.rb +++ b/services/api/app/models/group.rb @@ -250,7 +250,7 @@ class Group < ArvadosModel if self.owner_uuid != system_user_uuid raise "Owner uuid for role must be system user" end - raise PermissionDeniedError unless current_user.can?(manage: uuid) + raise PermissionDeniedError.new("role group cannot be modified without can_manage permission") unless current_user.can?(manage: uuid) true else super @@ -268,6 +268,18 @@ class Group < ArvadosModel end end + def permission_to_create + if !super + return false + elsif group_class == "role" && + !Rails.configuration.Users.CanCreateRoleGroups && + !current_user.andand.is_admin + raise PermissionDeniedError.new("this cluster does not allow users to create role groups") + else + return true + end + end + def permission_to_update if !super return false