mirror of
https://github.com/meineerde/redmine.git
synced 2025-12-30 12:19:38 +00:00
Merged r3249 to r3252 and r3254 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3255 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
718cd596e0
commit
a23399f220
@ -57,6 +57,14 @@ class Member < ActiveRecord::Base
|
||||
member_roles.detect {|mr| mr.inherited_from}.nil?
|
||||
end
|
||||
|
||||
def include?(user)
|
||||
if principal.is_a?(Group)
|
||||
!user.nil? && user.groups.include?(principal)
|
||||
else
|
||||
self.user == user
|
||||
end
|
||||
end
|
||||
|
||||
def before_destroy
|
||||
if user
|
||||
# remove category based auto assignments for this member
|
||||
|
||||
@ -30,6 +30,10 @@ class MemberRole < ActiveRecord::Base
|
||||
errors.add :role_id, :invalid if role && !role.member?
|
||||
end
|
||||
|
||||
def inherited?
|
||||
!inherited_from.nil?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def remove_member_if_empty
|
||||
|
||||
@ -23,6 +23,7 @@ class Project < ActiveRecord::Base
|
||||
# Specific overidden Activities
|
||||
has_many :time_entry_activities
|
||||
has_many :members, :include => [:user, :roles], :conditions => "#{User.table_name}.type='User' AND #{User.table_name}.status=#{User::STATUS_ACTIVE}"
|
||||
has_many :memberships, :class_name => 'Member'
|
||||
has_many :member_principals, :class_name => 'Member',
|
||||
:include => :principal,
|
||||
:conditions => "#{Principal.table_name}.type='Group' OR (#{Principal.table_name}.type='User' AND #{Principal.table_name}.status=#{User::STATUS_ACTIVE})"
|
||||
@ -583,10 +584,14 @@ class Project < ActiveRecord::Base
|
||||
|
||||
# Copies members from +project+
|
||||
def copy_members(project)
|
||||
project.members.each do |member|
|
||||
project.memberships.each do |member|
|
||||
new_member = Member.new
|
||||
new_member.attributes = member.attributes.dup.except("id", "project_id", "created_on")
|
||||
new_member.role_ids = member.role_ids.dup
|
||||
# only copy non inherited roles
|
||||
# inherited roles will be added when copying the group membership
|
||||
role_ids = member.member_roles.reject(&:inherited?).collect(&:role_id)
|
||||
next if role_ids.empty?
|
||||
new_member.role_ids = role_ids
|
||||
new_member.project = self
|
||||
self.members << new_member
|
||||
end
|
||||
|
||||
@ -35,7 +35,8 @@
|
||||
<td class="buttons">
|
||||
<%= link_to_function l(:button_edit), "$('member-#{member.id}-roles').hide(); $('member-#{member.id}-roles-form').show(); return false;", :class => 'icon icon-edit' %>
|
||||
<%= link_to_remote(l(:button_delete), { :url => {:controller => 'members', :action => 'destroy', :id => member},
|
||||
:method => :post
|
||||
:method => :post,
|
||||
:confirm => (!User.current.admin? && member.include?(User.current) ? l(:text_own_membership_delete_confirmation) : nil)
|
||||
}, :title => l(:button_delete),
|
||||
:class => 'icon icon-del') if member.deletable? %>
|
||||
</td>
|
||||
|
||||
@ -869,3 +869,6 @@ bg:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -893,3 +893,6 @@ bs:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -872,3 +872,6 @@ ca:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -875,3 +875,6 @@ cs:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -895,3 +895,6 @@ da:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -895,3 +895,6 @@ de:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -875,3 +875,6 @@ el:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -848,6 +848,7 @@ en:
|
||||
text_wiki_page_nullify_children: "Keep child pages as root pages"
|
||||
text_wiki_page_destroy_children: "Delete child pages and all their descendants"
|
||||
text_wiki_page_reassign_children: "Reassign child pages to this parent page"
|
||||
text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
|
||||
|
||||
default_role_manager: Manager
|
||||
default_role_developper: Developer
|
||||
|
||||
@ -919,3 +919,6 @@ es:
|
||||
setting_mail_handler_body_delimiters: Truncar correos tras una de estas líneas
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -905,3 +905,6 @@ fi:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -856,6 +856,7 @@ fr:
|
||||
text_wiki_page_nullify_children: "Conserver les sous-pages en tant que pages racines"
|
||||
text_wiki_page_destroy_children: "Supprimer les sous-pages et toutes leurs descedantes"
|
||||
text_wiki_page_reassign_children: "Réaffecter les sous-pages à cette page"
|
||||
text_own_membership_delete_confirmation: "Vous allez supprimer tout ou partie de vos permissions sur ce projet et ne serez peut-être plus autorisé à modifier ce projet.\nEtes-vous sûr de vouloir continuer ?"
|
||||
|
||||
default_role_manager: Manager
|
||||
default_role_developper: Développeur
|
||||
|
||||
@ -895,3 +895,6 @@ gl:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -879,3 +879,6 @@ he:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -900,3 +900,6 @@
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -887,3 +887,6 @@ id:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -882,3 +882,6 @@ it:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -904,3 +904,6 @@ ja:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -935,3 +935,6 @@ ko:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -943,3 +943,6 @@ lt:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -857,3 +857,6 @@ nl:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -870,3 +870,6 @@
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -898,3 +898,6 @@ pl:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -902,3 +902,6 @@ pt-BR:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -887,3 +887,6 @@ pt:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -872,3 +872,6 @@ ro:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -983,3 +983,6 @@ ru:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -874,3 +874,6 @@ sk:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -871,3 +871,6 @@ sl:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -890,3 +890,6 @@
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -925,3 +925,6 @@ sv:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -872,3 +872,6 @@ th:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -902,3 +902,6 @@ tr:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -871,3 +871,6 @@ uk:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -934,3 +934,6 @@ vi:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -968,3 +968,6 @@
|
||||
enumeration_system_activity: 系統活動
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
@ -899,3 +899,6 @@ zh:
|
||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
text_own_membership_delete_confirmation: |-
|
||||
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
|
||||
Are you sure you want to continue?
|
||||
|
||||
16
db/migrate/20091227112908_change_wiki_contents_text_limit.rb
Normal file
16
db/migrate/20091227112908_change_wiki_contents_text_limit.rb
Normal file
@ -0,0 +1,16 @@
|
||||
class ChangeWikiContentsTextLimit < ActiveRecord::Migration
|
||||
def self.up
|
||||
# Migrates MySQL databases only
|
||||
# Postgres would raise an error (see http://dev.rubyonrails.org/ticket/3818)
|
||||
# Not fixed in Rails 2.3.5
|
||||
if ActiveRecord::Base.connection.adapter_name =~ /mysql/i
|
||||
max_size = 16.megabytes
|
||||
change_column :wiki_contents, :text, :text, :limit => max_size
|
||||
change_column :wiki_content_versions, :data, :binary, :limit => max_size
|
||||
end
|
||||
end
|
||||
|
||||
def self.down
|
||||
# no-op
|
||||
end
|
||||
end
|
||||
@ -182,7 +182,7 @@ module Redmine
|
||||
end
|
||||
|
||||
def self.shellout(cmd, &block)
|
||||
logger.debug "Shelling out: #{cmd}" if logger && logger.debug?
|
||||
logger.debug "Shelling out: #{strip_credential(cmd)}" if logger && logger.debug?
|
||||
if Rails.env == 'development'
|
||||
# Capture stderr when running in dev environment
|
||||
cmd = "#{cmd} 2>>#{RAILS_ROOT}/log/scm.stderr.log"
|
||||
|
||||
@ -190,7 +190,7 @@ Calendar.setup = function (params) {
|
||||
cal.create();
|
||||
cal.refresh();
|
||||
if (!params.position)
|
||||
cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
|
||||
cal.showAtElement(params.button || params.displayArea || params.inputField);
|
||||
else
|
||||
cal.showAt(params.position[0], params.position[1]);
|
||||
return false;
|
||||
|
||||
3
test/fixtures/groups_users.yml
vendored
3
test/fixtures/groups_users.yml
vendored
@ -2,4 +2,7 @@
|
||||
groups_users_001:
|
||||
group_id: 10
|
||||
user_id: 8
|
||||
groups_users_002:
|
||||
group_id: 11
|
||||
user_id: 8
|
||||
|
||||
10
test/fixtures/member_roles.yml
vendored
10
test/fixtures/member_roles.yml
vendored
@ -37,3 +37,13 @@ member_roles_009:
|
||||
role_id: 2
|
||||
member_id: 7
|
||||
inherited_from: 7
|
||||
member_roles_010:
|
||||
id: 10
|
||||
role_id: 2
|
||||
member_id: 9
|
||||
inherited_from:
|
||||
member_roles_011:
|
||||
id: 11
|
||||
role_id: 2
|
||||
member_id: 10
|
||||
inherited_from: 10
|
||||
|
||||
12
test/fixtures/members.yml
vendored
12
test/fixtures/members.yml
vendored
@ -48,3 +48,15 @@ members_008:
|
||||
id: 8
|
||||
user_id: 1
|
||||
mail_notification: true
|
||||
members_009:
|
||||
id: 9
|
||||
created_on: 2006-07-19 19:35:33 +02:00
|
||||
project_id: 2
|
||||
user_id: 11
|
||||
mail_notification: false
|
||||
members_010:
|
||||
id: 10
|
||||
created_on: 2006-07-19 19:35:33 +02:00
|
||||
project_id: 2
|
||||
user_id: 8
|
||||
mail_notification: false
|
||||
|
||||
@ -633,15 +633,15 @@ class ProjectTest < ActiveSupport::TestCase
|
||||
assert_not_equal source_relation_cross_project.id, copied_relation.id
|
||||
end
|
||||
|
||||
should "copy members" do
|
||||
should "copy memberships" do
|
||||
assert @project.valid?
|
||||
assert @project.members.empty?
|
||||
assert @project.copy(@source_project)
|
||||
|
||||
assert_equal @source_project.members.size, @project.members.size
|
||||
@project.members.each do |member|
|
||||
assert member
|
||||
assert_equal @project, member.project
|
||||
assert_equal @source_project.memberships.size, @project.memberships.size
|
||||
@project.memberships.each do |membership|
|
||||
assert membership
|
||||
assert_equal @project, membership.project
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -77,4 +77,12 @@ class WikiContentTest < ActiveSupport::TestCase
|
||||
assert_kind_of String, version.text
|
||||
end
|
||||
end
|
||||
|
||||
def test_large_text_should_not_be_truncated_to_64k
|
||||
page = WikiPage.new(:wiki => @wiki, :title => "Big page")
|
||||
page.content = WikiContent.new(:text => "a" * 500.kilobyte, :author => User.find(1))
|
||||
assert page.save
|
||||
page.reload
|
||||
assert_equal 500.kilobyte, page.content.text.size
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user