diff --git a/config/config.go b/config/config.go index 72827f1..942afd4 100644 --- a/config/config.go +++ b/config/config.go @@ -47,8 +47,12 @@ func (*AmCLI) Version() string { // AmConfig holds the configuration of the application as read from YAML. type AmConfig struct { Site struct { - Title string `yaml:"title"` - TopRefresh int `yaml:"topRefresh"` + Title string `yaml:"title"` + TopRefresh int `yaml:"topRefresh"` + UserAgreement struct { + Title string `yaml:"title"` + Text string `yaml:"text"` + } `yaml:"userAgreement"` } `yaml:"site"` Database struct { Driver string `yaml:"driver"` @@ -90,6 +94,13 @@ func overlayString(loaded string, defaulted string) string { return loaded } +func overlayInt(loaded int, defaulted int) int { + if loaded != 0 { + return loaded + } + return defaulted +} + /* overlayConfig takes two configuration structures and overlays them to create the third. * Parameters: * dest - Points to the destination copnfiguration structure. @@ -98,7 +109,13 @@ func overlayString(loaded string, defaulted string) string { */ func overlayConfig(dest *AmConfig, loaded *AmConfig, defaults *AmConfig) { dest.Site.Title = overlayString(loaded.Site.Title, defaults.Site.Title) + dest.Site.TopRefresh = overlayInt(loaded.Site.TopRefresh, defaults.Site.TopRefresh) + dest.Site.UserAgreement.Title = overlayString(loaded.Site.UserAgreement.Title, defaults.Site.UserAgreement.Title) + dest.Site.UserAgreement.Text = overlayString(loaded.Site.UserAgreement.Text, defaults.Site.UserAgreement.Text) + dest.Database.Driver = overlayString(loaded.Database.Driver, defaults.Database.Driver) + dest.Database.Dsn = overlayString(loaded.Database.Dsn, defaults.Database.Dsn) dest.Rendering.TemplateDir = overlayString(loaded.Rendering.TemplateDir, defaults.Rendering.TemplateDir) + dest.Rendering.CookieKey = overlayString(loaded.Rendering.CookieKey, defaults.Rendering.CookieKey) } // SetupConfig loads the command line arguments, loads the config file, and prepares GlobalConfig. diff --git a/config/default.yaml b/config/default.yaml index b0fd42d..198f703 100644 --- a/config/default.yaml +++ b/config/default.yaml @@ -9,6 +9,10 @@ site: title: "Amsterdam Web Communities System" topRefresh: 300 + userAgreement: + title: "Amsterdam User Agreement" + text: > + Text of this agreement is TBD. database: driver: "mysql" dsn: "amsdb:x00yes2k@tcp(localhost)/amsterdam?parseTime=true&loc=Local" diff --git a/login.go b/login.go index 466926c..fb23845 100644 --- a/login.go +++ b/login.go @@ -27,3 +27,16 @@ func LoginForm(ctxt ui.AmContext) (string, any, error) { } return ui.ErrorPage(ctxt, err) } + +/* NewAccountUserAgreement renders the Amsterdam user agreement for new accounts. + * Parameters: + * ctxt - The AmContext for the request. + * Returns: + * Command string dictating what to be rendered. + * Data as a parameter for the command string. + * Standard Go error status. + */ +func NewAccountUserAgreement(ctxt ui.AmContext) (string, any, error) { + ctxt.VarMap().Set("amsterdam_pageTitle", "New Account User Agreement") + return "framed_template", "agreement.jet", nil +} diff --git a/main.go b/main.go index 5d1f099..b2e2dd4 100644 --- a/main.go +++ b/main.go @@ -43,6 +43,7 @@ func setupEcho() *echo.Echo { e.GET("/", ui.AmWrap(TopPage)) e.GET("/about", ui.AmWrap(AboutPage)) e.GET("/login", ui.AmWrap(LoginForm)) + e.GET("/newacct", ui.AmWrap(NewAccountUserAgreement)) return e } diff --git a/ui/views/agreement.jet b/ui/views/agreement.jet new file mode 100644 index 0000000..7ce5eee --- /dev/null +++ b/ui/views/agreement.jet @@ -0,0 +1,25 @@ +{* + * Amsterdam Web Communities System + * Copyright (c) 2025 Erbosoft Metaverse Design Solutions, All Rights Reserved + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + *} +
+
+
+

{{ GlobalConfig.Site.UserAgreement.Title }}

+
+

+ {{ GlobalConfig.Site.UserAgreement.Text | raw }} +

+
+ + +
+
+
+
diff --git a/ui/views/frame.jet b/ui/views/frame.jet index f8049c4..998be83 100644 --- a/ui/views/frame.jet +++ b/ui/views/frame.jet @@ -61,7 +61,7 @@ - Log In | - Create Account + Create Account {{ else }} You are logged in as {{ .CurrentUser().Username }} -