Skip to content
Snippets Groups Projects
Unverified Commit 083d4604 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Change dynamic abilities to new format

parent d63371ad
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -246,20 +246,16 @@ class Ability
 
[:issue, :note, :project_snippet, :personal_snippet, :merge_request].each do |name|
define_method "#{name}_abilities" do |user, subject|
if subject.author == user || user.is_admin?
rules = [
if user.is_admin?
[
:"read_#{name}",
:"write_#{name}",
:"modify_#{name}",
:"update_#{name}",
:"admin_#{name}"
]
rules.push(:change_visibility_level) if subject.is_a?(Snippet)
rules
elsif subject.respond_to?(:assignee) && subject.assignee == user
elsif subject.author == user || (subject.respond_to?(:assignee) && subject.assignee == user)
[
:"read_#{name}",
:"write_#{name}",
:"modify_#{name}",
:"update_#{name}",
]
else
if subject.respond_to?(:project) && subject.project
Loading
Loading
@@ -299,8 +295,8 @@ class Ability
def named_abilities(name)
[
:"read_#{name}",
:"write_#{name}",
:"modify_#{name}",
:"create_#{name}",
:"update_#{name}",
:"admin_#{name}"
]
end
Loading
Loading
Loading
Loading
@@ -9,9 +9,9 @@ class UpdateSnippetService < BaseService
def execute
# check that user is allowed to set specified visibility_level
new_visibility = params[:visibility_level]
if new_visibility && new_visibility.to_i != snippet.visibility_level
unless can?(current_user, :change_visibility_level, snippet) &&
Gitlab::VisibilityLevel.allowed_for?(current_user, new_visibility)
unless Gitlab::VisibilityLevel.allowed_for?(current_user, new_visibility)
deny_visibility_level(snippet, new_visibility)
return snippet
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment