Class: Hyrax::Collections::PermissionsService
- Inherits:
-
Object
- Object
- Hyrax::Collections::PermissionsService
- Defined in:
- app/services/hyrax/collections/permissions_service.rb
Class Method Summary collapse
-
.can_deposit_in_collection?(collection_id:, ability:) ⇒ Boolean
Determine if the given user has permissions to deposit into the given collection.
-
.can_manage_any_admin_set?(ability:) ⇒ Boolean
Determine if the given user has permissions to manage at least one admin set.
-
.can_manage_any_collection?(ability:) ⇒ Boolean
Determine if the given user has permissions to manage at least one collection.
-
.can_view_admin_show_for_any_admin_set?(ability:) ⇒ Boolean
Determine if the given user has permissions to view the admin show page for at least one admin set.
-
.can_view_admin_show_for_any_collection?(ability:) ⇒ Boolean
Determine if the given user has permissions to view the admin show page for at least one collection.
-
.can_view_admin_show_for_collection?(collection_id:, ability:) ⇒ Boolean
Determine if the given user has permissions to view the admin show page for the collection.
-
.collection_ids_for_deposit(ability:) ⇒ Array<String>
IDs of collections into which a user can deposit.
-
.collection_ids_for_user(access:, ability:) ⇒ Array<String>
IDs of collections a user can access based on participant roles.
-
.collection_ids_for_view(ability:) ⇒ Array<String>
IDs of collections which the user can view.
-
.source_ids_for_deposit(ability:, source_type: nil, exclude_groups: []) ⇒ Array<String>
IDs of collections and/or admin_sets into which a user can deposit.
-
.source_ids_for_manage(ability:, source_type: nil) ⇒ Array<String>
IDs of collections and/or admin_sets that a user can manage.
Class Method Details
.can_deposit_in_collection?(collection_id:, ability:) ⇒ Boolean
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
Determine if the given user has permissions to deposit into the given collection
171 172 173 174 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 171 def self.can_deposit_in_collection?(collection_id:, ability:) deposit_access_to_collection?(collection_id: collection_id, ability: ability) || manage_access_to_collection?(collection_id: collection_id, ability: ability) end |
.can_manage_any_admin_set?(ability:) ⇒ Boolean
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
Determine if the given user has permissions to manage at least one admin set
TODO: MOVE TO ABILITY
159 160 161 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 159 def self.can_manage_any_admin_set?(ability:) admin_set_ids_for_user(ability: ability, access: [Hyrax::PermissionTemplateAccess::MANAGE]).present? end |
.can_manage_any_collection?(ability:) ⇒ Boolean
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
Determine if the given user has permissions to manage at least one collection
146 147 148 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 146 def self.can_manage_any_collection?(ability:) collection_ids_for_user(ability: ability, access: [Hyrax::PermissionTemplateAccess::MANAGE]).present? end |
.can_view_admin_show_for_any_admin_set?(ability:) ⇒ Boolean
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
Determine if the given user has permissions to view the admin show page for at least one admin set
TODO: MOVE TO ABILITY
133 134 135 136 137 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 133 def self.can_view_admin_show_for_any_admin_set?(ability:) admin_set_ids_for_user(ability: ability, access: [Hyrax::PermissionTemplateAccess::MANAGE, Hyrax::PermissionTemplateAccess::DEPOSIT, Hyrax::PermissionTemplateAccess::VIEW]).present? end |
.can_view_admin_show_for_any_collection?(ability:) ⇒ Boolean
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
Determine if the given user has permissions to view the admin show page for at least one collection
119 120 121 122 123 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 119 def self.can_view_admin_show_for_any_collection?(ability:) collection_ids_for_user(ability: ability, access: [Hyrax::PermissionTemplateAccess::MANAGE, Hyrax::PermissionTemplateAccess::DEPOSIT, Hyrax::PermissionTemplateAccess::VIEW]).present? end |
.can_view_admin_show_for_collection?(collection_id:, ability:) ⇒ Boolean
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
Determine if the given user has permissions to view the admin show page for the collection
184 185 186 187 188 189 190 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 184 def self.can_view_admin_show_for_collection?(collection_id:, ability:) exclude_groups = [::Ability.registered_group_name, ::Ability.public_group_name] manage_access_to_collection?(collection_id: collection_id, ability: ability) || deposit_access_to_collection?(collection_id: collection_id, ability: ability, exclude_groups: exclude_groups) || view_access_to_collection?(collection_id: collection_id, ability: ability, exclude_groups: exclude_groups) end |
.collection_ids_for_deposit(ability:) ⇒ Array<String>
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
IDs of collections into which a user can deposit.
95 96 97 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 95 def self.collection_ids_for_deposit(ability:) source_ids_for_deposit(ability: ability, source_type: 'collection') end |
.collection_ids_for_user(access:, ability:) ⇒ Array<String>
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
IDs of collections a user can access based on participant roles.
57 58 59 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 57 def self.collection_ids_for_user(access:, ability:) source_ids_for_user(access: access, ability: ability, source_type: 'collection') end |
.collection_ids_for_view(ability:) ⇒ Array<String>
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
IDs of collections which the user can view.
106 107 108 109 110 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 106 def self.collection_ids_for_view(ability:) collection_ids_for_user(ability: ability, access: [Hyrax::PermissionTemplateAccess::MANAGE, Hyrax::PermissionTemplateAccess::DEPOSIT, Hyrax::PermissionTemplateAccess::VIEW]) end |
.source_ids_for_deposit(ability:, source_type: nil, exclude_groups: []) ⇒ Array<String>
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
IDs of collections and/or admin_sets into which a user can deposit.
70 71 72 73 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 70 def self.source_ids_for_deposit(ability:, source_type: nil, exclude_groups: []) access = [Hyrax::PermissionTemplateAccess::MANAGE, Hyrax::PermissionTemplateAccess::DEPOSIT] source_ids_for_user(access: access, ability: ability, source_type: source_type, exclude_groups: exclude_groups) end |
.source_ids_for_manage(ability:, source_type: nil) ⇒ Array<String>
Several checks get the user’s groups from the user’s ability. The same values can be retrieved directly from a passed in ability.
IDs of collections and/or admin_sets that a user can manage.
83 84 85 86 |
# File 'app/services/hyrax/collections/permissions_service.rb', line 83 def self.source_ids_for_manage(ability:, source_type: nil) access = [Hyrax::PermissionTemplateAccess::MANAGE, Hyrax::PermissionTemplateAccess::MANAGE] source_ids_for_user(access: access, ability: ability, source_type: source_type) end |