Method: Issue.allowed_target_trackers
- Defined in:
- app/models/issue.rb
.allowed_target_trackers(project, user = User.current, current_tracker = nil) ⇒ Object
Returns a scope of trackers that user can assign project issues to
1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 |
# File 'app/models/issue.rb', line 1686 def self.allowed_target_trackers(project, user=User.current, current_tracker=nil) if project scope = project.trackers.sorted unless user.admin? roles = user.roles_for_project(project).select {|r| r.(:add_issues)} unless roles.any? {|r| r.(:add_issues)} tracker_ids = roles.map {|r| r.(:add_issues)}.flatten.uniq if current_tracker tracker_ids << current_tracker end scope = scope.where(:id => tracker_ids) end end scope else Tracker.none end end |