- # If repo and vm login link are not being created, no need to generate a unique username
- vm_uuid = Rails.configuration.auto_setup_new_users_with_vm_uuid
- if !vm_uuid && !Rails.configuration.auto_setup_new_users_with_repository
- return username
- end
-
- # need a unique username
- found_unique_username = false
- while !found_unique_username
- repo = Repository.where(name: username).first
-
- if repo
- username = username + SecureRandom.random_number(1000000).to_s
- elsif vm_uuid
- login_props = {"username" => username}
-
- vm_login_perms = Link.where(head_uuid: vm_uuid,
- link_class: 'permission',
- name: 'can_login')
- perm_exists = false
- vm_login_perms.each do |perm|
- if perm.properties['username'] == username
- perm_exists = true
- break
- end
- end
-
- if perm_exists
- username = username + SecureRandom.random_number(1000000).to_s
- else
- found_unique_username = true
- end
- else
- found_unique_username = true
+ while true
+ if Repository.where(name: username).empty?
+ login_collisions = Link.where(link_class: 'permission',
+ name: 'can_login').select do |perm|
+ perm.properties['username'] == username