Mercurial > hg > soundsoftware-site
diff lib/redmine/access_control.rb @ 1115:433d4f72a19b redmine-2.2
Update to Redmine SVN revision 11137 on 2.2-stable branch
author | Chris Cannam |
---|---|
date | Mon, 07 Jan 2013 12:01:42 +0000 |
parents | cbb26bc654de |
children | 622f24f53b42 |
line wrap: on
line diff
--- a/lib/redmine/access_control.rb Wed Jun 27 14:54:18 2012 +0100 +++ b/lib/redmine/access_control.rb Mon Jan 07 12:01:42 2013 +0000 @@ -1,5 +1,5 @@ # Redmine - project management software -# Copyright (C) 2006-2011 Jean-Philippe Lang +# Copyright (C) 2006-2012 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -54,6 +54,16 @@ @loggedin_only_permissions ||= @permissions.select {|p| p.require_loggedin?} end + def read_action?(action) + if action.is_a?(Symbol) + perm = permission(action) + !perm.nil? && perm.read? + else + s = "#{action[:controller]}/#{action[:action]}" + permissions.detect {|p| p.actions.include?(s) && !p.read?}.nil? + end + end + def available_project_modules @available_project_modules ||= @permissions.collect(&:project_module).uniq.compact end @@ -93,6 +103,7 @@ @actions = [] @public = options[:public] || false @require = options[:require] + @read = options[:read] || false @project_module = options[:project_module] hash.each do |controller, actions| if actions.is_a? Array @@ -115,6 +126,10 @@ def require_loggedin? @require && (@require == :member || @require == :loggedin) end + + def read? + @read + end end end end