summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/groups_controller.rb3
-rw-r--r--app/controllers/users_controller.rb3
-rw-r--r--app/models/member.rb7
3 files changed, 9 insertions, 4 deletions
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index 96e59c288..68a0e9d38 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -138,8 +138,7 @@ class GroupsController < ApplicationController
def edit_membership
@group = Group.find(params[:id])
- @membership = params[:membership_id] ? Member.find(params[:membership_id]) : Member.new(:principal => @group)
- @membership.attributes = params[:membership]
+ @membership = Member.edit_membership(params[:membership_id], params[:membership], @group)
@membership.save if request.post?
respond_to do |format|
format.html { redirect_to :controller => 'groups', :action => 'edit', :id => @group, :tab => 'memberships' }
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 14930e338..f19cd7831 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -120,8 +120,7 @@ class UsersController < ApplicationController
def edit_membership
@user = User.find(params[:id])
- @membership = params[:membership_id] ? Member.find(params[:membership_id]) : Member.new(:principal => @user)
- @membership.attributes = params[:membership]
+ @membership = Member.edit_membership(params[:membership_id], params[:membership], @user)
@membership.save if request.post?
respond_to do |format|
format.html { redirect_to :controller => 'users', :action => 'edit', :id => @user, :tab => 'memberships' }
diff --git a/app/models/member.rb b/app/models/member.rb
index 3ef1afdef..94751efb2 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -71,6 +71,13 @@ class Member < ActiveRecord::Base
IssueCategory.update_all "assigned_to_id = NULL", ["project_id = ? AND assigned_to_id = ?", project.id, user.id]
end
end
+
+ # Find or initilize a Member with an id, attributes, and for a Principal
+ def self.edit_membership(id, new_attributes, principal=nil)
+ @membership = id.present? ? Member.find(id) : Member.new(:principal => principal)
+ @membership.attributes = new_attributes
+ @membership
+ end
protected