mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-09 21:36:44 +08:00
Implemented reset role functionality [SCI-6261] (#3662)
* Implemented reset role functionality [SCI-6261] * Linter fixes [SCI-6261]
This commit is contained in:
parent
a6c61c2b4e
commit
4ce0c53d36
11 changed files with 66 additions and 8 deletions
|
@ -43,7 +43,8 @@
|
||||||
margin-left: 1em;
|
margin-left: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a,
|
||||||
|
.bootstrap-select > .dropdown-toggle.bs-placeholder {
|
||||||
color: $color-volcano;
|
color: $color-volcano;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,12 @@ module AccessPermissions
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@experiment_member = ExperimentMember.new(current_user, @experiment, @project)
|
@experiment_member = ExperimentMember.new(current_user, @experiment, @project)
|
||||||
@experiment_member.update(permitted_update_params)
|
|
||||||
|
if permitted_update_params[:user_role_id] == 'reset'
|
||||||
|
@experiment_member.reset(permitted_update_params)
|
||||||
|
else
|
||||||
|
@experiment_member.update(permitted_update_params)
|
||||||
|
end
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.json do
|
format.json do
|
||||||
|
|
|
@ -22,7 +22,12 @@ module AccessPermissions
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@my_module_member = MyModuleMember.new(current_user, @my_module, @experiment, @project)
|
@my_module_member = MyModuleMember.new(current_user, @my_module, @experiment, @project)
|
||||||
@my_module_member.update(permitted_update_params)
|
|
||||||
|
if permitted_update_params[:user_role_id] == 'reset'
|
||||||
|
@my_module_member.reset(permitted_update_params)
|
||||||
|
else
|
||||||
|
@my_module_member.update(permitted_update_params)
|
||||||
|
end
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.json do
|
format.json do
|
||||||
|
|
|
@ -36,6 +36,21 @@ class ExperimentMember
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def reset(params)
|
||||||
|
ActiveRecord::Base.transaction do
|
||||||
|
prepare_data(params)
|
||||||
|
|
||||||
|
@user_role =
|
||||||
|
@experiment.project
|
||||||
|
.user_assignments
|
||||||
|
.find_by(user: user_assignment.user)
|
||||||
|
.user_role
|
||||||
|
|
||||||
|
user_assignment.update!(user_role: @user_role, assigned: :automatically)
|
||||||
|
log_change_activity
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def prepare_data(params)
|
def prepare_data(params)
|
||||||
|
|
|
@ -30,6 +30,21 @@ class MyModuleMember
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def reset(params)
|
||||||
|
initialize_user_assignment!(params)
|
||||||
|
|
||||||
|
ActiveRecord::Base.transaction do
|
||||||
|
@user_role =
|
||||||
|
@my_module.experiment
|
||||||
|
.user_assignments
|
||||||
|
.find_by(user: user_assignment.user)
|
||||||
|
.user_role
|
||||||
|
|
||||||
|
user_assignment.update!(user_role: @user_role, assigned: :automatically)
|
||||||
|
log_change_activity
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def initialize_user_assignment!(params)
|
def initialize_user_assignment!(params)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<% # frozen_string_literal: true %>
|
<% # frozen_string_literal: true %>
|
||||||
|
|
||||||
<div class="modal fade experiment-assignments-modal" tabindex="-1" role="dialog" data-action="modal-close">
|
<div class="modal fade user-assignments-modal experiment-assignments-modal" tabindex="-1" role="dialog" data-action="modal-close">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
<div class="modal-content" id="user_assignments_modal">
|
<div class="modal-content" id="user_assignments_modal">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<% # frozen_string_literal: true %>
|
<% # frozen_string_literal: true %>
|
||||||
|
|
||||||
<div class="modal fade my-module-assignments-modal" tabindex="-1" role="dialog">
|
<div class="modal fade user-assignments-modal my-module-assignments-modal" tabindex="-1" role="dialog">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
<div class="modal-content" id="user_assignments_modal">
|
<div class="modal-content" id="user_assignments_modal">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
|
|
|
@ -20,7 +20,12 @@
|
||||||
<% unless user == current_user %>
|
<% unless user == current_user %>
|
||||||
<div class="user-assignment-controls">
|
<div class="user-assignment-controls">
|
||||||
<div class="user-assignment-role">
|
<div class="user-assignment-role">
|
||||||
<%= f.select :user_role_id, options_for_select(user_roles_collection, selected: f.object.user_role.id), {}, class: 'form-control selectpicker', title: t('user_assignment.change_experiment_role'), data: { 'selected-text-format' => 'static' } %>
|
<%= f.select :user_role_id, nil, {}, id: "experiment_member_#{experiment_member.user.id}_user_role_id", class: 'form-control selectpicker', title: t('user_assignment.change_experiment_role'), data: { 'selected-text-format' => 'static' } do %>
|
||||||
|
<option data-content="<span title='<%= t('.reset_description') %>'><%= t('.reset') %></span>" value="reset"><%= t('.reset') %></option>
|
||||||
|
<% user_roles_collection.each do |user_role| %>
|
||||||
|
<option value="<%= user_role[1] %>"><%= user_role[0] %></option>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -20,7 +20,12 @@
|
||||||
<% unless user == current_user %>
|
<% unless user == current_user %>
|
||||||
<div class="user-assignment-controls">
|
<div class="user-assignment-controls">
|
||||||
<div class="user-assignment-role">
|
<div class="user-assignment-role">
|
||||||
<%= f.select :user_role_id, options_for_select(user_roles_collection, selected: f.object.user_role.id), {}, class: 'form-control selectpicker', title: t('user_assignment.change_my_module_role'), data: { 'selected-text-format' => 'static' } %>
|
<%= f.select :user_role_id, nil, {}, id: "my_module_member_#{my_module_member.user.id}_user_role_id", class: 'form-control selectpicker', title: t('user_assignment.change_my_module_role'), data: { 'selected-text-format' => 'static' } do %>
|
||||||
|
<option data-content="<span title='<%= t('.reset_description') %>'><%= t('.reset') %></span>" value="reset"><%= t('.reset') %></option>
|
||||||
|
<% user_roles_collection.each do |user_role| %>
|
||||||
|
<option value="<%= user_role[1] %>"><%= user_role[0] %></option>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<% # frozen_string_literal: true %>
|
<% # frozen_string_literal: true %>
|
||||||
|
|
||||||
<div class="modal fade project-assignments-modal" tabindex="-1" role="dialog" data-action="modal-close">
|
<div class="modal fade user-assignments-modal project-assignments-modal" tabindex="-1" role="dialog" data-action="modal-close">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
<%= render 'access_permissions/partials/edit_assignments_content', project: project, new_resource_path: new_resource_path, update_path: update_path %>
|
<%= render 'access_permissions/partials/edit_assignments_content', project: project, new_resource_path: new_resource_path, update_path: update_path %>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2529,6 +2529,13 @@ en:
|
||||||
submit_singular: "Grant access to 1 user"
|
submit_singular: "Grant access to 1 user"
|
||||||
submit_plural: "Grant access to {num} users"
|
submit_plural: "Grant access to {num} users"
|
||||||
find_people_html: "Find people"
|
find_people_html: "Find people"
|
||||||
|
experiment_member_field:
|
||||||
|
reset: "Inherit role"
|
||||||
|
reset_description: "The inherited role from project will be applied"
|
||||||
|
my_module_member_field:
|
||||||
|
reset: "Inherit role"
|
||||||
|
reset_description: "The inherited role from project or experiment will be applied"
|
||||||
|
|
||||||
projects:
|
projects:
|
||||||
modals:
|
modals:
|
||||||
show_modal:
|
show_modal:
|
||||||
|
|
Loading…
Add table
Reference in a new issue