summaryrefslogtreecommitdiff
path: root/backend/settings.py
diff options
context:
space:
mode:
Diffstat (limited to 'backend/settings.py')
-rw-r--r--backend/settings.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/backend/settings.py b/backend/settings.py
index 9b09a3e2..d2cce769 100644
--- a/backend/settings.py
+++ b/backend/settings.py
@@ -1,20 +1,36 @@
-import imp
from json import dump, load
-from os import mkdir, path
+from os import mkdir, path, listdir, rename
+from shutil import chown
-from helpers import get_home_path, get_homebrew_path, get_user, set_user
+from helpers import get_home_path, get_homebrew_path, get_user, set_user, get_user_owner
class SettingsManager:
def __init__(self, name, settings_directory = None) -> None:
set_user()
USER = get_user()
+ wrong_dir = get_homebrew_path(get_home_path(USER))
if settings_directory == None:
- settings_directory = get_homebrew_path(get_home_path(USER))
+ settings_directory = path.join(wrong_dir, "settings")
+
self.path = path.join(settings_directory, name + ".json")
+ #Create the folder with the correct permission
if not path.exists(settings_directory):
mkdir(settings_directory)
+ chown(settings_directory, USER, USER)
+
+ #Copy all old settings file in the root directory to the correct folder
+ for file in listdir(wrong_dir):
+ if file.endswith(".json"):
+ rename(path.join(wrong_dir,file),
+ path.join(settings_directory, file))
+ self.path = path.join(settings_directory, name + ".json")
+
+
+ #If the owner of the settings directory is not the user, then set it as the user:
+ if get_user_owner(settings_directory) != USER:
+ chown(settings_directory, USER, USER)
self.settings = {}