diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py index 6c1b0f1b..e0377198 100644 --- a/src/Ui/UiWebsocket.py +++ b/src/Ui/UiWebsocket.py @@ -23,7 +23,7 @@ class UiWebsocket(object): admin_commands = set([ "sitePause", "siteResume", "siteDelete", "siteList", "siteSetLimit", "siteAdd", "channelJoinAllsite", "serverUpdate", "serverPortcheck", "serverShutdown", "serverShowdirectory", "serverGetWrapperNonce", - "certSet", "configSet", "permissionAdd", "permissionRemove", "announcerStats" + "certSet", "configSet", "permissionAdd", "permissionRemove", "announcerStats", "userSetGlobalSettings" ]) async_commands = set(["fileGet", "fileList", "dirList", "fileNeed"]) @@ -332,7 +332,8 @@ class UiWebsocket(object): "timecorrection": file_server.timecorrection, "language": config.language, "debug": config.debug, - "plugins": PluginManager.plugin_manager.plugin_names + "plugins": PluginManager.plugin_manager.plugin_names, + "user_settings": self.user.settings } def formatAnnouncerInfo(self, site): @@ -972,7 +973,16 @@ class UiWebsocket(object): self.response(to, settings) def actionUserSetSettings(self, to, settings): - self.user.setSettings(self.site.address, settings) + self.user.setSiteSettings(self.site.address, settings) + self.response(to, "ok") + + def actionUserGetGlobalSettings(self, to): + settings = self.user.settings + self.response(to, settings) + + def actionUserSetGlobalSettings(self, to, settings): + self.user.settings = settings + self.user.save() self.response(to, "ok") def actionServerUpdate(self, to): diff --git a/src/User/User.py b/src/User/User.py index acaaf1d2..3a6b7a0a 100644 --- a/src/User/User.py +++ b/src/User/User.py @@ -25,6 +25,7 @@ class User(object): self.master_address = CryptBitcoin.privatekeyToAddress(self.master_seed) self.sites = data.get("sites", {}) self.certs = data.get("certs", {}) + self.settings = data.get("settings", {}) self.delayed_save_thread = None self.log = logging.getLogger("User:%s" % self.master_address) @@ -41,6 +42,7 @@ class User(object): user_data["master_seed"] = self.master_seed user_data["sites"] = self.sites user_data["certs"] = self.certs + user_data["settings"] = self.settings helper.atomicWrite("%s/users.json" % config.data_dir, json.dumps(users, indent=2, sort_keys=True)) self.log.debug("Saved in %.3fs" % (time.time() - s)) self.delayed_save_thread = None @@ -80,7 +82,7 @@ class User(object): self.saveDelayed() self.log.debug("Deleted site: %s" % address) - def setSettings(self, address, settings): + def setSiteSettings(self, address, settings): site_data = self.getSiteData(address) site_data["settings"] = settings self.saveDelayed()