diff options
| author | elijah <elijah@riseup.net> | 2015-09-24 16:56:11 -0700 | 
|---|---|---|
| committer | elijah <elijah@riseup.net> | 2015-09-24 16:56:11 -0700 | 
| commit | c577e3ec23de2ff8b8f8272b687351f62cfcf5ca (patch) | |
| tree | e1cc474571922a9e3a60319583d988bf68773661 | |
| parent | 26b54adadf7be2a60ecccde57519653fe769efa4 (diff) | |
added script destroy-user-db
| -rwxr-xr-x | destroy-all-test-users (renamed from ruby/destroy-all-test-users) | 0 | ||||
| -rwxr-xr-x | destroy-all-user-dbs (renamed from ruby/destroy-all-user-dbs) | 0 | ||||
| -rwxr-xr-x | destroy-user-db | 47 | ||||
| -rw-r--r-- | lib/leap.rb | 2 | ||||
| -rw-r--r-- | lib/leap/server.rb | 11 | ||||
| -rw-r--r-- | lib/leap/users.rb | 36 | 
6 files changed, 96 insertions, 0 deletions
| diff --git a/ruby/destroy-all-test-users b/destroy-all-test-users index b578f83..b578f83 100755 --- a/ruby/destroy-all-test-users +++ b/destroy-all-test-users diff --git a/ruby/destroy-all-user-dbs b/destroy-all-user-dbs index 84cec56..84cec56 100755 --- a/ruby/destroy-all-user-dbs +++ b/destroy-all-user-dbs diff --git a/destroy-user-db b/destroy-user-db new file mode 100755 index 0000000..fdf917b --- /dev/null +++ b/destroy-user-db @@ -0,0 +1,47 @@ +#!/usr/bin/ruby + +require_relative "lib/leap" + +def main() +  parse_opts +  server   = LEAP::Server.new +  users_db = LEAP::Users.new(server) +  record   = users_db.find_by_login($username) +  if record.nil? +    puts "Username #{$username} does not exist." +    exit 1 +  end +  dbname   = "user-#{record.id}" +  begin +    server.database(dbname).delete! +    puts "Deleted DB #{dbname}" +    exit 0 +  rescue RestClient::ResourceNotFound +    puts "DB does not exist: #{dbname}" +    exit 1 +  end +end + +def parse_opts() +  $username = nil +  while cmd = ARGV.shift +    case cmd +      when "--username" +        $username = ARGV.shift +      else +        usage +    end +  end +  unless $username +    usage +  end +end + +def usage() +  puts "#{$0} COMMAND" +  puts "Commands:" +  puts "  --username USERNAME - destroy the user db corresponding to USERNAME." +  exit(1) +end + +main()
\ No newline at end of file diff --git a/lib/leap.rb b/lib/leap.rb new file mode 100644 index 0000000..39d2004 --- /dev/null +++ b/lib/leap.rb @@ -0,0 +1,2 @@ +require_relative('leap/server.rb') +require_relative('leap/users.rb')
\ No newline at end of file diff --git a/lib/leap/server.rb b/lib/leap/server.rb new file mode 100644 index 0000000..bc60455 --- /dev/null +++ b/lib/leap/server.rb @@ -0,0 +1,11 @@ +require 'couchrest' + +module LEAP +  class Server < CouchRest::Server +    def initialize +      netrc = File.read('/root/.netrc').split(' ') +      auth = "%{username}:%{password}@" % {username: netrc[3], password: netrc[5]} +      super("http://#{auth}localhost:5984") +    end +  end +end
\ No newline at end of file diff --git a/lib/leap/users.rb b/lib/leap/users.rb new file mode 100644 index 0000000..14c9c4e --- /dev/null +++ b/lib/leap/users.rb @@ -0,0 +1,36 @@ +require 'couchrest' + +module LEAP +  class Users < CouchRest::Database + +    def initialize(server) +      super(server, 'users') +    end + +    def find_by_login(login) +      record = self.view('User/by_login', +        :reduce => false, +        :startkey => login, +        :endkey => login +      )['rows'].first +      if record +        return self.get(record['id']) +      end +    end + +    def all_logins +      self.view('User/by_login', +        :reduce => false +      )['rows'].map {|row| +        row['key'] +      } +    end + +    def all_active_ids +    end + +    def all_ids +    end + +  end +end | 
