summaryrefslogtreecommitdiff
path: root/server/settings.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/settings.py')
-rw-r--r--server/settings.py110
1 files changed, 110 insertions, 0 deletions
diff --git a/server/settings.py b/server/settings.py
new file mode 100644
index 0000000..c2af72a
--- /dev/null
+++ b/server/settings.py
@@ -0,0 +1,110 @@
+'''
+ An important class that allows settings
+ in the program & will keep the database
+ updated.
+
+ Verified: 2021 February 8
+ * Follows PEP8
+ * Tested Platforms
+ * Windows 10
+'''
+
+from server.database import Database
+
+
+class Settings:
+
+ TABLE_NAME = 'environment'
+ TABLE_KWARGS = {
+ 'email_alert': 'integer',
+ 'email_sender': 'text',
+ 'email_password': 'text',
+ 'email_receivers': 'text',
+ 'terminal_alert': 'integer',
+ 'auto_shell': 'integer',
+ 'gui_username': 'text',
+ 'gui_password': 'text',
+ 'gui_whitelist': 'text',
+ 'gui_alert': 'integer',
+ 'gui_update': 'integer',
+ 'connect_sticky': 'integer',
+ 'connect_refresh': 'integer',
+ 'http_log': 'integer',
+ 'action_log': 'integer',
+ 'console_log': 'integer',
+ 'traceback_log': 'integer'
+ }
+
+ EVENIORMENT_VARIABLES = ('EMAIL_ALERT',
+ 'EMAIL_SENDER',
+ 'EMAIL_PASSWORD',
+ 'EMAIL_RECEIVERS',
+ 'TERMINAL_ALERT',
+ 'AUTO_SHELL',
+ 'GUI_USERNAME',
+ 'GUI_PASSWORD',
+ 'GUI_WHITELIST',
+ 'GUI_ALERT',
+ 'GUI_UPDATE',
+ 'CONNECT_STICKY',
+ 'CONNECT_REFRESH',
+ 'HTTP_LOG',
+ 'ACTION_LOG',
+ 'CONSOLE_LOG',
+ 'TRACEBACK_LOG')
+
+ DEFAULT = (int(),
+ str(),
+ str(),
+ str(),
+ int(True),
+ int(True),
+ 'god',
+ 'view',
+ str(),
+ int(),
+ int(True),
+ int(),
+ int(),
+ int(True),
+ int(True),
+ int(True),
+ int(True))
+
+ @classmethod
+ def set_environment(cls):
+ db = Database()
+ db.create_table(cls.TABLE_NAME,
+ **cls.TABLE_KWARGS)
+ db.commit()
+
+ values = db.read(cls.TABLE_NAME)
+
+ if not values:
+ db.write(cls.TABLE_NAME, cls.DEFAULT)
+ db.commit()
+ values.append(cls.DEFAULT)
+
+ for key, value in zip((
+ cls.EVENIORMENT_VARIABLES), values[0]):
+ setattr(cls, key, value)
+
+ @classmethod
+ def environment(cls):
+ return (cls.EMAIL_ALERT,
+ cls.EMAIL_SENDER,
+ cls.EMAIL_PASSWORD,
+ cls.EMAIL_RECEIVERS,
+ cls.TERMINAL_ALERT,
+ cls.AUTO_SHELL,
+ cls.GUI_USERNAME,
+ cls.GUI_PASSWORD,
+ cls.GUI_WHITELIST,
+ cls.GUI_ALERT,
+ cls.GUI_UPDATE,
+ cls.CONNECT_STICKY,
+ cls.CONNECT_REFRESH,
+ cls.HTTP_LOG,
+ cls.ACTION_LOG,
+ cls.CONSOLE_LOG,
+ cls.TRACEBACK_LOG)