23 lines
750 B
Ruby
23 lines
750 B
Ruby
|
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
||
|
|
||
|
def ldap
|
||
|
# We only find ourselves here if the authentication to LDAP was successful.
|
||
|
ldap = request.env["omniauth.auth"]["extra"]["raw_info"]
|
||
|
username = ldap.sAMAccountName[0].to_s
|
||
|
email = ldap.proxyaddresses[0][5..-1].to_s
|
||
|
|
||
|
if @user = User.find_by_email(email)
|
||
|
sign_in_and_redirect root_path
|
||
|
else
|
||
|
password = User.generate_random_password
|
||
|
@user = User.create(:name => username,
|
||
|
:email => email,
|
||
|
:password => password,
|
||
|
:password_confirmation => password
|
||
|
)
|
||
|
sign_in_and_redirect @user
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|