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.
+# @arnekolja
+# 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
Index: config/locales/de.yml
--- config/locales/de.yml (Release 1.0.4)
+++ config/locales/de.yml
@@ -378,6 +378,8 @@
permission_add_issues: Tickets hinzufügen
permission_edit_issues: Tickets bearbeiten
permission_manage_issue_relations: Ticket-Beziehungen verwalten
+ permission_manage_issue_assignment: Ticket-Zuweisungen verwalten
+ permission_view_issue_assignment: Ticket-Zuweisungen anzeigen
permission_add_issue_notes: Kommentare hinzufügen
permission_edit_issue_notes: Kommentare bearbeiten
permission_edit_own_issue_notes: Eigene Kommentare bearbeiten
Index: config/locales/en-GB.yml
--- config/locales/en-GB.yml (Release 1.0.4)
+++ config/locales/en-GB.yml
@@ -354,6 +354,8 @@
permission_add_issues: Add issues
permission_edit_issues: Edit issues
permission_manage_issue_relations: Manage issue relations
+ permission_manage_issue_assignment: Manage issue assignments
+ permission_view_issue_assignment: View issue assignments
permission_add_issue_notes: Add notes
permission_edit_issue_notes: Edit notes
permission_edit_own_issue_notes: Edit own notes
Index: config/locales/en.yml
--- config/locales/en.yml (Release 1.0.4)
+++ config/locales/en.yml
@@ -363,6 +363,8 @@
permission_add_issues: Add issues
permission_edit_issues: Edit issues
permission_manage_issue_relations: Manage issue relations
+ permission_manage_issue_assignment: Manage issue assignments
+ permission_view_issue_assignment: View issue assignments
permission_add_issue_notes: Add notes
permission_edit_issue_notes: Edit notes
permission_edit_own_issue_notes: Edit own notes