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([
"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):

View file

@ -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()