Added per user custom queries.
Any logged in user can now save queries (they are not visible to the other users). Only users with explicit permission can manage queries that are visible to anyone. The queries list is removed from the "Reports" view. It can now be accessed from the issues list. git-svn-id: http://redmine.rubyforge.org/svn/trunk@566 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
+6
-1
@@ -57,7 +57,6 @@ class Query < ActiveRecord::Base
|
||||
def initialize(attributes = nil)
|
||||
super attributes
|
||||
self.filters ||= { 'status_id' => {:operator => "o", :values => [""]} }
|
||||
self.is_public = true
|
||||
end
|
||||
|
||||
def executed_by=(user)
|
||||
@@ -75,6 +74,12 @@ class Query < ActiveRecord::Base
|
||||
end if filters
|
||||
end
|
||||
|
||||
def editable_by?(user)
|
||||
return false unless user
|
||||
return true if !is_public && self.user_id == user.id
|
||||
is_public && user.authorized_to(project, "projects/add_query")
|
||||
end
|
||||
|
||||
def available_filters
|
||||
return @available_filters if @available_filters
|
||||
@available_filters = { "status_id" => { :type => :list_status, :order => 1, :values => IssueStatus.find(:all, :order => 'position').collect{|s| [s.name, s.id.to_s] } },
|
||||
|
||||
@@ -125,10 +125,17 @@ class User < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def role_for_project(project)
|
||||
return nil unless project
|
||||
member = memberships.detect {|m| m.project_id == project.id}
|
||||
member ? member.role : nil
|
||||
end
|
||||
|
||||
def authorized_to(project, action)
|
||||
return true if self.admin?
|
||||
role = role_for_project(project)
|
||||
role && Permission.allowed_to_role(action, role)
|
||||
end
|
||||
|
||||
def pref
|
||||
self.preference ||= UserPreference.new(:user => self)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user