Commit a340d8c9 authored by Jean-Philippe Lang's avatar Jean-Philippe Lang

Better error message and AR errors in log for failed LDAP on-the-fly user…

Better error message and AR errors in log for failed LDAP on-the-fly user creation (closes #932, #1042).

git-svn-id: http://redmine.rubyforge.org/svn/trunk@1345 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 8eb86396
...@@ -56,6 +56,8 @@ class AccountController < ApplicationController ...@@ -56,6 +56,8 @@ class AccountController < ApplicationController
flash.now[:error] = l(:notice_account_invalid_creditentials) flash.now[:error] = l(:notice_account_invalid_creditentials)
end end
end end
rescue User::OnTheFlyCreationFailure
flash.now[:error] = 'Redmine could not retrieve the required information from the LDAP to create your account. Please, contact your Redmine administrator.'
end end
# Log out current user and redirect to welcome page # Log out current user and redirect to welcome page
......
...@@ -18,6 +18,9 @@ ...@@ -18,6 +18,9 @@
require "digest/sha1" require "digest/sha1"
class User < ActiveRecord::Base class User < ActiveRecord::Base
class OnTheFlyCreationFailure < Exception; end
# Account statuses # Account statuses
STATUS_ANONYMOUS = 0 STATUS_ANONYMOUS = 0
STATUS_ACTIVE = 1 STATUS_ACTIVE = 1
...@@ -105,15 +108,17 @@ class User < ActiveRecord::Base ...@@ -105,15 +108,17 @@ class User < ActiveRecord::Base
onthefly.language = Setting.default_language onthefly.language = Setting.default_language
if onthefly.save if onthefly.save
user = find(:first, :conditions => ["login=?", login]) user = find(:first, :conditions => ["login=?", login])
logger.info("User '#{user.login}' created on the fly.") if logger logger.info("User '#{user.login}' created from the LDAP") if logger
else
logger.error("User '#{onthefly.login}' found in LDAP but could not be created (#{onthefly.errors.full_messages.join(', ')})") if logger
raise OnTheFlyCreationFailure.new
end end
end end
end end
user.update_attribute(:last_login_on, Time.now) if user user.update_attribute(:last_login_on, Time.now) if user
user user
rescue => text
rescue => text raise text
raise text
end end
# Return user's full name for display # Return user's full name for display
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment