- user = User.find_or_create_by(uuid: remote_user[:uuid])
-
- updates = {}
- [:first_name, :last_name, :email, :prefs].each do |attr|
- updates[attr] = remote_user[attr]
+ user = User.find_or_create_by(uuid: remote_user['uuid']) do |user|
+ # (this block runs for the "create" case, not for "find")
+ user.is_admin = false
+ user.email = remote_user['email']
+ if remote_user['username'].andand.length.andand > 0
+ user.set_initial_username(requested: remote_user['username'])
+ end