From 67c9501fcc8bae25c0fa4254b56bc88a08183dc1 Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Wed, 10 May 2023 16:14:19 -0600 Subject: [PATCH 1/4] Changing registration changelog to include username --- CHANGELOG.md | 1 + traffic_ops/traffic_ops_golang/login/register.go | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98433ed19e..bff902dfcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - [#7469](https://github.com/apache/trafficcontrol/pull/7469) *Traffic Ops* Changed logic to not report empty or missing cookies into TO error.log. ### Fixed +- [#](https://github.com/apache/trafficcontrol/pull/) *Traffic Ops* Fixed the changelog registration message to include the username instead of duplicate email entry. - [#7441](https://github.com/apache/trafficcontrol/pull/7441) *Traffic Ops* Fixed the invalidation jobs endpoint to respect CDN locks. - [#7413](https://github.com/apache/trafficcontrol/issues/7413) *Traffic Ops* Fixes service_category apis to respond with RFC3339 date/time Format - [#7414](https://github.com/apache/trafficcontrol/pull/7414) * Traffic Portal* Fixed DSR difference for DS required capability. diff --git a/traffic_ops/traffic_ops_golang/login/register.go b/traffic_ops/traffic_ops_golang/login/register.go index 8f664a3bed..b5a494787e 100644 --- a/traffic_ops/traffic_ops_golang/login/register.go +++ b/traffic_ops/traffic_ops_golang/login/register.go @@ -275,7 +275,7 @@ func RegisterUser(w http.ResponseWriter, r *http.Request) { msg, err := createRegistrationMsg(email, t, tx, inf.Config.ConfigPortal) if err != nil { - sysErr = fmt.Errorf("Failed to create email message: %v", err) + sysErr = fmt.Errorf("failed to create email message: %v", err) errCode = http.StatusInternalServerError api.HandleErr(w, r, tx, errCode, nil, sysErr) return @@ -287,13 +287,16 @@ func RegisterUser(w http.ResponseWriter, r *http.Request) { api.HandleErr(w, r, tx, errCode, userErr, sysErr) return } - + username := "" + if user.Username != nil { + username = *user.Username + } var alert = "Sent user registration to %s with the following permissions [ role: %s | tenant: %s ]" alert = fmt.Sprintf(alert, email, role, tenant) api.WriteRespAlert(w, r, tc.SuccessLevel, alert) var changeLog = "USER: %s, EMAIL: %s, ACTION: registration sent with role %s and tenant %s" - changeLog = fmt.Sprintf(changeLog, email, email, role, tenant) + changeLog = fmt.Sprintf(changeLog, username, email, role, tenant) api.CreateChangeLogRawTx(api.ApiChange, changeLog, inf.User, tx) } From 70eaa46ab5a6fe010cdefd77859704328f4d007a Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Wed, 10 May 2023 16:17:17 -0600 Subject: [PATCH 2/4] fix changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bff902dfcf..101e16ff47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,7 +53,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - [#7469](https://github.com/apache/trafficcontrol/pull/7469) *Traffic Ops* Changed logic to not report empty or missing cookies into TO error.log. ### Fixed -- [#](https://github.com/apache/trafficcontrol/pull/) *Traffic Ops* Fixed the changelog registration message to include the username instead of duplicate email entry. +- [#7511](https://github.com/apache/trafficcontrol/pull/7511) *Traffic Ops* Fixed the changelog registration message to include the username instead of duplicate email entry. - [#7441](https://github.com/apache/trafficcontrol/pull/7441) *Traffic Ops* Fixed the invalidation jobs endpoint to respect CDN locks. - [#7413](https://github.com/apache/trafficcontrol/issues/7413) *Traffic Ops* Fixes service_category apis to respond with RFC3339 date/time Format - [#7414](https://github.com/apache/trafficcontrol/pull/7414) * Traffic Portal* Fixed DSR difference for DS required capability. From 148de60db094917a797ca7ce73b145c51d6e8c14 Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Fri, 12 May 2023 12:52:11 -0600 Subject: [PATCH 3/4] fix bug where username is empty --- .../traffic_ops_golang/login/register.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/traffic_ops/traffic_ops_golang/login/register.go b/traffic_ops/traffic_ops_golang/login/register.go index b5a494787e..f865c8661a 100644 --- a/traffic_ops/traffic_ops_golang/login/register.go +++ b/traffic_ops/traffic_ops_golang/login/register.go @@ -69,7 +69,8 @@ RETURNING ( SELECT tenant.name FROM tenant WHERE tenant.id=tm_user.tenant_id -) AS tenant +) AS tenant, +username ` const renewRegistrationQuery = ` @@ -246,6 +247,7 @@ func RegisterUser(w http.ResponseWriter, r *http.Request) { var role string var tenant string + var username string user, exists, err := dbhelpers.GetUserByEmail(email.Address.Address, inf.Tx.Tx) if err != nil { errCode = http.StatusInternalServerError @@ -263,7 +265,7 @@ func RegisterUser(w http.ResponseWriter, r *http.Request) { role, tenant, err = renewRegistration(tx, req, t, user) } else { - role, tenant, err = newRegistration(tx, req, t) + role, tenant, username, err = newRegistration(tx, req, t) } if err != nil { @@ -287,7 +289,6 @@ func RegisterUser(w http.ResponseWriter, r *http.Request) { api.HandleErr(w, r, tx, errCode, userErr, sysErr) return } - username := "" if user.Username != nil { username = *user.Username } @@ -312,14 +313,14 @@ func renewRegistration(tx *sql.Tx, req tc.UserRegistrationRequest, t string, u t return role, tenant, nil } -func newRegistration(tx *sql.Tx, req tc.UserRegistrationRequest, t string) (string, string, error) { +func newRegistration(tx *sql.Tx, req tc.UserRegistrationRequest, t string) (string, string, string, error) { var role string var tenant string - + var username string var row = tx.QueryRow(registerUserQuery, req.Email.Address.Address, req.Role, req.TenantID, t) - if err := row.Scan(&role, &tenant); err != nil { - return "", "", err + if err := row.Scan(&role, &tenant, &username); err != nil { + return "", "", "", err } - return role, tenant, nil + return role, tenant, username, nil } From ec56d17aed4f9a155884f8d14372d8c05bb53a0a Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Fri, 12 May 2023 14:56:43 -0600 Subject: [PATCH 4/4] Address code review --- traffic_ops/traffic_ops_golang/login/register.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/traffic_ops/traffic_ops_golang/login/register.go b/traffic_ops/traffic_ops_golang/login/register.go index f865c8661a..6a0fc0164b 100644 --- a/traffic_ops/traffic_ops_golang/login/register.go +++ b/traffic_ops/traffic_ops_golang/login/register.go @@ -262,7 +262,6 @@ func RegisterUser(w http.ResponseWriter, r *http.Request) { api.HandleErr(w, r, tx, errCode, userErr, nil) return } - role, tenant, err = renewRegistration(tx, req, t, user) } else { role, tenant, username, err = newRegistration(tx, req, t) @@ -274,6 +273,9 @@ func RegisterUser(w http.ResponseWriter, r *http.Request) { api.HandleErr(w, r, tx, errCode, userErr, sysErr) return } + if user.Username != nil { + username = *user.Username + } msg, err := createRegistrationMsg(email, t, tx, inf.Config.ConfigPortal) if err != nil { @@ -289,9 +291,6 @@ func RegisterUser(w http.ResponseWriter, r *http.Request) { api.HandleErr(w, r, tx, errCode, userErr, sysErr) return } - if user.Username != nil { - username = *user.Username - } var alert = "Sent user registration to %s with the following permissions [ role: %s | tenant: %s ]" alert = fmt.Sprintf(alert, email, role, tenant) api.WriteRespAlert(w, r, tc.SuccessLevel, alert)