diff --git a/project_inheritance/app/helpers/settings_helper.rb b/project_inheritance/app/helpers/settings_helper.rb index f4ec5a7a7..0f01d4790 100644 --- a/project_inheritance/app/helpers/settings_helper.rb +++ b/project_inheritance/app/helpers/settings_helper.rb @@ -19,6 +19,7 @@ module SettingsHelper def administration_settings_tabs tabs = [{:name => 'general', :partial => 'settings/general', :label => :label_general}, {:name => 'authentication', :partial => 'settings/authentication', :label => :label_authentication}, + {:name => 'projects', :partial => 'settings/projects', :label => :label_project_plural}, {:name => 'issues', :partial => 'settings/issues', :label => :label_issue_tracking}, {:name => 'notifications', :partial => 'settings/notifications', :label => l(:field_mail_notification)}, {:name => 'repositories', :partial => 'settings/repositories', :label => :label_repository_plural} diff --git a/project_inheritance/app/models/project.rb b/project_inheritance/app/models/project.rb index 60a7a84a4..2829af5f7 100644 --- a/project_inheritance/app/models/project.rb +++ b/project_inheritance/app/models/project.rb @@ -153,7 +153,9 @@ class Project < ActiveRecord::Base # Users issues can be assigned to def assignable_users - members.select {|m| m.role.assignable?}.collect {|m| m.user}.sort + m = members + m += parent.members if Setting.subprojects_inherit_members? && parent + m.select {|m| m.role.assignable?}.collect {|m| m.user}.uniq.sort end # Returns the mail adresses of users that should be always notified on project events diff --git a/project_inheritance/app/models/user.rb b/project_inheritance/app/models/user.rb index 906420ed4..c68caecb0 100644 --- a/project_inheritance/app/models/user.rb +++ b/project_inheritance/app/models/user.rb @@ -182,6 +182,7 @@ class User < ActiveRecord::Base if logged? # Find project membership membership = memberships.detect {|m| m.project_id == project.id} + membership ||= memberships.detect {|m| m.project_id == project.parent_id} if Setting.subprojects_inherit_members? if membership membership.role else diff --git a/project_inheritance/app/views/settings/_projects.rhtml b/project_inheritance/app/views/settings/_projects.rhtml new file mode 100644 index 000000000..f58f37959 --- /dev/null +++ b/project_inheritance/app/views/settings/_projects.rhtml @@ -0,0 +1,10 @@ +<% form_tag({:action => 'edit'}) do %> + +
+<%= check_box_tag 'settings[subprojects_inherit_members]', 1, Setting.subprojects_inherit_members? %> +<%= hidden_field_tag 'settings[subprojects_inherit_members]', 0 %>
+