diff options
-rw-r--r-- | app/controllers/groups_controller.rb | 3 | ||||
-rw-r--r-- | app/controllers/users_controller.rb | 3 | ||||
-rw-r--r-- | app/models/member.rb | 7 |
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 |