diff --git a/app/controllers/omniauth_callbacks_controller.rb b/app/controllers/omniauth_callbacks_controller.rb index b79abf2c693..629b6819fb1 100644 --- a/app/controllers/omniauth_callbacks_controller.rb +++ b/app/controllers/omniauth_callbacks_controller.rb @@ -2,8 +2,8 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController def ldap # We only find ourselves here if the authentication to LDAP was successful. - omniauth = request.env["omniauth.auth"]["extra"]["raw_info"] - @user = User.find_for_ldap_auth(omniauth) + info = request.env["omniauth.auth"]["info"] + @user = User.find_for_ldap_auth(info) if @user.persisted? @user.remember_me = true end diff --git a/app/models/user.rb b/app/models/user.rb index fbac05108e6..9c0b1b4eb0e 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -67,15 +67,15 @@ class User < ActiveRecord::Base (0...8).map{ ('a'..'z').to_a[rand(26)] }.join end - def self.find_for_ldap_auth(omniauth) - username = omniauth.sAMAccountName[0] - email = omniauth.userprincipalname[0] + def self.find_for_ldap_auth(omniauth_info) + name = omniauth_info.name + email = omniauth_info.email if @user = User.find_by_email(email) @user else password = generate_random_password - @user = User.create(:name => username, + @user = User.create(:name => name, :email => email, :password => password, :password_confirmation => password