mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 23:16:15 +08:00
refactor create project permission
This commit is contained in:
parent
72023c7dfe
commit
29f9414839
|
@ -12,6 +12,7 @@ class ProjectsController < ApplicationController
|
|||
:samples, :experiment_archive,
|
||||
:samples_index]
|
||||
before_action :check_view_notifications_permissions, only: [ :notifications ]
|
||||
before_action :check_create_permissions, only: [ :new, :create ]
|
||||
before_action :check_edit_permissions, only: [ :edit ]
|
||||
before_action :check_experiment_archive_permissions,
|
||||
only: [:experiment_archive]
|
||||
|
@ -322,6 +323,10 @@ class ProjectsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def check_create_permissions
|
||||
render_403 unless can_create_project?(current_team)
|
||||
end
|
||||
|
||||
def check_view_notifications_permissions
|
||||
unless can_view_project_notifications(@project)
|
||||
render_403
|
||||
|
|
|
@ -255,9 +255,9 @@ module PermissionHelper
|
|||
# is_member_of_team(team)
|
||||
# end
|
||||
|
||||
def can_create_project(team)
|
||||
is_normal_user_or_admin_of_team(team)
|
||||
end
|
||||
# def can_create_project(team)
|
||||
# is_normal_user_or_admin_of_team(team)
|
||||
# end
|
||||
|
||||
# User can view project if he's assigned onto it, or if
|
||||
# a project is public/visible, and user is a member of that team
|
||||
|
|
|
@ -14,6 +14,11 @@ Canaid::Permissions.register_for(Team) do
|
|||
user.is_admin_of_team?(team)
|
||||
end
|
||||
|
||||
# create project
|
||||
can :create_project do |user, team|
|
||||
user.is_normal_user_or_admin_of_team?(team)
|
||||
end
|
||||
|
||||
# create protocol in repository, import protocol to repository
|
||||
can :create_protocol do |user, team|
|
||||
user.is_normal_user_or_admin_of_team?(team)
|
||||
|
|
Loading…
Reference in a new issue