mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-04-02 18:31:30 +08:00
Merge pull request #4088 from aignatov-bio/ai-sci-6809-fix-tinymce-assets-for-step
Fix tinymce assets for steps [SCI-6809]
This commit is contained in:
commit
880f23c227
7 changed files with 15 additions and 11 deletions
app
config/initializers
|
@ -65,9 +65,9 @@ module ActiveStorage
|
|||
can_read_protocol_in_repository?(asset.object)
|
||||
when 'ResultText'
|
||||
render_403 unless can_read_experiment?(asset.object.result.my_module.experiment)
|
||||
when 'Step'
|
||||
render_403 unless can_read_protocol_in_module?(asset.object.protocol) ||
|
||||
can_read_protocol_in_repository?(asset.object.protocol)
|
||||
when 'StepText'
|
||||
render_403 unless can_read_protocol_in_module?(asset.object.step.protocol) ||
|
||||
can_read_protocol_in_repository?(asset.object.step.protocol)
|
||||
else
|
||||
render_403
|
||||
end
|
||||
|
|
|
@ -64,6 +64,7 @@ module MarvinJsActions
|
|||
asset_type = 'asset_name'
|
||||
else
|
||||
asset_type = 'tiny_mce_asset_name'
|
||||
step = asset.object.step
|
||||
end
|
||||
|
||||
protocol = step&.protocol
|
||||
|
|
|
@ -19,6 +19,7 @@ class StepOrderableElementsController < ApplicationController
|
|||
|
||||
def update
|
||||
@element.update!(orderable_params)
|
||||
TinyMceAsset.update_images(@element, params[:tiny_mce_images], current_user) if @element.is_a? StepText
|
||||
render json: @element, serializer: "#{@element.class}Serializer".constantize, user: current_user
|
||||
rescue ActiveRecord::RecordInvalid
|
||||
render json: {}, status: :unprocessable_entity
|
||||
|
|
|
@ -96,8 +96,8 @@ class TinyMceAssetsController < ApplicationController
|
|||
|
||||
@assoc = @asset.object
|
||||
|
||||
if @assoc.class == Step
|
||||
@protocol = @assoc.protocol
|
||||
if @assoc.class == StepText
|
||||
@protocol = @assoc.step.protocol
|
||||
elsif @assoc.class == Protocol
|
||||
@protocol = @assoc
|
||||
elsif @assoc.class == MyModule
|
||||
|
@ -108,7 +108,7 @@ class TinyMceAssetsController < ApplicationController
|
|||
end
|
||||
|
||||
def check_read_permission
|
||||
if @assoc.class == Step || @assoc.class == Protocol
|
||||
if @assoc.class == StepText || @assoc.class == Protocol
|
||||
return render_403 unless can_read_protocol_in_module?(@protocol) ||
|
||||
can_read_protocol_in_repository?(@protocol)
|
||||
elsif @assoc.class == ResultText || @assoc.class == MyModule
|
||||
|
@ -126,8 +126,8 @@ class TinyMceAssetsController < ApplicationController
|
|||
end
|
||||
|
||||
case @assoc
|
||||
when Step
|
||||
return render_403 unless can_manage_step?(@assoc)
|
||||
when StepText
|
||||
return render_403 unless can_manage_step?(@assoc.step)
|
||||
when Protocol
|
||||
return render_403 unless can_manage_protocol_in_module?(@protocol) ||
|
||||
can_manage_protocol_in_repository?(@protocol)
|
||||
|
|
|
@ -154,6 +154,8 @@ class Team < ApplicationRecord
|
|||
case obj.class.name
|
||||
when 'Protocol'
|
||||
obj.team_id
|
||||
when 'StepText'
|
||||
obj.step.protocol.team_id
|
||||
when 'MyModule', 'Step'
|
||||
obj.protocol.team_id
|
||||
when 'ResultText'
|
||||
|
|
|
@ -146,8 +146,8 @@ class TinyMceAsset < ApplicationRecord
|
|||
def clone_tinymce_asset(obj)
|
||||
begin
|
||||
# It will trigger only for Step or ResultText
|
||||
team_id = if obj.class.name == 'Step'
|
||||
obj.protocol.team_id
|
||||
team_id = if obj.class.name == 'StepText'
|
||||
obj.step.protocol.team_id
|
||||
else
|
||||
obj.result.my_module.protocol.team_id
|
||||
end
|
||||
|
|
|
@ -180,7 +180,7 @@ class Extends
|
|||
FILE_FA_ICON_MAPPINGS = {}
|
||||
|
||||
# Mapping of rich text fileds to specific model
|
||||
RICH_TEXT_FIELD_MAPPINGS = { 'Step' => :description,
|
||||
RICH_TEXT_FIELD_MAPPINGS = { 'StepText' => :text,
|
||||
'ResultText' => :text,
|
||||
'Protocol' => :description,
|
||||
'MyModule' => :description }
|
||||
|
|
Loading…
Add table
Reference in a new issue