X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/aa31e2b5647e86db79c6fd86bb98a922953afb13..b1b062e241839ede51223f90f8e12d8222414df8:/services/api/app/models/group.rb diff --git a/services/api/app/models/group.rb b/services/api/app/models/group.rb index 21e57e143e..7e015f3564 100644 --- a/services/api/app/models/group.rb +++ b/services/api/app/models/group.rb @@ -57,7 +57,7 @@ class Group < ArvadosModel end def update_trash - if trash_at_changed? or owner_uuid_changed? + if saved_change_to_trash_at? or saved_change_to_owner_uuid? # The group was added or removed from the trash. # # Strategy: @@ -97,7 +97,7 @@ on conflict (group_uuid) do update set trash_at=EXCLUDED.trash_at; end def after_ownership_change - if owner_uuid_changed? + if saved_change_to_owner_uuid? update_permissions self.owner_uuid, self.uuid, CAN_MANAGE_PERM end end @@ -119,9 +119,9 @@ delete from trashed_groups where group_uuid=$1 def ensure_owner_uuid_is_permitted if group_class == "role" - @role_creator = nil + @requested_manager_uuid = nil if new_record? - @role_creator = owner_uuid + @requested_manager_uuid = owner_uuid self.owner_uuid = system_user_uuid return true end @@ -136,9 +136,9 @@ delete from trashed_groups where group_uuid=$1 end def add_role_manage_link - if group_class == "role" && @role_creator + if group_class == "role" && @requested_manager_uuid act_as_system_user do - Link.create!(tail_uuid: @role_creator, + Link.create!(tail_uuid: @requested_manager_uuid, head_uuid: self.uuid, link_class: "permission", name: "can_manage")