Commit a44b85be9eafed5e2aea30bbb9830e6040145c06
Exists in
master
and in
4 other branches
Merge pull request #422 from steveprentice/master
This makes gitlabhq compatible with more LDAP servers (specifically OpenLDAP).
Showing
2 changed files
with
6 additions
and
6 deletions
Show diff stats
app/controllers/omniauth_callbacks_controller.rb
| ... | ... | @@ -2,8 +2,8 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController |
| 2 | 2 | |
| 3 | 3 | def ldap |
| 4 | 4 | # We only find ourselves here if the authentication to LDAP was successful. |
| 5 | - omniauth = request.env["omniauth.auth"]["extra"]["raw_info"] | |
| 6 | - @user = User.find_for_ldap_auth(omniauth) | |
| 5 | + info = request.env["omniauth.auth"]["info"] | |
| 6 | + @user = User.find_for_ldap_auth(info) | |
| 7 | 7 | if @user.persisted? |
| 8 | 8 | @user.remember_me = true |
| 9 | 9 | end | ... | ... |
app/models/user.rb
| ... | ... | @@ -71,15 +71,15 @@ class User < ActiveRecord::Base |
| 71 | 71 | name.split(" ").first unless name.blank? |
| 72 | 72 | end |
| 73 | 73 | |
| 74 | - def self.find_for_ldap_auth(omniauth) | |
| 75 | - username = omniauth.sAMAccountName[0] | |
| 76 | - email = omniauth.userprincipalname[0] | |
| 74 | + def self.find_for_ldap_auth(omniauth_info) | |
| 75 | + name = omniauth_info.name | |
| 76 | + email = omniauth_info.email | |
| 77 | 77 | |
| 78 | 78 | if @user = User.find_by_email(email) |
| 79 | 79 | @user |
| 80 | 80 | else |
| 81 | 81 | password = generate_random_password |
| 82 | - @user = User.create(:name => username, | |
| 82 | + @user = User.create(:name => name, | |
| 83 | 83 | :email => email, |
| 84 | 84 | :password => password, |
| 85 | 85 | :password_confirmation => password | ... | ... |