mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-28 16:08:22 +08:00
refactor manage repository permissions again because of addons
This commit is contained in:
parent
ec851caa80
commit
70ae14a9b8
3 changed files with 26 additions and 15 deletions
|
@ -310,7 +310,7 @@ class RepositoriesController < ApplicationController
|
|||
end
|
||||
|
||||
def check_edit_and_destroy_permissions
|
||||
render_403 unless can_manage_repository?(@team)
|
||||
render_403 unless can_update_or_delete_repository?(@repository)
|
||||
end
|
||||
|
||||
def repository_params
|
||||
|
|
|
@ -38,7 +38,7 @@ Canaid::Permissions.register_for(Team) do
|
|||
user.is_normal_user_or_admin_of_team?(team)
|
||||
end
|
||||
|
||||
# create, copy, edit, destroy repository
|
||||
# create, copy repository
|
||||
can :manage_repository do |user, team|
|
||||
user.is_admin_of_team?(team)
|
||||
end
|
||||
|
@ -97,6 +97,13 @@ Canaid::Permissions.register_for(CustomField) do
|
|||
end
|
||||
end
|
||||
|
||||
Canaid::Permissions.register_for(Repository) do
|
||||
# edit, destroy repository
|
||||
can :update_or_delete_repository do |user, repository|
|
||||
can_manage_repository?(user, repository.team)
|
||||
end
|
||||
end
|
||||
|
||||
Canaid::Permissions.register_for(RepositoryRow) do
|
||||
# update, delete specific repository record
|
||||
can :update_or_delete_repository_row do |user, repository_row|
|
||||
|
|
|
@ -43,12 +43,14 @@
|
|||
<li class="dropdown-header">
|
||||
<%= t("repositories.index.options_dropdown.header") %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to t('repositories.index.options_dropdown.rename'),
|
||||
team_repository_rename_modal_path(repository_id: repository),
|
||||
class: "rename-repo-option",
|
||||
remote: true %>
|
||||
</li>
|
||||
<% if can_update_or_delete_repository?(repository) %>
|
||||
<li>
|
||||
<%= link_to t('repositories.index.options_dropdown.rename'),
|
||||
team_repository_rename_modal_path(repository_id: repository),
|
||||
class: "rename-repo-option",
|
||||
remote: true %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if repository.team.repositories.count < Constants::REPOSITORIES_LIMIT %>
|
||||
<li>
|
||||
<%= link_to t('repositories.index.options_dropdown.copy'),
|
||||
|
@ -57,13 +59,15 @@
|
|||
remote: true %>
|
||||
</li>
|
||||
<% end %>
|
||||
<li role="separator" class="divider"></li>
|
||||
<li>
|
||||
<%= link_to t('repositories.index.modal_delete.delete'),
|
||||
team_repository_destroy_modal_path(repository_id: repository),
|
||||
class: "delete-repo-option",
|
||||
remote: true %>
|
||||
</li>
|
||||
<% if can_update_or_delete_repository?(repository) %>
|
||||
<li role="separator" class="divider"></li>
|
||||
<li>
|
||||
<%= link_to t('repositories.index.modal_delete.delete'),
|
||||
team_repository_destroy_modal_path(repository_id: repository),
|
||||
class: "delete-repo-option",
|
||||
remote: true %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Reference in a new issue