500 on /admin/users/<user>/identities if ldap not configured.
If 'ldapmain' is set as one of user identities but ldap is not configured, GitLab will fail with 500 to display <base_url>/admin/users//identities
=> /var/log/gitlab/gitlab-rails/production.log <==
Started GET "/admin/users/<user>/identities" for 127.0.0.1 at 2016-02-04 16:48:39 +0000
Processing by Admin::IdentitiesController#index as HTML
Parameters: {"user_id"=>"<user>"}
Completed 500 Internal Server Error in 65ms (ActiveRecord: 12.2ms)
ActionView::Template::Error (Missing setting 'servers' in 'ldap' section in /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml):
1: %tr
2: %td
3: = "#{Gitlab::OAuth::Provider.label_for(identity.provider)} (#{identity.provider})"
4: %td
5: = identity.extern_uid
6: %td
lib/gitlab/ldap/config.rb:12:in `servers'
lib/gitlab/ldap/config.rb:16:in `providers'
lib/gitlab/ldap/config.rb:20:in `valid_provider?'
lib/gitlab/ldap/config.rb:28:in `initialize'
lib/gitlab/o_auth/provider.rb:25:in `new'
lib/gitlab/o_auth/provider.rb:25:in `config_for'
lib/gitlab/o_auth/provider.rb:33:in `label_for'
app/views/admin/identities/_identity.html.haml:3:in `_app_views_admin_identities__identity_html_haml___412631631572602688_77338700'
app/views/admin/identities/index.html.haml:13:in `_app_views_admin_identities_index_html_haml___4127625169394100426_73635860'
Gitlab::OAuth::Provider.label_for('ldapmain') fails if ldap not configured:
irb(main):001:0> Gitlab::OAuth::Provider.label_for('ldapmain')
Settingslogic::MissingSetting: Missing setting 'servers' in 'ldap' section in /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
from /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/settingslogic-2.0.9/lib/settingslogic.rb:189:in `missing_key'
from /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/settingslogic-2.0.9/lib/settingslogic.rb:117:in `method_missing'
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/ldap/config.rb:12:in `servers'
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/ldap/config.rb:16:in `providers'
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/ldap/config.rb:20:in `valid_provider?'
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/ldap/config.rb:28:in `initialize'
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/o_auth/provider.rb:25:in `new'
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/o_auth/provider.rb:25:in `config_for'
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/o_auth/provider.rb:33:in `label_for'
from (irb):1
from /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.5.1/lib/rails/commands/console.rb:110:in `start'
from /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.5.1/lib/rails/commands/console.rb:9:in `start'
from /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.5.1/lib/rails/commands/commands_tasks.rb:68:in `console'
from /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.5.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/railties-4.2.5.1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'irb(main):002:0>
My use case is that I'm switching from ldap (ldap is not going to be used any more) to OAuth2, so now every user is going to have two identities (ldap and oauth).