setup for multiple settings sections

This commit is contained in:
Jakob Ketterl
2020-04-25 21:42:00 +02:00
parent 2f011ea249
commit b874583931
6 changed files with 41 additions and 9 deletions

View File

@ -46,12 +46,12 @@ class SessionController(WebpageController):
if data["user"] in userlist:
user = userlist[data["user"]]
if user.password.is_valid(data["password"]):
# TODO pass the final destination
# TODO evaluate password force_change and redirect to password change
key = SessionStorage.getSharedInstance().startSession({"user": user.name})
cookie = SimpleCookie()
cookie["owrx-session"] = key
self.send_redirect("/admin", cookies=cookie)
# TODO pass the final destination
self.send_redirect("/settings", cookies=cookie)
return
self.send_redirect("/login")

View File

@ -44,6 +44,11 @@ class Section(object):
class SettingsController(AdminController):
def indexAction(self):
self.serve_template("settings.html", **self.template_variables())
class GeneralSettingsController(AdminController):
sections = [
Section(
"General settings",
@ -222,7 +227,7 @@ class SettingsController(AdminController):
]
def render_sections(self):
sections = "".join(section.render() for section in SettingsController.sections)
sections = "".join(section.render() for section in GeneralSettingsController.sections)
return """
<form class="settings-body" method="POST">
{sections}
@ -235,7 +240,7 @@ class SettingsController(AdminController):
)
def indexAction(self):
self.serve_template("admin.html", **self.template_variables())
self.serve_template("generalsettings.html", **self.template_variables())
def template_variables(self):
variables = super().template_variables()
@ -245,7 +250,7 @@ class SettingsController(AdminController):
def processFormData(self):
data = parse_qs(self.get_body().decode("utf-8"))
data = {
k: v for i in SettingsController.sections for k, v in i.parse(data).items()
k: v for i in GeneralSettingsController.sections for k, v in i.parse(data).items()
}
config = Config.get()
for k, v in data.items():

View File

@ -23,7 +23,7 @@ class WebpageController(TemplateController):
settingslink = ""
pm = Config.get()
if "webadmin_enabled" in pm and pm["webadmin_enabled"]:
settingslink = """<a class="button" href="admin" target="_blank"><img src="static/gfx/openwebrx-panel-settings.png" /><br/>Settings</a>"""
settingslink = """<a class="button" href="settings" target="_blank"><img src="static/gfx/openwebrx-panel-settings.png" /><br/>Settings</a>"""
header = self.render_template("include/header.include.html", settingslink=settingslink)
return {"header": header}