mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-01 01:14:30 +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
|
end
|
||||||
|
|
||||||
def check_edit_and_destroy_permissions
|
def check_edit_and_destroy_permissions
|
||||||
render_403 unless can_manage_repository?(@team)
|
render_403 unless can_update_or_delete_repository?(@repository)
|
||||||
end
|
end
|
||||||
|
|
||||||
def repository_params
|
def repository_params
|
||||||
|
|
|
@ -38,7 +38,7 @@ Canaid::Permissions.register_for(Team) do
|
||||||
user.is_normal_user_or_admin_of_team?(team)
|
user.is_normal_user_or_admin_of_team?(team)
|
||||||
end
|
end
|
||||||
|
|
||||||
# create, copy, edit, destroy repository
|
# create, copy repository
|
||||||
can :manage_repository do |user, team|
|
can :manage_repository do |user, team|
|
||||||
user.is_admin_of_team?(team)
|
user.is_admin_of_team?(team)
|
||||||
end
|
end
|
||||||
|
@ -97,6 +97,13 @@ Canaid::Permissions.register_for(CustomField) do
|
||||||
end
|
end
|
||||||
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
|
Canaid::Permissions.register_for(RepositoryRow) do
|
||||||
# update, delete specific repository record
|
# update, delete specific repository record
|
||||||
can :update_or_delete_repository_row do |user, repository_row|
|
can :update_or_delete_repository_row do |user, repository_row|
|
||||||
|
|
|
@ -43,12 +43,14 @@
|
||||||
<li class="dropdown-header">
|
<li class="dropdown-header">
|
||||||
<%= t("repositories.index.options_dropdown.header") %>
|
<%= t("repositories.index.options_dropdown.header") %>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<% if can_update_or_delete_repository?(repository) %>
|
||||||
<%= link_to t('repositories.index.options_dropdown.rename'),
|
<li>
|
||||||
team_repository_rename_modal_path(repository_id: repository),
|
<%= link_to t('repositories.index.options_dropdown.rename'),
|
||||||
class: "rename-repo-option",
|
team_repository_rename_modal_path(repository_id: repository),
|
||||||
remote: true %>
|
class: "rename-repo-option",
|
||||||
</li>
|
remote: true %>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
<% if repository.team.repositories.count < Constants::REPOSITORIES_LIMIT %>
|
<% if repository.team.repositories.count < Constants::REPOSITORIES_LIMIT %>
|
||||||
<li>
|
<li>
|
||||||
<%= link_to t('repositories.index.options_dropdown.copy'),
|
<%= link_to t('repositories.index.options_dropdown.copy'),
|
||||||
|
@ -57,13 +59,15 @@
|
||||||
remote: true %>
|
remote: true %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<li role="separator" class="divider"></li>
|
<% if can_update_or_delete_repository?(repository) %>
|
||||||
<li>
|
<li role="separator" class="divider"></li>
|
||||||
<%= link_to t('repositories.index.modal_delete.delete'),
|
<li>
|
||||||
team_repository_destroy_modal_path(repository_id: repository),
|
<%= link_to t('repositories.index.modal_delete.delete'),
|
||||||
class: "delete-repo-option",
|
team_repository_destroy_modal_path(repository_id: repository),
|
||||||
remote: true %>
|
class: "delete-repo-option",
|
||||||
</li>
|
remote: true %>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Reference in a new issue