mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 14:45:56 +08:00
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:
parent
b7e04972e1
commit
836d1b6be1
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 }
|
||||
|
|
29
db/migrate/20230703141017_add_shareable_link_permissions.rb
Normal file
29
db/migrate/20230703141017_add_shareable_link_permissions.rb
Normal 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
|
Loading…
Reference in a new issue