Renamed permission 'update_project' to 'manage_project'. Some permissions fixes; added them in some places where they were missing.

This commit is contained in:
Matej Zrimšek 2018-02-02 18:48:55 +01:00
parent 13e9a2a132
commit 93536afcd5
6 changed files with 36 additions and 36 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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">&times;</span></button> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</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>

View file

@ -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>

View file

@ -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 %>