Index: issues_controller.rb =================================================================== --- issues_controller.rb (revision 3731) +++ issues_controller.rb (working copy) @@ -353,12 +353,28 @@ projects = @issues.collect(&:project).compact.uniq @project = projects.first if projects.size == 1 - @can = {:edit => (@project && User.current.allowed_to?(:edit_issues, @project)), - :log_time => (@project && User.current.allowed_to?(:log_time, @project)), - :update => (@project && (User.current.allowed_to?(:edit_issues, @project) || (User.current.allowed_to?(:change_status, @project) && @allowed_statuses && !@allowed_statuses.empty?))), - :move => (@project && User.current.allowed_to?(:move_issues, @project)), - :copy => (@issue && @project.trackers.include?(@issue.tracker) && User.current.allowed_to?(:add_issues, @project)), - :delete => (@project && User.current.allowed_to?(:delete_issues, @project)) + edit = false + log_time = false + update = false + move = false + copy = false + delete = false + + projects.each_value do |project| + edit &= (@project && User.current.allowed_to?(:edit_issues, @project)) + log_time &= (@project && User.current.allowed_to?(:log_time, @project)), + update &= (@project && (User.current.allowed_to?(:edit_issues, @project) || (User.current.allowed_to?(:change_status, @project) && @allowed_statuses && !@allowed_statuses.empty?))), + move &= (@project && User.current.allowed_to?(:move_issues, @project)), + copy &= @issue && @project.trackers.include?(@issue.tracker) && User.current.allowed_to?(:add_issues, @project)), + delete &= (@project && User.current.allowed_to?(:delete_issues, @project)) + end + + @can = {:edit => edit, + :log_time => log_time, + :update => update, + :move => move, + :copy => copy, + :delete => delete } if @project @assignables = @project.assignable_users