Commit c43ef6e7 authored by Jean-Baptiste Barth's avatar Jean-Baptiste Barth

Code cleanup: renamed variables in User#allowed_to? with explicit names

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4234 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent e59c927e
......@@ -353,25 +353,25 @@ class User < Principal
# * a group of projects : returns true if user is allowed on every project
# * nil with options[:global] set : check if user has at least one role allowed for this action,
# or falls back to Non Member / Anonymous permissions depending if the user is logged
def allowed_to?(action, project, options={})
if project && project.is_a?(Project)
def allowed_to?(action, context, options={})
if context && context.is_a?(Project)
# No action allowed on archived projects
return false unless project.active?
return false unless context.active?
# No action allowed on disabled modules
return false unless project.allows_to?(action)
return false unless context.allows_to?(action)
# Admin users are authorized for anything else
return true if admin?
roles = roles_for_project(project)
roles = roles_for_project(context)
return false unless roles
roles.detect {|role| (project.is_public? || role.member?) && role.allowed_to?(action)}
roles.detect {|role| (context.is_public? || role.member?) && role.allowed_to?(action)}
elsif project && project.is_a?(Array)
elsif context && context.is_a?(Array)
# Authorize if user is authorized on every element of the array
project.map do |p|
allowed_to?(action,p,options)
end.inject do |memo,p|
memo && p
context.map do |project|
allowed_to?(action,project,options)
end.inject do |memo,allowed|
memo && allowed
end
elsif options[:global]
# Admin users are always authorized
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment