64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/devise_pam_authenticatable/model.rb', line 64
def pam_get_user(attributes = {})
if ::Devise.usernamefield && attributes[:username]
resource = find_by(::Devise.usernamefield => attributes[:username])
if resource.blank?
resource = new(::Devise.usernamefield => attributes[:username])
end
resource
elsif ::Devise.emailfield && attributes[:email]
resource =
if ::Devise.check_at_sign && ::Devise.usernamefield && !attributes[:email].index('@')
find_by(::Devise.usernamefield => attributes[:email])
else
find_by(::Devise.emailfield => attributes[:email])
end
if resource.blank?
resource = new
if ::Devise.check_at_sign && !attributes[:email].index('@')
if ::Devise.usernamefield
resource[::Devise.usernamefield] = attributes[:email]
end
if (email = Rpam2.getenv(resource.find_pam_service, attributes[:email], attributes[:password], 'email', false))
resource[::Devise.emailfield] = email
end
else
resource[::Devise.emailfield] = attributes[:email]
end
end
resource
end
end
|