summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/projects_controller.rb5
-rw-r--r--app/models/project.rb9
2 files changed, 10 insertions, 4 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index beb279476..11cb91a46 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -76,11 +76,8 @@ class ProjectsController < ApplicationController
if validate_parent_id && @project.save
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
- # Add current user as a project member if current user is not admin
unless User.current.admin?
- r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first
- m = Member.new(:user => User.current, :roles => [r])
- @project.members << m
+ @project.add_default_member(User.current)
end
respond_to do |format|
format.html {
diff --git a/app/models/project.rb b/app/models/project.rb
index 27cb4c7a6..1a3534217 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -499,6 +499,15 @@ class Project < ActiveRecord::Base
end
end
+ # Adds user as a project member with the default role
+ # Used for when a non-admin user creates a project
+ def add_default_member(user)
+ role = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first
+ member = Member.new(:project => self, :principal => user, :roles => [role])
+ self.members << member
+ member
+ end
+
# Deletes all project's members
def delete_all_members
me, mr = Member.table_name, MemberRole.table_name