mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-01 13:19:39 +00:00
Merged bug fixes r3402, r3405 to r3408 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3431 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
b5ee8c08ca
commit
0ef11ef4fe
@ -320,13 +320,9 @@ class ProjectsController < ApplicationController
|
||||
@issues_by_version = {}
|
||||
unless @selected_tracker_ids.empty?
|
||||
@versions.each do |version|
|
||||
conditions = {:tracker_id => @selected_tracker_ids}
|
||||
if !@project.versions.include?(version)
|
||||
conditions.merge!(:project_id => project_ids)
|
||||
end
|
||||
issues = version.fixed_issues.visible.find(:all,
|
||||
:include => [:project, :status, :tracker, :priority],
|
||||
:conditions => conditions,
|
||||
:conditions => {:tracker_id => @selected_tracker_ids, :project_id => project_ids},
|
||||
:order => "#{Project.table_name}.lft, #{Tracker.table_name}.position, #{Issue.table_name}.id")
|
||||
@issues_by_version[version] = issues
|
||||
end
|
||||
|
||||
@ -249,7 +249,7 @@ class Project < ActiveRecord::Base
|
||||
return @allowed_parents if @allowed_parents
|
||||
@allowed_parents = Project.find(:all, :conditions => Project.allowed_to_condition(User.current, :add_subprojects))
|
||||
@allowed_parents = @allowed_parents - self_and_descendants
|
||||
if User.current.allowed_to?(:add_project, nil, :global => true)
|
||||
if User.current.allowed_to?(:add_project, nil, :global => true) || (!new_record? && parent.nil?)
|
||||
@allowed_parents << nil
|
||||
end
|
||||
unless parent.nil? || @allowed_parents.empty? || @allowed_parents.include?(parent)
|
||||
|
||||
@ -159,11 +159,15 @@ class Repository < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
# fetch new changesets for all repositories
|
||||
# can be called periodically by an external script
|
||||
# Fetches new changesets for all repositories of active projects
|
||||
# Can be called periodically by an external script
|
||||
# eg. ruby script/runner "Repository.fetch_changesets"
|
||||
def self.fetch_changesets
|
||||
find(:all).each(&:fetch_changesets)
|
||||
Project.active.has_module(:repository).find(:all, :include => :repository).each do |project|
|
||||
if project.repository
|
||||
project.repository.fetch_changesets
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# scan changeset comments to find related and fixed issues for all repositories
|
||||
|
||||
@ -86,7 +86,6 @@ top = headers_height + 8
|
||||
<%= link_to_issue i %>
|
||||
<% else %>
|
||||
<span class="icon icon-package">
|
||||
<%= h("#{i.project} -") unless @project && @project == i.project %>
|
||||
<%= link_to_version i %>
|
||||
</span>
|
||||
<% end %>
|
||||
@ -211,8 +210,7 @@ top = headers_height + 10
|
||||
%>
|
||||
<div style="top:<%= top %>px;left:<%= i_left %>px;width:15px;" class="task milestone"> </div>
|
||||
<div style="top:<%= top %>px;left:<%= i_left + 12 %>px;background:#fff;" class="task">
|
||||
<%= h("#{i.project} -") unless @project && @project == i.project %>
|
||||
<strong><%=h i %></strong>
|
||||
<strong><%= format_version_name i %></strong>
|
||||
</div>
|
||||
<% end %>
|
||||
<% top = top + 20
|
||||
|
||||
@ -285,6 +285,48 @@ class ProjectTest < ActiveSupport::TestCase
|
||||
assert Project.new.allowed_parents.compact.empty?
|
||||
end
|
||||
|
||||
def test_allowed_parents_with_add_subprojects_permission
|
||||
Role.find(1).remove_permission!(:add_project)
|
||||
Role.find(1).add_permission!(:add_subprojects)
|
||||
User.current = User.find(2)
|
||||
# new project
|
||||
assert !Project.new.allowed_parents.include?(nil)
|
||||
assert Project.new.allowed_parents.include?(Project.find(1))
|
||||
# existing root project
|
||||
assert Project.find(1).allowed_parents.include?(nil)
|
||||
# existing child
|
||||
assert Project.find(3).allowed_parents.include?(Project.find(1))
|
||||
assert !Project.find(3).allowed_parents.include?(nil)
|
||||
end
|
||||
|
||||
def test_allowed_parents_with_add_project_permission
|
||||
Role.find(1).add_permission!(:add_project)
|
||||
Role.find(1).remove_permission!(:add_subprojects)
|
||||
User.current = User.find(2)
|
||||
# new project
|
||||
assert Project.new.allowed_parents.include?(nil)
|
||||
assert !Project.new.allowed_parents.include?(Project.find(1))
|
||||
# existing root project
|
||||
assert Project.find(1).allowed_parents.include?(nil)
|
||||
# existing child
|
||||
assert Project.find(3).allowed_parents.include?(Project.find(1))
|
||||
assert Project.find(3).allowed_parents.include?(nil)
|
||||
end
|
||||
|
||||
def test_allowed_parents_with_add_project_and_subprojects_permission
|
||||
Role.find(1).add_permission!(:add_project)
|
||||
Role.find(1).add_permission!(:add_subprojects)
|
||||
User.current = User.find(2)
|
||||
# new project
|
||||
assert Project.new.allowed_parents.include?(nil)
|
||||
assert Project.new.allowed_parents.include?(Project.find(1))
|
||||
# existing root project
|
||||
assert Project.find(1).allowed_parents.include?(nil)
|
||||
# existing child
|
||||
assert Project.find(3).allowed_parents.include?(Project.find(1))
|
||||
assert Project.find(3).allowed_parents.include?(nil)
|
||||
end
|
||||
|
||||
def test_users_by_role
|
||||
users_by_role = Project.find(1).users_by_role
|
||||
assert_kind_of Hash, users_by_role
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user