user handling
This commit is contained in:
@@ -38,26 +38,40 @@ class DatabaseConnect:
|
||||
case 3:
|
||||
logging.info(f"Log emitted: {message}")
|
||||
|
||||
def create_user(self, username: str, salt: bytes, key: bytes) -> None:
|
||||
self.cursor.execute("INSERT INTO `users` (`username`, `salt`, `key`) VALUES (?,?,?)",(username, salt, key))
|
||||
def create_user(self, username: str, salt: bytes, key: bytes, administer: bool = False) -> None:
|
||||
self.cursor.execute("INSERT INTO `users` (`username`, `salt`, `key`, `administer`) VALUES (?,?,?,?)",(username, salt, key, administer))
|
||||
self.conn.commit()
|
||||
self.emit_log(2, f"Created user {username}")
|
||||
|
||||
def change_user_password(self, id: int, salt: bytes, key: bytes) -> None:
|
||||
self.cursor.execute("UPDATE `users` SET `salt` = ?, `key` = ? WHERE `ID` = ?;",(salt, key, id))
|
||||
self.conn.commit()
|
||||
self.emit_log(2, f"Changed password for user ID {id}")
|
||||
|
||||
def delete_user(self, id) -> None:
|
||||
self.cursor.execute("DELETE FROM Users WHERE ID = ?",(id))
|
||||
self.cursor.execute("DELETE FROM Users WHERE ID = ?",(id,))
|
||||
self.conn.commit()
|
||||
self.emit_log(2, f"Deleted user ID {id}")
|
||||
|
||||
def display_users(self) -> tuple[tuple[int, str, int]]:
|
||||
self.cursor.execute("SELECT * FROM Users")
|
||||
def display_users(self) -> tuple[tuple[int, str, bool]]:
|
||||
self.cursor.execute("SELECT users.`ID`, users.`username`, users.`administer` FROM Users")
|
||||
return self.cursor.fetchall()
|
||||
|
||||
def username_from_id(self, user_id):
|
||||
self.cursor.execute("SELECT users.`username` FROM users WHERE `ID` = ?;", (user_id,))
|
||||
return self.cursor.fetchone()
|
||||
|
||||
def user_by_username(self, username) -> tuple[int, str, bytes, bytes] | None:
|
||||
def user_by_username(self, username) -> tuple[int, str, bytes, bytes, bool] | None:
|
||||
self.cursor.execute("SELECT * FROM users WHERE `username` = ?;", (username,))
|
||||
return self.cursor.fetchone()
|
||||
|
||||
def is_admin(self, user_id) -> bool:
|
||||
self.cursor.execute("SELECT users.`administer` FROM users WHERE `ID` = ?;", (user_id,))
|
||||
res = self.cursor.fetchone()
|
||||
if res is None:
|
||||
return False
|
||||
else:
|
||||
return res[0] == 1
|
||||
|
||||
def view_valid_rooms(self, user_id) -> list[tuple[str, str, int]]:
|
||||
self.cursor.execute(
|
||||
@@ -65,6 +79,11 @@ class DatabaseConnect:
|
||||
(user_id,))
|
||||
return self.cursor.fetchall()
|
||||
|
||||
def view_all_rooms(self) -> list[tuple[str, str, int]]:
|
||||
self.cursor.execute(
|
||||
"SELECT rooms.name, rooms.shortname, rooms.ID from rooms;")
|
||||
return self.cursor.fetchall()
|
||||
|
||||
def user_has_room_perms(self, user_id, room_shortname) -> bool:
|
||||
self.cursor.execute("SELECT permissions.`view` FROM permissions LEFT JOIN rooms ON permissions.`roomID` = rooms.ID WHERE rooms.shortname = ? AND `userID` = ?;",(room_shortname, user_id))
|
||||
res = self.cursor.fetchone()
|
||||
@@ -78,11 +97,11 @@ class DatabaseConnect:
|
||||
# return self.cursor.fetchone()
|
||||
|
||||
def get_sensors_in_room_shortname(self, shortname) -> list[tuple[int, int]]:
|
||||
self.cursor.execute("SELECT Sensors.`ID`, Sensors.`Type` from Sensors LEFT JOIN rooms ON Sensors.`roomID` = rooms.ID WHERE rooms.shortname = ?;",(shortname,))
|
||||
self.cursor.execute("Select sensors.`ID`, sensors.`Type` FROM sensors LEFT JOIN devices ON devices.`ID` = sensors.`deviceID` LEFT JOIN rooms ON devices.`roomID` = rooms.`ID` WHERE rooms.shortname = ?;",(shortname,))
|
||||
return [x for x in self.cursor.fetchall()]
|
||||
|
||||
def get_sensors_in_room_id(self, roomid) -> list[tuple[int, int]]:
|
||||
self.cursor.execute("SELECT Sensors.`ID`, Sensors.`Type` from Sensors LEFT JOIN rooms ON Sensors.`roomID` = rooms.ID WHERE rooms.`ID` = ?;",(roomid,))
|
||||
self.cursor.execute("Select sensors.`ID`, sensors.`Type` FROM sensors LEFT JOIN devices ON devices.`ID` = sensors.`deviceID` LEFT JOIN rooms ON devices.`roomID` = rooms.`ID` WHERE rooms.`ID` = ?;",(roomid,))
|
||||
return [(x[0], x[1]) for x in self.cursor.fetchall()]
|
||||
|
||||
def get_sensorsinfo_by_sensorid(self, sensorid) -> SensorInfo | None:
|
||||
|
||||
Reference in New Issue
Block a user