Commit a5dbe353549ad71ce2868d67dee5226ad8d46e63
1 parent
db03bfa8
Exists in
master
and in
4 other branches
Improve change group ownership logic
Showing
2 changed files
with
12 additions
and
1 deletions
Show diff stats
app/controllers/admin/groups_controller.rb
| ... | ... | @@ -34,7 +34,7 @@ class Admin::GroupsController < Admin::ApplicationController |
| 34 | 34 | owner_id =group_params.delete(:owner_id) |
| 35 | 35 | |
| 36 | 36 | if owner_id |
| 37 | - @group.owner = User.find(owner_id) | |
| 37 | + @group.change_owner(User.find(owner_id)) | |
| 38 | 38 | end |
| 39 | 39 | |
| 40 | 40 | if @group.update_attributes(group_params) | ... | ... |
app/models/group.rb
| ... | ... | @@ -32,6 +32,17 @@ class Group < Namespace |
| 32 | 32 | end |
| 33 | 33 | end |
| 34 | 34 | |
| 35 | + def change_owner(user) | |
| 36 | + self.owner = user | |
| 37 | + membership = users_groups.where(user_id: user.id).first | |
| 38 | + | |
| 39 | + if membership | |
| 40 | + membership.update_attributes(group_access: UsersGroup::OWNER) | |
| 41 | + else | |
| 42 | + add_owner | |
| 43 | + end | |
| 44 | + end | |
| 45 | + | |
| 35 | 46 | private |
| 36 | 47 | |
| 37 | 48 | def add_owner | ... | ... |