From e4db079fb0e466397a37b9283f38bf24724ef901 Mon Sep 17 00:00:00 2001 From: James Smith Date: Fri, 30 Aug 2024 16:38:35 +0100 Subject: [PATCH] change caber permission names to verbs --- app/jobs/process_uploaded_file_job.rb | 2 +- app/models/concerns/default_view_permissions.rb | 4 ++-- app/models/concerns/followable.rb | 4 ++-- app/policies/application_policy.rb | 10 +++++----- app/policies/model_policy.rb | 2 +- config/initializers/caber.rb | 6 +++--- spec/jobs/process_uploaded_file_job_spec.rb | 4 ++-- spec/policies/application_policy_spec.rb | 12 ++++++------ 8 files changed, 22 insertions(+), 22 deletions(-) diff --git a/app/jobs/process_uploaded_file_job.rb b/app/jobs/process_uploaded_file_job.rb index 4a2b5fa76..b6fd6a117 100644 --- a/app/jobs/process_uploaded_file_job.rb +++ b/app/jobs/process_uploaded_file_job.rb @@ -14,7 +14,7 @@ class ProcessUploadedFileJob < ApplicationJob model_name = model_path.humanize.tr("+", " ").titleize # Create model model = library.models.create(name: model_name, path: "#{model_path}##{SecureRandom.hex(4)}") - model.grant_permission_to "owner", owner + model.grant_permission_to "own", owner model.update! path: "#{model_path}##{model.id}" # Set to proper ID after saving # Handle different file types begin diff --git a/app/models/concerns/default_view_permissions.rb b/app/models/concerns/default_view_permissions.rb index 759849b8b..0a3e0a701 100644 --- a/app/models/concerns/default_view_permissions.rb +++ b/app/models/concerns/default_view_permissions.rb @@ -7,9 +7,9 @@ module DefaultViewPermissions def assign_default_view_permissions # Grant local view access by default - grant_permission_to("viewer", Role.find_or_create_by(name: :viewer)) + grant_permission_to("view", Role.find_or_create_by(name: :viewer)) # Set default owner owner = SiteSettings.default_user - grant_permission_to("owner", owner) if owner + grant_permission_to("own", owner) if owner end end diff --git a/app/models/concerns/followable.rb b/app/models/concerns/followable.rb index 3b7d586f1..ed2a7ac28 100644 --- a/app/models/concerns/followable.rb +++ b/app/models/concerns/followable.rb @@ -21,7 +21,7 @@ module Followable private def post_creation_activity - user = permitted_users.with_permission("owner").first || SiteSettings.default_user + user = permitted_users.with_permission("own").first || SiteSettings.default_user return if user.nil? user.create_actor_if_missing Federails::Activity.create!( @@ -34,7 +34,7 @@ module Followable def post_update_activity return if actor.activities_as_entity.where(created_at: TIMEOUT.minutes.ago..).count > 0 - user = permitted_users.with_permission("owner").first || SiteSettings.default_user + user = permitted_users.with_permission("own").first || SiteSettings.default_user return if user.nil? Federails::Activity.create!( actor: user.actor, diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index 6a51e6d58..28d224963 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -15,7 +15,7 @@ class ApplicationPolicy def show? one_of( user&.is_moderator?, - check_permissions(record, ["viewer", "editor", "owner"], user, role_fallback: :viewer) + check_permissions(record, ["view", "edit", "own"], user, role_fallback: :viewer) ) end @@ -30,7 +30,7 @@ class ApplicationPolicy def update? one_of( user&.is_moderator?, - check_permissions(record, ["editor", "owner"], user, role_fallback: :moderator) + check_permissions(record, ["edit", "own"], user, role_fallback: :moderator) ) end @@ -42,7 +42,7 @@ class ApplicationPolicy all_of( one_of( user&.is_moderator?, - check_permissions(record, ["editor", "owner"], user, role_fallback: :moderator) + check_permissions(record, ["edit", "own"], user, role_fallback: :moderator) ), none_of( SiteSettings.demo_mode_enabled? @@ -59,8 +59,8 @@ class ApplicationPolicy def resolve return scope.all if user.is_moderator? || !scope.respond_to?(:granted_to) - result = scope.granted_to(["viewer", "editor", "owner"], [user, nil]) - result = result.or(scope.granted_to(["viewer", "editor", "owner"], user.roles)) if user + result = scope.granted_to(["view", "edit", "own"], [user, nil]) + result = result.or(scope.granted_to(["view", "edit", "own"], user.roles)) if user result end diff --git a/app/policies/model_policy.rb b/app/policies/model_policy.rb index 2e91a6437..76ab6dbc3 100644 --- a/app/policies/model_policy.rb +++ b/app/policies/model_policy.rb @@ -3,7 +3,7 @@ class ModelPolicy < ApplicationPolicy all_of( one_of( user&.is_moderator?, - check_permissions(record, ["editor", "owner"], user) + check_permissions(record, ["edit", "own"], user) ), none_of( SiteSettings.demo_mode_enabled? diff --git a/config/initializers/caber.rb b/config/initializers/caber.rb index 017dac81e..fbdfcbcea 100644 --- a/config/initializers/caber.rb +++ b/config/initializers/caber.rb @@ -2,8 +2,8 @@ Caber.configure do |config| # List the object-level permissions you want config.permissions = [ - "viewer", - "editor", - "owner" + "view", + "edit", + "own" ] end diff --git a/spec/jobs/process_uploaded_file_job_spec.rb b/spec/jobs/process_uploaded_file_job_spec.rb index a21f199a4..b450ef4be 100644 --- a/spec/jobs/process_uploaded_file_job_spec.rb +++ b/spec/jobs/process_uploaded_file_job_spec.rb @@ -44,12 +44,12 @@ RSpec.describe ProcessUploadedFileJob do it "Sets default owner permission if no owner set" do job.perform(library.id, file) - expect(Model.last.permitted_users.with_permission(:owner)).to include admin + expect(Model.last.permitted_users.with_permission(:own)).to include admin end it "Sets owner permission to provided user" do job.perform(library.id, file, owner: uploader) - expect(Model.last.permitted_users.with_permission(:owner)).to include uploader + expect(Model.last.permitted_users.with_permission(:own)).to include uploader end end diff --git a/spec/policies/application_policy_spec.rb b/spec/policies/application_policy_spec.rb index b3c101a9e..bdcbfec0b 100644 --- a/spec/policies/application_policy_spec.rb +++ b/spec/policies/application_policy_spec.rb @@ -18,7 +18,7 @@ describe ApplicationPolicy do context "when default viewer role access is removed" do before do - model.revoke_permission("viewer", Role.find_by(name: :viewer)) + model.revoke_permission("view", Role.find_by(name: :viewer)) end it "denies users without individual viewer permission" do @@ -26,7 +26,7 @@ describe ApplicationPolicy do end it "allows users with individual viewer permission" do - model.grant_permission_to "viewer", viewer + model.grant_permission_to "view", viewer expect(policy).to permit(viewer, model) end end @@ -37,7 +37,7 @@ describe ApplicationPolicy do end it "allows access if public view permission is set" do - model.grant_permission_to "viewer", nil + model.grant_permission_to "view", nil expect(policy).to permit(nil, model) end end @@ -72,17 +72,17 @@ describe ApplicationPolicy do end it "allows users with granted edit permission" do - model.grant_permission_to "editor", viewer + model.grant_permission_to "edit", viewer expect(policy).to permit(viewer, model) end it "allows users with granted owner permission" do - model.grant_permission_to "owner", viewer + model.grant_permission_to "own", viewer expect(policy).to permit(viewer, model) end it "denies unknown users on public models" do - model.grant_permission_to "viewer", nil + model.grant_permission_to "view", nil expect(policy).not_to permit(nil, model) end end