Support global user settings

This commit is contained in:
shortcutme 2018-10-20 02:28:58 +02:00
parent 39d442a05d
commit 3579f9e0c4
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
2 changed files with 16 additions and 4 deletions

View file

@ -23,7 +23,7 @@ class UiWebsocket(object):
admin_commands = set([ admin_commands = set([
"sitePause", "siteResume", "siteDelete", "siteList", "siteSetLimit", "siteAdd", "sitePause", "siteResume", "siteDelete", "siteList", "siteSetLimit", "siteAdd",
"channelJoinAllsite", "serverUpdate", "serverPortcheck", "serverShutdown", "serverShowdirectory", "serverGetWrapperNonce", "channelJoinAllsite", "serverUpdate", "serverPortcheck", "serverShutdown", "serverShowdirectory", "serverGetWrapperNonce",
"certSet", "configSet", "permissionAdd", "permissionRemove", "announcerStats" "certSet", "configSet", "permissionAdd", "permissionRemove", "announcerStats", "userSetGlobalSettings"
]) ])
async_commands = set(["fileGet", "fileList", "dirList", "fileNeed"]) async_commands = set(["fileGet", "fileList", "dirList", "fileNeed"])
@ -332,7 +332,8 @@ class UiWebsocket(object):
"timecorrection": file_server.timecorrection, "timecorrection": file_server.timecorrection,
"language": config.language, "language": config.language,
"debug": config.debug, "debug": config.debug,
"plugins": PluginManager.plugin_manager.plugin_names "plugins": PluginManager.plugin_manager.plugin_names,
"user_settings": self.user.settings
} }
def formatAnnouncerInfo(self, site): def formatAnnouncerInfo(self, site):
@ -972,7 +973,16 @@ class UiWebsocket(object):
self.response(to, settings) self.response(to, settings)
def actionUserSetSettings(self, 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") self.response(to, "ok")
def actionServerUpdate(self, to): def actionServerUpdate(self, to):

View file

@ -25,6 +25,7 @@ class User(object):
self.master_address = CryptBitcoin.privatekeyToAddress(self.master_seed) self.master_address = CryptBitcoin.privatekeyToAddress(self.master_seed)
self.sites = data.get("sites", {}) self.sites = data.get("sites", {})
self.certs = data.get("certs", {}) self.certs = data.get("certs", {})
self.settings = data.get("settings", {})
self.delayed_save_thread = None self.delayed_save_thread = None
self.log = logging.getLogger("User:%s" % self.master_address) 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["master_seed"] = self.master_seed
user_data["sites"] = self.sites user_data["sites"] = self.sites
user_data["certs"] = self.certs 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)) 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.log.debug("Saved in %.3fs" % (time.time() - s))
self.delayed_save_thread = None self.delayed_save_thread = None
@ -80,7 +82,7 @@ class User(object):
self.saveDelayed() self.saveDelayed()
self.log.debug("Deleted site: %s" % address) self.log.debug("Deleted site: %s" % address)
def setSettings(self, address, settings): def setSiteSettings(self, address, settings):
site_data = self.getSiteData(address) site_data = self.getSiteData(address)
site_data["settings"] = settings site_data["settings"] = settings
self.saveDelayed() self.saveDelayed()