Quellcode durchsuchen

delete users and ownables

Eren Yilmaz vor 6 Jahren
Ursprung
Commit
356e53047a
3 geänderte Dateien mit 80 neuen und 1 gelöschten Zeilen
  1. 11 0
      delete_ownable.py
  2. 11 0
      delete_user.py
  3. 58 1
      model.py

+ 11 - 0
delete_ownable.py

@@ -0,0 +1,11 @@
+import model
+from admin_console import cleanup
+
+if __name__ == '__main__':
+    ownable_id = model.ownable_id_by_name(input('Which ownable?'))
+    if input('Are you sure you want to delete ownable with id ' + str(
+            ownable_id) + '? (type in "yes" or something else):') == 'yes':
+        model.delete_ownable(ownable_id=ownable_id)
+    else:
+        print('Not deleting ownable')
+    cleanup()

+ 11 - 0
delete_user.py

@@ -0,0 +1,11 @@
+import model
+from admin_console import cleanup
+
+if __name__ == '__main__':
+    user_id = model.get_user_id_by_name(input('Which user?'))
+    if input('Are you sure you want to delete user with id ' + str(
+            user_id) + '? (type in "yes" or something else):') == 'yes':
+        model.delete_user(user_id=user_id)
+    else:
+        print('Not deleting user')
+    cleanup()

+ 58 - 1
model.py

@@ -872,4 +872,61 @@ def sign_out_user(session_id):
     cursor.execute('''
         DELETE FROM sessions
         WHERE user_id = (SELECT user_id FROM sessions s2 WHERE s2.session_id = ?)
-        ''', (session_id,))
+        ''', (session_id,))
+
+
+def delete_user(user_id):
+    connect()
+
+    cursor.execute('''
+        DELETE FROM sessions
+        WHERE user_id = ?
+        ''', (user_id,))
+
+    cursor.execute('''
+        DELETE FROM orders
+        WHERE ownership_id IN (
+            SELECT rowid FROM ownership WHERE user_id = ?)
+        ''', (user_id,))
+
+    cursor.execute('''
+        DELETE FROM ownership
+        WHERE user_id = ?)
+        ''', (user_id,))
+
+    cursor.execute('''
+        DELETE FROM keys
+        WHERE used_by_user_id = ?)
+        ''', (user_id,))
+
+    cursor.execute('''
+        DELETE FROM users
+        WHERE rowid = ?))
+        ''', (user_id,))
+
+
+def delete_ownable(ownable_id):
+    connect()
+
+    cursor.execute('''
+        DELETE FROM transactions
+        WHERE ownable_id = ?
+        ''', (ownable_id,))
+
+    cursor.execute('''
+        DELETE FROM orders
+        WHERE ownership_id IN (
+            SELECT rowid FROM ownership WHERE ownable_id = ?)
+        ''', (ownable_id,))
+
+    # only delete empty ownerships
+    cursor.execute('''
+        DELETE FROM ownership
+        WHERE ownable_id = ?
+        AND amount = 0)
+        ''', (ownable_id,))
+
+    cursor.execute('''
+        DELETE FROM ownables
+        WHERE rowid = ?))
+        ''', (ownable_id,))