add ldap support
Achtung dieses diff benötigt einen neuen Eintrag im secrets config file
This commit is contained in:
@@ -29,29 +29,54 @@ class User < ActiveRecord::Base
|
||||
# Include default devise modules. Others available are:
|
||||
# :token_authenticatable, :confirmable,
|
||||
# :lockable, :timeoutable and :omniauthable
|
||||
devise :database_authenticatable, :registerable,:confirmable,
|
||||
:recoverable, :rememberable, :trackable, :validatable,:omniauthable, :omniauth_providers => [:facebook]
|
||||
devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable,:omniauthable, :omniauth_providers => [:facebook,:ldap]
|
||||
|
||||
# Setup accessible (or protected) attributes for your model
|
||||
attr_accessible :email, :password, :password_confirmation, :remember_me, :provider, :uid, :name
|
||||
# attr_accessible :title, :body
|
||||
def self.find_for_facebook_oauth(auth, signed_in_resource=nil)
|
||||
user = User.where(:provider => auth.provider, :uid => auth.uid).first
|
||||
unless user
|
||||
user = User.create(name:auth.extra.raw_info.name,
|
||||
def self.find_for_facebook_oauth(auth, signed_in_resource=nil)
|
||||
logger.debug auth.to_s
|
||||
logger.debug "DDD Username= #{auth.username}"
|
||||
# user = User.where(:provider => auth.provider, :uid => auth.uid).first
|
||||
unless user
|
||||
user = User.create(name:auth.uid,
|
||||
provider:auth.provider,
|
||||
uid:auth.uid,
|
||||
email:auth.info.email,
|
||||
password:Devise.friendly_token[0,20]
|
||||
)
|
||||
end
|
||||
user
|
||||
end
|
||||
def self.new_with_session(params, session)
|
||||
super.tap do |user|
|
||||
if data = session["devise.facebook_data"] && session["devise.facebook_data"]["extra"]["raw_info"]
|
||||
user.email = data["email"] if user.email.blank?
|
||||
end
|
||||
end
|
||||
|
||||
user
|
||||
end
|
||||
def self.find_for_ldap_oauth(auth,signed_in_resource=nil)
|
||||
# debug "sdfg"
|
||||
|
||||
user= User.where(:provider=>auth.provider,:uid=>auth.extra.raw_info.uid).first
|
||||
unless user
|
||||
user= User.create(name:auth.extra.raw_info.uid.first,
|
||||
provider:auth.provider,
|
||||
uid:auth.extra.raw_info.uid.first,
|
||||
email:auth.extra.raw_info.uid.first.to_s+"@ldapfet.at",
|
||||
password:Devise.friendly_token[0,20])
|
||||
user.add_role("fetuser")
|
||||
end
|
||||
unless user
|
||||
# user=User.create(name:"fail",
|
||||
# provider:"ldap",
|
||||
# uid:"sdf",
|
||||
# email:"sdf@fet.at",
|
||||
# password:Devise.friendly_token[0,20])
|
||||
|
||||
end
|
||||
user
|
||||
end
|
||||
|
||||
def self.new_with_session(params, session)
|
||||
super.tap do |user|
|
||||
if data = session["devise.facebook_data"] && session["devise.facebook_data"]["extra"]["raw_info"]
|
||||
user.email = data["email"] if user.email.blank?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user