Skip to content

Commit

Permalink
Fixes #11153 - handle ldap errors gracefully
Browse files Browse the repository at this point in the history
  • Loading branch information
ares authored and dLobatog committed Dec 13, 2017
1 parent 0517edc commit 0d0657a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
4 changes: 3 additions & 1 deletion app/controllers/external_usergroups_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ def refresh
if @external_usergroup.refresh
notice _("External user group %{name} refreshed") % { :name => @external_usergroup.name }
else
warning _("External user group %{name} could not be refreshed") % { :name => @external_usergroup.name }
message = _("External user group %{name} could not be refreshed.") % { :name => @external_usergroup.name }
message += ' ' + @external_usergroup.errors.full_messages.join('. ') if @external_usergroup.errors.present?
warning message
end
rescue => e
external_usergroups_error(@external_usergroup, e)
Expand Down
5 changes: 5 additions & 0 deletions app/models/external_usergroup.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ def refresh
internal_users = usergroup.users.
where(:auth_source => AuthSourceInternal.first).map(&:login)
my_users = users
return false unless my_users

all_other_users = (usergroup.external_usergroups - [self]).map(&:users)
all_users = (all_other_users + my_users).flatten.uniq

Expand All @@ -35,6 +37,9 @@ def refresh

def users
auth_source.users_in_group(name)
rescue Net::LDAP::Error, Net::LDAP::LdapError => e
errors.add :auth_source_id, _("LDAP error - %{message}") % { :message => e.message }
return false
end

private
Expand Down
1 change: 1 addition & 0 deletions app/models/usergroup.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class Usergroup < ApplicationRecord
include UserUsergroupCommon

validates_lengths_from_database
validates_associated :external_usergroups
before_destroy EnsureNotUsedBy.new(:hosts), :ensure_last_admin_group_is_not_deleted

has_many :user_roles, :dependent => :destroy, :as => :owner
Expand Down

0 comments on commit 0d0657a

Please sign in to comment.