mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-06 05:04:35 +08:00
Renamed permission 'update_project' to 'manage_project'. Some permissions fixes; added them in some places where they were missing.
This commit is contained in:
parent
13e9a2a132
commit
93536afcd5
6 changed files with 36 additions and 36 deletions
|
@ -12,7 +12,7 @@ class ProjectsController < ApplicationController
|
||||||
samples experiment_archive
|
samples experiment_archive
|
||||||
samples_index)
|
samples_index)
|
||||||
before_action :check_create_permissions, only: [ :new, :create ]
|
before_action :check_create_permissions, only: [ :new, :create ]
|
||||||
before_action :check_edit_permissions, only: [ :edit ]
|
before_action :check_manage_permissions, only: %i(edit update)
|
||||||
|
|
||||||
@filter_by_archived = false
|
@filter_by_archived = false
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ class ProjectsController < ApplicationController
|
||||||
|
|
||||||
# Check archive permissions if archiving/restoring
|
# Check archive permissions if archiving/restoring
|
||||||
if project_params.include? :archive
|
if project_params.include? :archive
|
||||||
if (project_params[:archive] && !can_update_project?(@project)) ||
|
if (project_params[:archive] && !can_manage_project?(@project)) ||
|
||||||
(!project_params[:archive] && !can_restore_project?(@project))
|
(!project_params[:archive] && !can_restore_project?(@project))
|
||||||
return_error = true
|
return_error = true
|
||||||
is_archive = URI(request.referer).path == projects_archive_path ? "restore" : "archive"
|
is_archive = URI(request.referer).path == projects_archive_path ? "restore" : "archive"
|
||||||
|
@ -322,8 +322,8 @@ class ProjectsController < ApplicationController
|
||||||
render_403 unless can_create_projects?(current_team)
|
render_403 unless can_create_projects?(current_team)
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_edit_permissions
|
def check_manage_permissions
|
||||||
render_403 unless can_update_project?(@project)
|
render_403 unless can_manage_project?(@project)
|
||||||
end
|
end
|
||||||
|
|
||||||
def choose_layout
|
def choose_layout
|
||||||
|
|
|
@ -6,7 +6,7 @@ class UserProjectsController < ApplicationController
|
||||||
before_action :check_view_permissions, only: :index
|
before_action :check_view_permissions, only: :index
|
||||||
before_action :check_manage_users_permissions, only: :index_edit
|
before_action :check_manage_users_permissions, only: :index_edit
|
||||||
before_action :check_create_permissions, only: :create
|
before_action :check_create_permissions, only: :create
|
||||||
before_action :check_update_permisisons, only: %i(update destroy)
|
before_action :check_manage_permisisons, only: %i(update destroy)
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@users = @project.user_projects
|
@users = @project.user_projects
|
||||||
|
@ -183,16 +183,16 @@ class UserProjectsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_manage_users_permissions
|
def check_manage_users_permissions
|
||||||
render_403 unless can_update_project?(@project)
|
render_403 unless can_manage_project?(@project)
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_create_permissions
|
def check_create_permissions
|
||||||
render_403 unless can_create_projects?(current_team)
|
render_403 unless can_create_projects?(current_team)
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_update_permisisons
|
def check_manage_permisisons
|
||||||
render_403 unless can_update_project?(@project) ||
|
render_403 unless can_manage_project?(@project) &&
|
||||||
params[:id] != current_user.id
|
params[:id] == current_user.id
|
||||||
end
|
end
|
||||||
|
|
||||||
def init_gui
|
def init_gui
|
||||||
|
|
|
@ -5,12 +5,12 @@ Canaid::Permissions.register_for(Project) do
|
||||||
(project.visible? && user.is_member_of_team?(project.team))
|
(project.visible? && user.is_member_of_team?(project.team))
|
||||||
end
|
end
|
||||||
|
|
||||||
can :update_project do |user, project|
|
can :manage_project do |user, project|
|
||||||
user.is_owner_of_project?(project)
|
user.is_owner_of_project?(project)
|
||||||
end
|
end
|
||||||
|
|
||||||
can :restore_project do |user, project|
|
can :restore_project do |user, project|
|
||||||
can_update_project?(user, project) && project.archived?
|
can_manage_project?(user, project) && project.archived?
|
||||||
end
|
end
|
||||||
|
|
||||||
can :create_experiment do |user, project|
|
can :create_experiment do |user, project|
|
||||||
|
@ -31,12 +31,12 @@ Canaid::Permissions.register_for(Project) do
|
||||||
user.is_technician_or_higher_of_project?(project)
|
user.is_technician_or_higher_of_project?(project)
|
||||||
end
|
end
|
||||||
|
|
||||||
%(read_project
|
%i(read_project
|
||||||
update_project
|
update_project
|
||||||
create_experiment
|
create_experiment
|
||||||
add_comment_to_project
|
add_comment_to_project
|
||||||
manage_tags
|
manage_tags
|
||||||
manage_reports)
|
manage_reports)
|
||||||
.each do |perm|
|
.each do |perm|
|
||||||
can perm do |_, project|
|
can perm do |_, project|
|
||||||
project.active?
|
project.active?
|
||||||
|
@ -50,10 +50,10 @@ Canaid::Permissions.register_for(Comment) do
|
||||||
user.is_owner_of_project?(project))
|
user.is_owner_of_project?(project))
|
||||||
end
|
end
|
||||||
|
|
||||||
%(update_or_delete_project_comment)
|
%i(update_or_delete_project_comment)
|
||||||
.each do |perm|
|
.each do |perm|
|
||||||
can perm do |_, project|
|
can perm do |_, comment|
|
||||||
project.active?
|
comment.project.active?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if can_update_project?(@project) %>
|
<% if can_manage_project?(@project) %>
|
||||||
<!-- Edit project modal -->
|
<!-- Edit project modal -->
|
||||||
<div class="modal" id="edit-project-modal" tabindex="-1" role="dialog" aria-labelledby="edit-project-modal-label">
|
<div class="modal" id="edit-project-modal" tabindex="-1" role="dialog" aria-labelledby="edit-project-modal-label">
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog" role="document">
|
||||||
|
@ -41,21 +41,21 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<!-- Manage users modal -->
|
<!-- Manage users modal -->
|
||||||
<div class="modal" id="manage-users-modal" tabindex="-1" role="dialog" aria-labelledby="manage-users-modal-label">
|
<div class="modal" id="manage-users-modal" tabindex="-1" role="dialog" aria-labelledby="manage-users-modal-label">
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||||
<h4 class="modal-title" id="manage-users-modal-label"><%= t("projects.index.modal_manage_users.modal_title") %> <span id="manage-users-modal-project"></span></h4>
|
<h4 class="modal-title" id="manage-users-modal-label"><%= t("projects.index.modal_manage_users.modal_title") %> <span id="manage-users-modal-project"></span></h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body"></div>
|
||||||
|
<div class="modal-footer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body"></div>
|
|
||||||
<div class="modal-footer"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<% end %>
|
||||||
|
|
||||||
<div id="projects-toolbar">
|
<div id="projects-toolbar">
|
||||||
|
|
||||||
|
@ -67,8 +67,8 @@
|
||||||
<span class="glyphicon glyphicon-briefcase" aria-hidden="true"></span>
|
<span class="glyphicon glyphicon-briefcase" aria-hidden="true"></span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
<% if can_create_project?(@project) && @teams.length > 0 %>
|
||||||
<!-- new project button -->
|
<!-- new project button -->
|
||||||
<% if @teams.length > 0 %>
|
|
||||||
<a class="btn btn-primary pull-right" id="new-project-btn">
|
<a class="btn btn-primary pull-right" id="new-project-btn">
|
||||||
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
|
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
|
||||||
<span class="hidden-xs"><%=t "projects.index.new" %></span>
|
<span class="hidden-xs"><%=t "projects.index.new" %></span>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
data-project-users-tab-url="<%= url_for project_user_projects_path(project_id: project.id, format: :json) %>">
|
data-project-users-tab-url="<%= url_for project_user_projects_path(project_id: project.id, format: :json) %>">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
|
|
||||||
<% if can_update_project?(@project) %>
|
<% if can_manage_project?(@project) %>
|
||||||
<div class="dropdown pull-right">
|
<div class="dropdown pull-right">
|
||||||
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
||||||
<span class="caret"></span>
|
<span class="caret"></span>
|
||||||
|
|
|
@ -15,12 +15,12 @@
|
||||||
<span><%= user.full_name %></span>
|
<span><%= user.full_name %></span>
|
||||||
<br><span class="text-muted"><%= t('user_projects.enums.role.'<< user_proj.role.to_s) %></span>
|
<br><span class="text-muted"><%= t('user_projects.enums.role.'<< user_proj.role.to_s) %></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
<% if can_update_project?(@project) %>
|
<% if can_manage_project?(@project) %>
|
||||||
<p>
|
<p>
|
||||||
<hr>
|
<hr>
|
||||||
<%= link_to t("projects.index.manage_users"), project_users_edit_path(@project, format: :json), class: "manage-users-link", remote: true %>
|
<%= link_to t("projects.index.manage_users"), project_users_edit_path(@project, format: :json), class: "manage-users-link", remote: true %>
|
||||||
|
|
Loading…
Add table
Reference in a new issue