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:
Jean-Philippe Lang
2007-06-23 13:49:29 +00:00
parent 5332c4362c
commit 1c44600c62
17 changed files with 112 additions and 74 deletions
+6 -1
View File
@@ -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] } },
+7
View File
@@ -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