From befccd861f6f026386eee86b563f4e900a0624e6 Mon Sep 17 00:00:00 2001 From: MrMelon54 Date: Thu, 16 May 2024 22:46:32 +0100 Subject: [PATCH] Minor modifications to work with templates --- database/db-types.go | 10 +++++----- database/tx.go | 8 ++++---- pages/manage-apps.go.html | 24 ++++++++++++------------ pages/manage-users.go.html | 10 +++++----- pages/oauth-authorize.go.html | 2 +- server/id_token.go | 2 +- server/manage-apps.go | 10 ++++++---- server/manage-users.go | 10 ++++++---- 8 files changed, 40 insertions(+), 36 deletions(-) diff --git a/database/db-types.go b/database/db-types.go index 461bbfa..9aa3145 100644 --- a/database/db-types.go +++ b/database/db-types.go @@ -6,7 +6,7 @@ import ( ) type User struct { - Sub string `json:"sub"` + Subject string `json:"subject"` Email string `json:"email"` EmailVerified bool `json:"email_verified"` Roles string `json:"roles"` @@ -16,13 +16,13 @@ type User struct { } type ClientInfoDbOutput struct { - Sub, Name, Secret, Domain, Owner, Perms string - Public, SSO, Active bool + Subject, Name, Secret, Domain, Owner, Perms string + Public, Sso, Active bool } var _ oauth2.ClientInfo = &ClientInfoDbOutput{} -func (c *ClientInfoDbOutput) GetID() string { return c.Sub } +func (c *ClientInfoDbOutput) GetID() string { return c.Subject } func (c *ClientInfoDbOutput) GetSecret() string { return c.Secret } func (c *ClientInfoDbOutput) GetDomain() string { return c.Domain } func (c *ClientInfoDbOutput) IsPublic() bool { return c.Public } @@ -34,7 +34,7 @@ func (c *ClientInfoDbOutput) GetName() string { return c.Name } // IsSSO is an extra field for the oauth handler to skip the user input stage // this is for trusted applications to get permissions without asking the user -func (c *ClientInfoDbOutput) IsSSO() bool { return c.SSO } +func (c *ClientInfoDbOutput) IsSSO() bool { return c.Sso } // IsActive is an extra field for the app manager to get the active state func (c *ClientInfoDbOutput) IsActive() bool { return c.Active } diff --git a/database/tx.go b/database/tx.go index d2bdba8..7190b35 100644 --- a/database/tx.go +++ b/database/tx.go @@ -57,7 +57,7 @@ func (t *Tx) GetUser(sub string) (*User, error) { var u User row := t.tx.QueryRow(`SELECT email, email_verified, roles, userinfo, updated_at, active FROM users WHERE subject = ?`, sub) err := row.Scan(&u.Email, &u.EmailVerified, &u.Roles, &u.UserInfo, &u.UpdatedAt, &u.Active) - u.Sub = sub + u.Subject = sub return &u, err } @@ -71,7 +71,7 @@ func (t *Tx) GetUserEmail(sub string) (string, error) { func (t *Tx) GetClientInfo(sub string) (oauth2.ClientInfo, error) { var u ClientInfoDbOutput row := t.tx.QueryRow(`SELECT secret, name, domain, perms, public, sso, active FROM client_store WHERE subject = ? LIMIT 1`, sub) - err := row.Scan(&u.Secret, &u.Name, &u.Domain, &u.Perms, &u.Public, &u.SSO, &u.Active) + err := row.Scan(&u.Secret, &u.Name, &u.Domain, &u.Perms, &u.Public, &u.Sso, &u.Active) u.Owner = sub if !u.Active { return nil, fmt.Errorf("client is not active") @@ -88,7 +88,7 @@ func (t *Tx) GetAppList(owner string, admin bool, offset int) ([]ClientInfoDbOut defer row.Close() for row.Next() { var a ClientInfoDbOutput - err := row.Scan(&a.Sub, &a.Name, &a.Domain, &a.Owner, &a.Perms, &a.Public, &a.SSO, &a.Active) + err := row.Scan(&a.Subject, &a.Name, &a.Domain, &a.Owner, &a.Perms, &a.Public, &a.Sso, &a.Active) if err != nil { return nil, err } @@ -129,7 +129,7 @@ func (t *Tx) GetUserList(offset int) ([]User, error) { } for row.Next() { var a User - err := row.Scan(&a.Sub, &a.Email, &a.EmailVerified, &a.Roles, &a.UpdatedAt, &a.Active) + err := row.Scan(&a.Subject, &a.Email, &a.EmailVerified, &a.Roles, &a.UpdatedAt, &a.Active) if err != nil { return nil, err } diff --git a/pages/manage-apps.go.html b/pages/manage-apps.go.html index f290372..31abb87 100644 --- a/pages/manage-apps.go.html +++ b/pages/manage-apps.go.html @@ -40,39 +40,39 @@
New application secret: {{.NewAppSecret}} for {{.NewAppName}}
{{end}} - {{if .Edit}} + {{if .EditApp}}

Edit Client Application

- +
- +
- +
- +
{{if .IsAdmin}}
- +
{{end}}
- +
{{if .IsAdmin}}
- +
{{end}}
- +
@@ -101,7 +101,7 @@ {{range .Apps}} - {{.Sub}} + {{.Subject}} {{.Name}} {{.Domain}} {{.Perms}} @@ -111,13 +111,13 @@
- +
- +
diff --git a/pages/manage-users.go.html b/pages/manage-users.go.html index 48dc3cb..7bc179b 100644 --- a/pages/manage-users.go.html +++ b/pages/manage-users.go.html @@ -12,18 +12,18 @@ - {{if .Edit}} + {{if .EditUser}}

Edit User

- +
- +
@@ -54,7 +54,7 @@ {{range .Users}} - {{.Sub}} + {{.Subject}} {{if $.EmailShow}} {{.Email}} @@ -69,7 +69,7 @@ - +
diff --git a/pages/oauth-authorize.go.html b/pages/oauth-authorize.go.html index 7655194..62002fc 100644 --- a/pages/oauth-authorize.go.html +++ b/pages/oauth-authorize.go.html @@ -9,7 +9,7 @@ {{template "header.go.html" .}}
-
The application {{.AppName}} wants to access your account ({{.DisplayName}}). It requests the following permissions:
+
The application {{.AppName}} wants to access your account ({{.Auth.UserInfo.name}}). It requests the following permissions:
    {{range .WantsList}} diff --git a/server/id_token.go b/server/id_token.go index 63061e2..8e502dd 100644 --- a/server/id_token.go +++ b/server/id_token.go @@ -43,7 +43,7 @@ func generateIDToken(ti oauth2.TokenInfo, us *database.DB, key mjwt.Signer) (tok return "", err } - token, err = key.GenerateJwt(user.Sub, "", jwt.ClaimStrings{ti.GetClientID()}, ti.GetAccessExpiresIn(), &IdTokenClaims{Subject: user.Sub}) + token, err = key.GenerateJwt(user.Subject, "", jwt.ClaimStrings{ti.GetClientID()}, ti.GetAccessExpiresIn(), &IdTokenClaims{Subject: user.Subject}) return } diff --git a/server/manage-apps.go b/server/manage-apps.go index 7cb7fa7..2f367bb 100644 --- a/server/manage-apps.go +++ b/server/manage-apps.go @@ -46,16 +46,18 @@ func (h *HttpServer) ManageAppsGet(rw http.ResponseWriter, req *http.Request, _ } if q.Has("edit") { for _, i := range appList { - if i.Sub == q.Get("edit") { - m["Edit"] = i - goto validEdit + if i.Subject == q.Get("edit") { + m["EditApp"] = i + rw.Header().Set("Content-Type", "text/html") + rw.WriteHeader(http.StatusOK) + pages.RenderPageTemplate(rw, "manage-apps-edit", m) + return } } http.Error(rw, "400 Bad Request: Invalid client app to edit", http.StatusBadRequest) return } -validEdit: rw.Header().Set("Content-Type", "text/html") rw.WriteHeader(http.StatusOK) pages.RenderPageTemplate(rw, "manage-apps", m) diff --git a/server/manage-users.go b/server/manage-users.go index d777ce4..d24a815 100644 --- a/server/manage-users.go +++ b/server/manage-users.go @@ -47,16 +47,18 @@ func (h *HttpServer) ManageUsersGet(rw http.ResponseWriter, req *http.Request, _ } if q.Has("edit") { for _, i := range userList { - if i.Sub == q.Get("edit") { - m["Edit"] = i - goto validEdit + if i.Subject == q.Get("edit") { + m["EditUser"] = i + rw.Header().Set("Content-Type", "text/html") + rw.WriteHeader(http.StatusOK) + pages.RenderPageTemplate(rw, "manage-users-edit", m) + return } } http.Error(rw, "400 Bad Request: Invalid user to edit", http.StatusBadRequest) return } -validEdit: rw.Header().Set("Content-Type", "text/html") rw.WriteHeader(http.StatusOK) pages.RenderPageTemplate(rw, "manage-users", m)