Add permissions for shareable links and some fixes for controller [SCI-8747] (#5709)

Add permissions for shareable links and som fixes for controller [SCI-8747]
This commit is contained in:
ajugo 2023-07-05 16:21:26 +02:00 committed by GitHub
parent b7e04972e1
commit 836d1b6be1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 41 additions and 6 deletions

View file

@ -11,8 +11,8 @@ class MyModuleShareableLinksController < ApplicationController
end
def create
@my_module.shareable_link.create!(
signed_id: @my_module.signed_id,
@my_module.create_shareable_link(
uuid: @my_module.signed_id,
description: params[:description],
team: @my_module.team,
created_by: current_user
@ -48,6 +48,6 @@ class MyModuleShareableLinksController < ApplicationController
end
def check_manage_permissions
render_403 unless can_manage_my_module?(@my_module)
render_403 unless can_share_my_module?(@my_module)
end
end

View file

@ -452,7 +452,7 @@ class MyModule < ApplicationRecord
end
def shared?
current_team.shareable_links_enabled? && shareable_link.present?
team.shareable_links_enabled? && shareable_link.present?
end
def comments

View file

@ -44,6 +44,10 @@ Canaid::Permissions.register_for(MyModule) do
my_module.permission_granted?(user, MyModulePermissions::MANAGE)
end
can :share_my_module do |user, my_module|
my_module.permission_granted?(user, MyModulePermissions::SHARE)
end
can :restore_my_module do |user, my_module|
my_module.archived? && my_module.permission_granted?(user, MyModulePermissions::MANAGE)
end

View file

@ -1,6 +1,6 @@
<button class="ml-2 btn
<%= my_module.shared? ? " btn-shared" : " btn-secondary" %>
<%= can_manage_my_module?(current_user, my_module) ? "" : " disabled" %>"
<%=" disabled" unless can_share_my_module?(current_user, my_module) %>"
id="share-button"
title="<%= my_module.shared? ? t("my_modules.shareable_links.shared") : t("my_modules.shareable_links.share") %>"
type="button"

View file

@ -69,6 +69,7 @@ module PermissionExtends
READ_ARCHIVED
ACTIVITIES_READ
MANAGE
SHARE
UPDATE_START_DATE
UPDATE_DUE_DATE
UPDATE_DESCRIPTION
@ -161,6 +162,7 @@ module PermissionExtends
MyModulePermissions::READ_ARCHIVED,
MyModulePermissions::ACTIVITIES_READ,
MyModulePermissions::MANAGE,
MyModulePermissions::SHARE,
MyModulePermissions::UPDATE_START_DATE,
MyModulePermissions::UPDATE_DUE_DATE,
MyModulePermissions::UPDATE_DESCRIPTION,

View file

@ -3,7 +3,7 @@
class AddShareableLinks < ActiveRecord::Migration[6.1]
def change
create_table :shareable_links do |t|
t.string :signed_id, index: true
t.string :uuid, index: true
t.string :description
t.references :shareable, polymorphic: true, index: true
t.references :team, index: true, foreign_key: { to_table: :teams }

View file

@ -0,0 +1,29 @@
# frozen_string_literal: true
class AddShareableLinkPermissions < ActiveRecord::Migration[6.1]
MY_MODULE_SHARE_PERMISSION = [
MyModulePermissions::SHARE
].freeze
def change
reversible do |dir|
dir.up do
@owner_role = UserRole.find_predefined_owner_role
@normal_user_role = UserRole.find_predefined_normal_user_role
@owner_role.permissions = @owner_role.permissions | MY_MODULE_SHARE_PERMISSION
@normal_user_role.permissions = @normal_user_role.permissions | MY_MODULE_SHARE_PERMISSION
@owner_role.save(validate: false)
@normal_user_role.save(validate: false)
end
dir.down do
@owner_role = UserRole.find_predefined_owner_role
@normal_user_role = UserRole.find_predefined_normal_user_role
@owner_role.permissions = @owner_role.permissions - MY_MODULE_SHARE_PERMISSION
@normal_user_role.permissions = @normal_user_role.permissions - MY_MODULE_SHARE_PERMISSION
@owner_role.save(validate: false)
@normal_user_role.save(validate: false)
end
end
end
end