diff options
author | elijah <elijah@riseup.net> | 2016-06-20 10:14:43 -0700 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2016-06-20 10:14:43 -0700 |
commit | 968e2575d9315a7abba9b62b4024288a8faa198d (patch) | |
tree | 71398f7c2327e90288255304e14a1496ca031cb2 | |
parent | c6eeb0c9e5666e98f97b048882ad3668550f4741 (diff) | |
parent | 51e4ccbd5c1ebb640679763cc8655d00f44bbeb9 (diff) |
Merge branch 'cz8s/couchdb_scripts-master'
-rwxr-xr-x | destroy-user-db | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/destroy-user-db b/destroy-user-db index fdf917b..cd17eb5 100755 --- a/destroy-user-db +++ b/destroy-user-db @@ -7,19 +7,45 @@ def main() server = LEAP::Server.new users_db = LEAP::Users.new(server) record = users_db.find_by_login($username) + return_code = 0 if record.nil? puts "Username #{$username} does not exist." exit 1 end - dbname = "user-#{record.id}" + user_id = record.id + dbname = "user-#{user_id}" + identities_db = server.database('identities') + all_users_db = server.database('users') begin server.database(dbname).delete! puts "Deleted DB #{dbname}" - exit 0 rescue RestClient::ResourceNotFound puts "DB does not exist: #{dbname}" - exit 1 + return_code=1 + end + if $destroy_identities == TRUE + identities_db.view('Identity/by_user_id', :reduce => false, :startkey => user_id, :endkey => user_id)['rows'].each do |row| + begin + doc = identities_db.get(row['id']) + identities_db.delete_doc(doc) + puts " deleted #{identities_db.name}/#{row['id']}" + rescue RestClient::ResourceNotFound + puts "identities DB does not exist: #{doc}" + return_code=1 + end + end + all_users_db.view('User/by_login', :reduce => false, :startkey => $username, :endkey => $username)['rows'].each do |row| + begin + doc = all_users_db.get(user_id) + all_users_db.delete_doc(doc) + puts " deleted #{user_id} from user db" + rescue RestClient::ResourceNotFound + puts "user not found in user db: #{user_id}" + return_code=1 + end + end end + exit return_code end def parse_opts() @@ -28,6 +54,8 @@ def parse_opts() case cmd when "--username" $username = ARGV.shift + when "--destroy-identities" + $destroy_identities=TRUE else usage end @@ -41,7 +69,8 @@ def usage() puts "#{$0} COMMAND" puts "Commands:" puts " --username USERNAME - destroy the user db corresponding to USERNAME." + puts " --destroy-identities - re-enable user for future sign-up" exit(1) end -main()
\ No newline at end of file +main() |