X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8d84bf18f2d4ef3170c9988852ecb21b717f670f..07dbd859d0b05d79680570c00c43a722102d7ea3:/services/api/app/models/user.rb diff --git a/services/api/app/models/user.rb b/services/api/app/models/user.rb index 310c2ca698..dd447ca51a 100644 --- a/services/api/app/models/user.rb +++ b/services/api/app/models/user.rb @@ -410,10 +410,12 @@ class User < ArvadosModel user = self redirects = 0 while (uuid = user.redirect_to_user_uuid) - user = User.unscoped.find_by_uuid(uuid) - if !user - raise Exception.new("user uuid #{user.uuid} redirects to nonexistent uuid #{uuid}") + break if uuid.empty? + nextuser = User.unscoped.find_by_uuid(uuid) + if !nextuser + raise Exception.new("user uuid #{user.uuid} redirects to nonexistent uuid '#{uuid}'") end + user = nextuser redirects += 1 if redirects > 15 raise "Starting from #{self.uuid} redirect_to_user_uuid exceeded maximum number of redirects"