diff options
Diffstat (limited to 'app/models/member.rb')
-rw-r--r-- | app/models/member.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/app/models/member.rb b/app/models/member.rb index 28aee2e3799..c1138b80b4a 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -91,7 +91,9 @@ class Member < ActiveRecord::Base member.invite_email = user end - if can_update_member?(current_user, member) + can_update = can_update_member?(current_user, member) || project_creator?(member, access_level) + + if can_update member.created_by ||= current_user member.access_level = access_level @@ -107,6 +109,11 @@ class Member < ActiveRecord::Base current_user.can?(:update_group_member, member) || current_user.can?(:update_project_member, member) end + + def project_creator?(member, access_level) + member.new_record? && member.owner? && + access_level.to_i == ProjectMember::MASTER + end end def invite? |