Fix to the username normalisation routine to deal with creds that
have no username (i.e. VNC)unstable
parent
8d47883af0
commit
6306f8888a
|
@ -973,25 +973,37 @@ class DBManager
|
||||||
|
|
||||||
ret = {}
|
ret = {}
|
||||||
|
|
||||||
|
#Check to see if the creds already exist. We look also for a downcased username with the
|
||||||
|
#same password because we can fairly safely assume they are not in fact two seperate creds.
|
||||||
|
#this allows us to hedge against duplication of creds in the DB.
|
||||||
|
|
||||||
|
if duplicate_ok
|
||||||
# If duplicate usernames are okay, find by both user and password (allows
|
# If duplicate usernames are okay, find by both user and password (allows
|
||||||
# for actual duplicates to get modified updated_at, sources, etc)
|
# for actual duplicates to get modified updated_at, sources, etc)
|
||||||
if duplicate_ok
|
if token[0].nil? or token[0].empty?
|
||||||
cred = service.creds.find_by_user_and_ptype_and_pass(token[0] || "", ptype, token[1] || "")
|
cred = service.creds.find_or_initalize_by_user_and_ptype_and_pass(token[0] || "", ptype, token[1] || "")
|
||||||
unless cred
|
else
|
||||||
dcu = token[0].downcase
|
cred = service.creds.find_by_user_and_ptype_and_pass(token[0] || "", ptype, token[1] || "")
|
||||||
cred = service.creds.find_by_user_and_ptype_and_pass( dcu || "", ptype, token[1] || "")
|
|
||||||
unless cred
|
unless cred
|
||||||
cred = service.creds.find_or_initalize_by_user_and_ptype_and_pass(token[0] || "", ptype, token[1] || "")
|
dcu = token[0].downcase
|
||||||
|
cred = service.creds.find_by_user_and_ptype_and_pass( dcu || "", ptype, token[1] || "")
|
||||||
|
unless cred
|
||||||
|
cred = service.creds.find_or_initalize_by_user_and_ptype_and_pass(token[0] || "", ptype, token[1] || "")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
# Create the cred by username only (so we can change passwords)
|
# Create the cred by username only (so we can change passwords)
|
||||||
cred = service.creds.find_by_user_and_ptype(token[0] || "", ptype)
|
if token[0].nil? or token[0].empty?
|
||||||
unless cred
|
cred = service.creds.find_or_initialize_by_user_and_ptype(token[0] || "", ptype)
|
||||||
dcu = token[0].downcase
|
else
|
||||||
cred = service.creds.find_by_user_and_ptype_and_pass( dcu || "", ptype, token[1] || "")
|
cred = service.creds.find_by_user_and_ptype(token[0] || "", ptype)
|
||||||
unless cred
|
unless cred
|
||||||
cred = service.creds.find_or_initialize_by_user_and_ptype(token[0] || "", ptype)
|
dcu = token[0].downcase
|
||||||
|
cred = service.creds.find_by_user_and_ptype_and_pass( dcu || "", ptype, token[1] || "")
|
||||||
|
unless cred
|
||||||
|
cred = service.creds.find_or_initialize_by_user_and_ptype(token[0] || "", ptype)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue