Users add/del script
This commit is contained in:
parent
5b27c4a483
commit
5459916e15
68
users.py
Normal file
68
users.py
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import bcrypt
|
||||||
|
import sqlite3
|
||||||
|
|
||||||
|
|
||||||
|
def parse_command_line():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("-u", "--user",
|
||||||
|
help="User name")
|
||||||
|
parser.add_argument("-p", "--password",
|
||||||
|
help="User password. If it none password will be generated")
|
||||||
|
parser.add_argument("-b", "--database", default="./auth.db", help="Path to users database")
|
||||||
|
parser.add_argument("--delete", action='store_true', help="Delete user")
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
class User:
|
||||||
|
|
||||||
|
def __init__(self, args):
|
||||||
|
self.args = args
|
||||||
|
self.user = args.user
|
||||||
|
self.password = args.password
|
||||||
|
self.connection = self._init_connection()
|
||||||
|
|
||||||
|
def _init_connection(self):
|
||||||
|
con = sqlite3.connect(self.args.database)
|
||||||
|
cur = con.cursor()
|
||||||
|
return {"cursor": cur, "connect": con}
|
||||||
|
|
||||||
|
def _close_connection(self):
|
||||||
|
self.connection["cursor"].close()
|
||||||
|
self.connection["connect"].close()
|
||||||
|
|
||||||
|
def _commit(self):
|
||||||
|
self.connection["connect"].commit()
|
||||||
|
|
||||||
|
def add(self):
|
||||||
|
if self.password is None:
|
||||||
|
self.password = self._passgen()
|
||||||
|
hashed_password = bcrypt.hashpw(self.password.encode('utf-8'), bcrypt.gensalt())
|
||||||
|
self.connection["cursor"].execute(
|
||||||
|
"INSERT INTO users (name, password) VALUES (?, ?)",
|
||||||
|
(self.user, hashed_password)
|
||||||
|
)
|
||||||
|
self._commit()
|
||||||
|
self._close_connection()
|
||||||
|
|
||||||
|
def delete(self):
|
||||||
|
self.connection["cursor"].execute(
|
||||||
|
"DELETE FROM users WHERE name=?",
|
||||||
|
(self.user,)
|
||||||
|
)
|
||||||
|
self._commit()
|
||||||
|
self._close_connection()
|
||||||
|
|
||||||
|
def _passgen(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
args = parse_command_line()
|
||||||
|
user = User(args)
|
||||||
|
if not args.delete:
|
||||||
|
user.add()
|
||||||
|
else:
|
||||||
|
user.delete()
|
Loading…
Reference in New Issue
Block a user