diff options
-rw-r--r-- | app/controllers/admin/groups_controller.rb | 2 | ||||
-rw-r--r-- | app/models/group.rb | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/app/controllers/admin/groups_controller.rb b/app/controllers/admin/groups_controller.rb index 31d25377b76..a2201f732e6 100644 --- a/app/controllers/admin/groups_controller.rb +++ b/app/controllers/admin/groups_controller.rb @@ -34,7 +34,7 @@ class Admin::GroupsController < Admin::ApplicationController owner_id =group_params.delete(:owner_id) if owner_id - @group.owner = User.find(owner_id) + @group.change_owner(User.find(owner_id)) end if @group.update_attributes(group_params) diff --git a/app/models/group.rb b/app/models/group.rb index 0593d9cd4bb..1c8eb98e0f2 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -32,6 +32,17 @@ class Group < Namespace end end + def change_owner(user) + self.owner = user + membership = users_groups.where(user_id: user.id).first + + if membership + membership.update_attributes(group_access: UsersGroup::OWNER) + else + add_owner + end + end + private def add_owner |