Index: app/models/issue.rb =================================================================== --- app/models/issue.rb (Release 1.0.4) +++ app/models/issue.rb @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Comments by akb +# ToDo: check against permission_manage_issue_assignment class Issue < ActiveRecord::Base belongs_to :project belongs_to :tracker Index: app/models/query.rb --- app/models/query.rb (Release 1.0.4) +++ app/models/query.rb @@ -274,9 +274,12 @@ label ||= field.gsub(/\_id$/, "") end + # @arnekolja + # Total rewrite to reject not allowed column. Only last line is still the same. def available_columns - return @available_columns if @available_columns - @available_columns = Query.available_columns + @available_columns = (@available_columns) ? @available_columns : Query.available_columns + @available_columns.reject! {|c| c.name == :assigned_to} unless User.current.allowed_to?(:view_issue_assignment, @project) + @available_columns += (project ? project.all_issue_custom_fields : IssueCustomField.find(:all) Index: app/views/issues/_attributes.rhtml --- app/views/issues/_attributes.rhtml (Release 1.0.4) +++ app/views/issues/_attributes.rhtml @@ -8,7 +8,13 @@ <% end %>

<%= f.select :priority_id, (@priorities.collect {|p| [p.name, p.id]}), {:required => true}, :disabled => !@issue.leaf? %>

-

<%= f.select :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %>

+<% if User.current.allowed_to?(:manage_issue_assignment, @project) -%> +

<%= f.select :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %>

+<% else %> + <% if User.current.allowed_to?(:view_issue_assignment, @project) -%> +

<%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %>

+ <% end %> +<% end %> <% unless @project.issue_categories.empty? %>

<%= f.select :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}), :include_blank => true %> <%= prompt_to_remote(image_tag('add.png', :style => 'vertical-align: middle;'), Index: app/views/issues/show.rhtml --- app/views/issues/show.rhtml (Release 1.0.4) +++ app/views/issues/show.rhtml @@ -25,7 +25,9 @@ <%=l(:field_due_date)%>:<%= format_date(@issue.due_date) %> - <%=l(:field_assigned_to)%>:<%= avatar(@issue.assigned_to, :size => "14") %><%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %> + <% if User.current.allowed_to?(:view_issue_assignment, @project) -%> + <%=l(:field_assigned_to)%>:<%= avatar(@issue.assigned_to, :size => "14") %><%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %> + <% end %> <%=l(:field_done_ratio)%>:<%= progress_bar @issue.done_ratio, :width => '80px', :legend => "#{@issue.done_ratio}%" %> Index: lib/redmine.rb --- lib/redmine.rb (Release 1.0.4) +++ lib/redmine.rb @@ -67,6 +67,8 @@ map.permission :add_issues, {:issues => [:new, :create, :update_form]} map.permission :edit_issues, {:issues => [:edit, :update, :bulk_edit, :bulk_update, :update_form], :journals => [:new]} map.permission :manage_issue_relations, {:issue_relations => [:new, :destroy]} + map.permission :manage_issue_assignment, {} # @arnekolja + map.permission :view_issue_assignment, {} # @arnekolja map.permission :manage_subtasks, {} map.permission :add_issue_notes, {:issues => [:edit, :update], :journals => [:new]} map.permission :edit_issue_notes, {:journals => :edit}, :require => :loggedin