diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-12-20 11:32:31 +0100 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-12-20 11:32:31 +0100 |
commit | 0d224376cfaf61d6c9050367c0098ba87dfe8c58 (patch) | |
tree | eac7276123b1fa45e3d11ed3aede881b0366b18e /lib/tasks | |
parent | f7b7e918fef6567d26e7fe17894e5df14c58f37c (diff) | |
parent | deb74f73d9432c90649142cf8333c5cd5d0984ea (diff) | |
download | gitlab-ce-0d224376cfaf61d6c9050367c0098ba87dfe8c58.tar.gz |
Merge remote-tracking branch 'origin/master' into zj-mattermost-slash-config
Diffstat (limited to 'lib/tasks')
-rw-r--r-- | lib/tasks/gitlab/ldap.rake | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/tasks/gitlab/ldap.rake b/lib/tasks/gitlab/ldap.rake new file mode 100644 index 00000000000..c66a2a263dc --- /dev/null +++ b/lib/tasks/gitlab/ldap.rake @@ -0,0 +1,40 @@ +namespace :gitlab do + namespace :ldap do + desc 'GitLab | LDAP | Rename provider' + task :rename_provider, [:old_provider, :new_provider] => :environment do |_, args| + old_provider = args[:old_provider] || + prompt('What is the old provider? Ex. \'ldapmain\': '.color(:blue)) + new_provider = args[:new_provider] || + prompt('What is the new provider ID? Ex. \'ldapcustom\': '.color(:blue)) + puts '' # Add some separation in the output + + identities = Identity.where(provider: old_provider) + identity_count = identities.count + + if identities.empty? + puts "Found no user identities with '#{old_provider}' provider." + puts 'Please check the provider name and try again.' + exit 1 + end + + plural_id_count = ActionController::Base.helpers.pluralize(identity_count, 'user') + + unless ENV['force'] == 'yes' + puts "#{plural_id_count} with provider '#{old_provider}' will be updated to '#{new_provider}'" + puts 'If the new provider is incorrect, users will be unable to sign in' + ask_to_continue + puts '' + end + + updated_count = identities.update_all(provider: new_provider) + + if updated_count == identity_count + puts 'User identities were successfully updated'.color(:green) + else + plural_updated_count = ActionController::Base.helpers.pluralize(updated_count, 'user') + puts 'Some user identities could not be updated'.color(:red) + puts "Successfully updated #{plural_updated_count} out of #{plural_id_count} total" + end + end + end +end |