Various code cleaning, mainly on User, Permission and IssueStatus models.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@414 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -86,8 +86,8 @@ class ApplicationController < ActionController::Base
|
||||
# admin is always authorized
|
||||
return true if self.logged_in_user.admin?
|
||||
# if not admin, check membership permission
|
||||
@user_membership ||= Member.find(:first, :conditions => ["user_id=? and project_id=?", self.logged_in_user.id, @project.id])
|
||||
if @user_membership and Permission.allowed_to_role( "%s/%s" % [ ctrl, action ], @user_membership.role_id )
|
||||
@user_membership ||= logged_in_user.role_for_project(@project)
|
||||
if @user_membership and Permission.allowed_to_role( "%s/%s" % [ ctrl, action ], @user_membership )
|
||||
return true
|
||||
end
|
||||
render :nothing => true, :status => 403
|
||||
|
||||
@@ -84,7 +84,7 @@ private
|
||||
# project feed
|
||||
# check if project is public or if the user is a member
|
||||
@project = Project.find(params[:project_id])
|
||||
render(:nothing => true, :status => 403) and return false unless @project.is_public? || (@user && @user.role_for_project(@project.id))
|
||||
render(:nothing => true, :status => 403) and return false unless @project.is_public? || (@user && @user.role_for_project(@project))
|
||||
scope = ["#{Project.table_name}.id=?", params[:project_id].to_i]
|
||||
else
|
||||
# global feed
|
||||
|
||||
@@ -25,7 +25,7 @@ class IssuesController < ApplicationController
|
||||
include IfpdfHelper
|
||||
|
||||
def show
|
||||
@status_options = ([@issue.status] + @issue.status.workflows.find(:all, :order => 'position', :include => :new_status, :conditions => ["role_id=? and tracker_id=?", self.logged_in_user.role_for_project(@project.id), @issue.tracker.id]).collect{ |w| w.new_status }) if self.logged_in_user
|
||||
@status_options = @issue.status.find_new_statuses_allowed_to(logged_in_user.role_for_project(@project), @issue.tracker) if logged_in_user
|
||||
@custom_values = @issue.custom_values.find(:all, :include => :custom_field)
|
||||
@journals_count = @issue.journals.count
|
||||
@journals = @issue.journals.find(:all, :include => [:user, :details], :limit => 15, :order => "#{Journal.table_name}.created_on desc")
|
||||
@@ -67,9 +67,6 @@ class IssuesController < ApplicationController
|
||||
def add_note
|
||||
unless params[:notes].empty?
|
||||
journal = @issue.init_journal(self.logged_in_user, params[:notes])
|
||||
#@history = @issue.histories.build(params[:history])
|
||||
#@history.author_id = self.logged_in_user.id if self.logged_in_user
|
||||
#@history.status = @issue.status
|
||||
if @issue.save
|
||||
flash[:notice] = l(:notice_successful_update)
|
||||
Mailer.deliver_issue_edit(journal) if Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled?
|
||||
@@ -82,17 +79,10 @@ class IssuesController < ApplicationController
|
||||
end
|
||||
|
||||
def change_status
|
||||
#@history = @issue.histories.build(params[:history])
|
||||
@status_options = ([@issue.status] + @issue.status.workflows.find(:all, :order => 'position', :include => :new_status, :conditions => ["role_id=? and tracker_id=?", self.logged_in_user.role_for_project(@project.id), @issue.tracker.id]).collect{ |w| w.new_status }) if self.logged_in_user
|
||||
@status_options = @issue.status.find_new_statuses_allowed_to(logged_in_user.role_for_project(@project), @issue.tracker) if logged_in_user
|
||||
@new_status = IssueStatus.find(params[:new_status_id])
|
||||
if params[:confirm]
|
||||
begin
|
||||
#@history.author_id = self.logged_in_user.id if self.logged_in_user
|
||||
#@issue.status = @history.status
|
||||
#@issue.fixed_version_id = (params[:issue][:fixed_version_id])
|
||||
#@issue.assigned_to_id = (params[:issue][:assigned_to_id])
|
||||
#@issue.done_ratio = (params[:issue][:done_ratio])
|
||||
#@issue.lock_version = (params[:issue][:lock_version])
|
||||
journal = @issue.init_journal(self.logged_in_user, params[:notes])
|
||||
@issue.status = @new_status
|
||||
if @issue.update_attributes(params[:issue])
|
||||
|
||||
@@ -215,8 +215,7 @@ class ProjectsController < ApplicationController
|
||||
|
||||
default_status = IssueStatus.default
|
||||
@issue = Issue.new(:project => @project, :tracker => @tracker, :status => default_status)
|
||||
@allowed_statuses = [default_status] + default_status.workflows.find(:all, :order => 'position', :include => :new_status, :conditions => ["role_id=? and tracker_id=?", self.logged_in_user.role_for_project(@project.id), @issue.tracker.id]).collect{ |w| w.new_status }
|
||||
|
||||
@allowed_statuses = default_status.find_new_statuses_allowed_to(logged_in_user.role_for_project(@project), @issue.tracker) if logged_in_user
|
||||
if request.get?
|
||||
@issue.start_date = Date.today
|
||||
@custom_values = @project.custom_fields_for_issues(@tracker).collect { |x| CustomValue.new(:custom_field => x, :customized => @issue) }
|
||||
@@ -349,7 +348,7 @@ class ProjectsController < ApplicationController
|
||||
redirect_to :action => 'list_issues', :id => @project and return unless @issues
|
||||
@projects = []
|
||||
# find projects to which the user is allowed to move the issue
|
||||
@logged_in_user.memberships.each {|m| @projects << m.project if Permission.allowed_to_role("projects/move_issues", m.role_id)}
|
||||
@logged_in_user.memberships.each {|m| @projects << m.project if Permission.allowed_to_role("projects/move_issues", m.role)}
|
||||
# issue can be moved to any tracker
|
||||
@trackers = Tracker.find(:all)
|
||||
if request.post? and params[:new_project_id] and params[:new_tracker_id]
|
||||
|
||||
Reference in New Issue
Block a user