summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2016-06-20 10:14:43 -0700
committerelijah <elijah@riseup.net>2016-06-20 10:14:43 -0700
commit968e2575d9315a7abba9b62b4024288a8faa198d (patch)
tree71398f7c2327e90288255304e14a1496ca031cb2
parentc6eeb0c9e5666e98f97b048882ad3668550f4741 (diff)
parent51e4ccbd5c1ebb640679763cc8655d00f44bbeb9 (diff)
Merge branch 'cz8s/couchdb_scripts-master'
-rwxr-xr-xdestroy-user-db37
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()