Patch #3461 » redmine-1.0.4-issue-assignment-permission.patch
| app/models/issue.rb | ||
|---|---|---|
| 15 | 15 |
# along with this program; if not, write to the Free Software |
| 16 | 16 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| 17 | 17 | |
| 18 |
# Comments by akb |
|
| 19 |
# ToDo: check against permission_manage_issue_assignment |
|
| 18 | 20 |
class Issue < ActiveRecord::Base |
| 19 | 21 |
belongs_to :project |
| 20 | 22 |
belongs_to :tracker |
| app/models/query.rb | ||
|---|---|---|
| 274 | 274 |
label ||= field.gsub(/\_id$/, "") |
| 275 | 275 |
end |
| 276 | 276 | |
| 277 |
# @arnekolja |
|
| 278 |
# Total rewrite to reject not allowed column. Only last line is still the same. |
|
| 277 | 279 |
def available_columns |
| 278 |
return @available_columns if @available_columns |
|
| 279 |
@available_columns = Query.available_columns |
|
| 280 |
@available_columns = (@available_columns) ? @available_columns : Query.available_columns |
|
| 281 |
@available_columns.reject! {|c| c.name == :assigned_to} unless User.current.allowed_to?(:view_issue_assignment, @project)
|
|
| 282 |
|
|
| 280 | 283 |
@available_columns += (project ? |
| 281 | 284 |
project.all_issue_custom_fields : |
| 282 | 285 |
IssueCustomField.find(:all) |
| app/views/issues/_attributes.rhtml | ||
|---|---|---|
| 8 | 8 |
<% end %> |
| 9 | 9 | |
| 10 | 10 |
<p><%= f.select :priority_id, (@priorities.collect {|p| [p.name, p.id]}), {:required => true}, :disabled => !@issue.leaf? %></p>
|
| 11 |
<p><%= f.select :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %></p>
|
|
| 11 |
<% if User.current.allowed_to?(:manage_issue_assignment, @project) -%> |
|
| 12 |
<p><%= f.select :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %></p>
|
|
| 13 |
<% else %> |
|
| 14 |
<% if User.current.allowed_to?(:view_issue_assignment, @project) -%> |
|
| 15 |
<p><label><%=l(:field_assigned_to)%></label><%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %></p> |
|
| 16 |
<% end %> |
|
| 17 |
<% end %> |
|
| 12 | 18 |
<% unless @project.issue_categories.empty? %> |
| 13 | 19 |
<p><%= f.select :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}), :include_blank => true %>
|
| 14 | 20 |
<%= prompt_to_remote(image_tag('add.png', :style => 'vertical-align: middle;'),
|
| app/views/issues/show.rhtml | ||
|---|---|---|
| 25 | 25 |
<th class="due-date"><%=l(:field_due_date)%>:</th><td class="due-date"><%= format_date(@issue.due_date) %></td> |
| 26 | 26 |
</tr> |
| 27 | 27 |
<tr> |
| 28 |
<th class="assigned-to"><%=l(:field_assigned_to)%>:</th><td class="assigned-to"><%= avatar(@issue.assigned_to, :size => "14") %><%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %></td> |
|
| 28 |
<% if User.current.allowed_to?(:view_issue_assignment, @project) -%> |
|
| 29 |
<th class="assigned-to"><%=l(:field_assigned_to)%>:</th><td class="assigned-to"><%= avatar(@issue.assigned_to, :size => "14") %><%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %></td> |
|
| 30 |
<% end %> |
|
| 29 | 31 |
<th class="progress"><%=l(:field_done_ratio)%>:</th><td class="progress"><%= progress_bar @issue.done_ratio, :width => '80px', :legend => "#{@issue.done_ratio}%" %></td>
|
| 30 | 32 |
</tr> |
| 31 | 33 |
<tr> |
| lib/redmine.rb | ||
|---|---|---|
| 67 | 67 |
map.permission :add_issues, {:issues => [:new, :create, :update_form]}
|
| 68 | 68 |
map.permission :edit_issues, {:issues => [:edit, :update, :bulk_edit, :bulk_update, :update_form], :journals => [:new]}
|
| 69 | 69 |
map.permission :manage_issue_relations, {:issue_relations => [:new, :destroy]}
|
| 70 |
map.permission :manage_issue_assignment, {} # @arnekolja
|
|
| 71 |
map.permission :view_issue_assignment, {} # @arnekolja
|
|
| 70 | 72 |
map.permission :manage_subtasks, {}
|
| 71 | 73 |
map.permission :add_issue_notes, {:issues => [:edit, :update], :journals => [:new]}
|
| 72 | 74 |
map.permission :edit_issue_notes, {:journals => :edit}, :require => :loggedin
|