X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/fb036b6bb6a63d4cf0e05f7b0fc3bae0ff1ef026..7b9112dbc270ea338fee756f583bb76870f2e391:/services/api/app/models/user.rb diff --git a/services/api/app/models/user.rb b/services/api/app/models/user.rb index 6e7facd5d5..b939d07bf0 100644 --- a/services/api/app/models/user.rb +++ b/services/api/app/models/user.rb @@ -29,6 +29,7 @@ class User < ArvadosModel t.add :is_admin t.add :is_invited t.add :prefs + t.add :writable_by end ALL_PERMISSIONS = {read: true, write: true, manage: true} @@ -233,11 +234,13 @@ class User < ArvadosModel end def check_auto_admin - if User.where("uuid not like '%-000000000000000'").where(:is_admin => true).count == 0 and Rails.configuration.auto_admin_user - if self.email == Rails.configuration.auto_admin_user - self.is_admin = true - self.is_active = true - end + return if self.uuid.end_with?('anonymouspublic') + if (User.where("email = ?",self.email).where(:is_admin => true).count == 0 and + Rails.configuration.auto_admin_user and self.email == Rails.configuration.auto_admin_user) or + (User.where("uuid not like '%-000000000000000'").where(:is_admin => true).count == 0 and + Rails.configuration.auto_admin_first_user) + self.is_admin = true + self.is_active = true end end @@ -450,6 +453,8 @@ class User < ArvadosModel def auto_setup_new_user return true if !Rails.configuration.auto_setup_new_users return true if !self.email + return true if self.uuid == system_user_uuid + return true if self.uuid == anonymous_user_uuid if Rails.configuration.auto_setup_new_users_with_vm_uuid || Rails.configuration.auto_setup_new_users_with_repository