Allow to not specify a password when signing up with openID

If the password field has a length of 0 and we have a valid
openID, then disable password login by generating a random
unknown password.

This still needs some warnings to indicate that not all services
such as trac, the forum or some editors are supported with
openid only via oauth.
This commit is contained in:
Kai Krueger 2010-01-23 01:38:18 +00:00
parent d9ed74265f
commit f0cac0fcc3

View file

@ -47,6 +47,13 @@ class UserController < ApplicationController
@user.openid_url = nil
if (params[:user][:openid_url].length > 0)
if @user.pass_crypt.length == 0
#if the password is empty, but we have a openid
#then generate a random passowrd to disable
#loging in via password
@user.pass_crypt = ActiveSupport::SecureRandom.base64(16)
@user.pass_crypt_confirmation = @user.pass_crypt
end
#Validate all of the other fields before
#redirecting to the openid provider
if !@user.valid?