diff --git a/app/controllers/client_api/users/invitations_controller.rb b/app/controllers/client_api/users/invitations_controller.rb index f970c930e..cee448087 100644 --- a/app/controllers/client_api/users/invitations_controller.rb +++ b/app/controllers/client_api/users/invitations_controller.rb @@ -33,7 +33,7 @@ module ClientApi def check_invite_users_permission @team = Team.find_by_id(params[:team_id]) - if @team && !can_manage_user_team?(@team) + if @team && !can_manage_team_users?(@team) respond_422(t('client_api.invite_users.permission_error')) end end diff --git a/app/controllers/client_api/users/user_teams_controller.rb b/app/controllers/client_api/users/user_teams_controller.rb index c8735bdf5..5b1c13473 100644 --- a/app/controllers/client_api/users/user_teams_controller.rb +++ b/app/controllers/client_api/users/user_teams_controller.rb @@ -58,7 +58,7 @@ module ClientApi def check_manage_user_team_permission user_team = UserTeam.find_by_id(params[:user_team]) - unless can_manage_user_team?(user_team.team) + unless can_manage_team_users?(user_team.team) respond_422(t('client_api.user_teams.permission_error')) end end diff --git a/app/controllers/custom_fields_controller.rb b/app/controllers/custom_fields_controller.rb index 923e1b020..56f738bb6 100644 --- a/app/controllers/custom_fields_controller.rb +++ b/app/controllers/custom_fields_controller.rb @@ -105,7 +105,7 @@ class CustomFieldsController < ApplicationController end def check_create_permissions - render_403 unless can_manage_sample_elements?(@team) + render_403 unless can_manage_sample_columns?(@team) end def check_update_and_delete_permissions diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index dd637cd62..d169017ac 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -324,7 +324,7 @@ class ProjectsController < ApplicationController end def check_create_permissions - render_403 unless can_create_project?(current_team) + render_403 unless can_create_projects?(current_team) end def check_view_notifications_permissions diff --git a/app/controllers/protocols_controller.rb b/app/controllers/protocols_controller.rb index 8a01e2977..dbc2ccc3c 100644 --- a/app/controllers/protocols_controller.rb +++ b/app/controllers/protocols_controller.rb @@ -916,7 +916,7 @@ class ProtocolsController < ApplicationController def check_create_permissions load_team_and_type - if !can_create_protocol?(@current_team) || @type == :archive + if !can_create_protocols_in_repository?(@current_team) || @type == :archive render_403 end end @@ -926,7 +926,7 @@ class ProtocolsController < ApplicationController @original = Protocol.find_by_id(params[:id]) if @original.blank? || - !can_clone_protocol?(@original) || @type == :archive + !can_clone_protocol_in_repository?(@original) || @type == :archive render_403 end end @@ -1063,7 +1063,7 @@ class ProtocolsController < ApplicationController @protocol_json.present? && @team.present? && (@type == :public || @type == :private) && - can_create_protocol?(@team) + can_create_protocols_in_repository?(@team) ) render_403 end diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 9b42c8960..ee28d27f7 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -305,7 +305,7 @@ class RepositoriesController < ApplicationController end def check_create_permissions - render_403 unless can_manage_repository?(@team) || + render_403 unless can_create_repositories?(@team) || @team.repositories.count < Constants::REPOSITORIES_LIMIT end diff --git a/app/controllers/repository_columns_controller.rb b/app/controllers/repository_columns_controller.rb index f346e45ed..a98f38d89 100644 --- a/app/controllers/repository_columns_controller.rb +++ b/app/controllers/repository_columns_controller.rb @@ -108,7 +108,7 @@ class RepositoryColumnsController < ApplicationController end def check_create_permissions - render_403 unless can_manage_repository_column?(@repository.team) + render_403 unless can_create_repository_columns?(@repository.team) end def check_update_and_delete_permissions diff --git a/app/controllers/sample_groups_controller.rb b/app/controllers/sample_groups_controller.rb index e7705c63d..e5f3d09dd 100644 --- a/app/controllers/sample_groups_controller.rb +++ b/app/controllers/sample_groups_controller.rb @@ -134,7 +134,7 @@ class SampleGroupsController < ApplicationController end def check_permissions - render_403 unless can_manage_sample_elements?(@team) + render_403 unless can_manage_sample_columns?(@team) end def sample_group_params diff --git a/app/controllers/sample_types_controller.rb b/app/controllers/sample_types_controller.rb index 9e41f2630..0b499bd66 100644 --- a/app/controllers/sample_types_controller.rb +++ b/app/controllers/sample_types_controller.rb @@ -130,7 +130,7 @@ class SampleTypesController < ApplicationController end def check_permissions - render_403 unless can_manage_sample_elements?(@team) + render_403 unless can_manage_sample_columns?(@team) end def set_sample_type diff --git a/app/datatables/protocols_datatable.rb b/app/datatables/protocols_datatable.rb index ef7b8574e..21a3f213d 100644 --- a/app/datatables/protocols_datatable.rb +++ b/app/datatables/protocols_datatable.rb @@ -5,7 +5,7 @@ class ProtocolsDatatable < CustomDatatable def_delegator :@view, :can_update_protocol_in_repository? def_delegator :@view, :edit_protocol_path - def_delegator :@view, :can_clone_protocol? + def_delegator :@view, :can_clone_protocol_in_repository? def_delegator :@view, :clone_protocol_path def_delegator :@view, :can_update_protocol_type_in_repository? def_delegator :@view, :can_read_protocol_in_repository? @@ -88,8 +88,8 @@ class ProtocolsDatatable < CustomDatatable team: @team, type: @type) end, - 'DT_CanClone': can_clone_protocol?(protocol), - 'DT_CloneUrl': if can_clone_protocol?(protocol) + 'DT_CanClone': can_clone_protocol_in_repository?(protocol), + 'DT_CloneUrl': if can_clone_protocol_in_repository?(protocol) clone_protocol_path(protocol, team: @team, type: @type) diff --git a/app/helpers/samples_helper.rb b/app/helpers/samples_helper.rb index 8732ceda8..3fd6608c3 100644 --- a/app/helpers/samples_helper.rb +++ b/app/helpers/samples_helper.rb @@ -8,7 +8,7 @@ module SamplesHelper end def can_add_sample_related_things_to_team - can_manage_sample_elements?(@team) + can_manage_sample_columns?(@team) end def all_custom_fields diff --git a/app/permissions/team.rb b/app/permissions/team.rb index 78f505033..3988db7e8 100644 --- a/app/permissions/team.rb +++ b/app/permissions/team.rb @@ -13,17 +13,17 @@ Canaid::Permissions.register_for(Team) do end # invite user to team, change user's role, remove user from team - can :manage_user_team do |user, team| + can :manage_team_users do |user, team| user.is_admin_of_team?(team) end # create project - can :create_project do |user, team| + can :create_projects do |user, team| user.is_normal_user_or_admin_of_team?(team) end # create protocol in repository, import protocol to repository - can :create_protocol do |user, team| + can :create_protocols_in_repository do |user, team| user.is_normal_user_or_admin_of_team?(team) end @@ -34,12 +34,12 @@ Canaid::Permissions.register_for(Team) do # create custom field # create, update, delete sample type or sample group - can :manage_sample_elements do |user, team| + can :manage_sample_columns do |user, team| user.is_normal_user_or_admin_of_team?(team) end # create, copy repository - can :manage_repository do |user, team| + can :create_repositories do |user, team| user.is_admin_of_team?(team) end @@ -49,7 +49,7 @@ Canaid::Permissions.register_for(Team) do end # create repository column - can :manage_repository_column do |user, team| + can :create_repository_columns do |user, team| user.is_normal_user_or_admin_of_team?(team) end end @@ -77,8 +77,8 @@ Canaid::Permissions.register_for(Protocol) do end # clone protocol in repository - can :clone_protocol do |user, protocol| - can_create_protocol?(user, protocol.team) && + can :clone_protocol_in_repository do |user, protocol| + can_create_protocols_in_repository?(user, protocol.team) && can_read_protocol_in_repository?(user, protocol) end end @@ -93,14 +93,14 @@ end Canaid::Permissions.register_for(CustomField) do # update, delete custom field can :update_or_delete_custom_field do |user, custom_field| - can_manage_sample_elements?(user, custom_field.team) + can_manage_sample_columns?(user, custom_field.team) end end Canaid::Permissions.register_for(Repository) do # edit, destroy repository can :update_or_delete_repository do |user, repository| - can_manage_repository?(user, repository.team) + can_create_repositories?(user, repository.team) end end @@ -114,6 +114,6 @@ end Canaid::Permissions.register_for(RepositoryColumn) do # update, delete repository column can :update_or_delete_repository_column do |user, repository_column| - can_manage_repository_column?(user, repository_column.repository.team) + can_create_repository_columns?(user, repository_column.repository.team) end end diff --git a/app/views/protocols/index.html.erb b/app/views/protocols/index.html.erb index c30bdc80c..a92112449 100644 --- a/app/views/protocols/index.html.erb +++ b/app/views/protocols/index.html.erb @@ -24,7 +24,7 @@ <%= t(@type == :public ? "protocols.index.public_description" : "protocols.index.private_description") %>