From 5a2b6341533eae8be77ee84500640feba9f29a75 Mon Sep 17 00:00:00 2001 From: Greg Tyler Date: Wed, 10 Aug 2022 12:17:27 +0100 Subject: [PATCH] Allow users to edit email addresses Make field editable and sent it to the API For VEGA-1405 #minor --- docker/docker-compose.yml | 1 + internal/server/edit_user.go | 2 +- internal/server/edit_user_test.go | 2 ++ internal/sirius/edit_user.go | 2 ++ internal/sirius/edit_user_test.go | 2 ++ web/template/edit-user.gotmpl | 8 ++++++-- 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index e3c981f6..f83508c2 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -2,6 +2,7 @@ version: "3.6" services: app: + image: 311462405659.dkr.ecr.eu-west-1.amazonaws.com/sirius-user-management:latest build: context: .. dockerfile: ./docker/sirius-user-management/Dockerfile diff --git a/internal/server/edit_user.go b/internal/server/edit_user.go index bd0e8ab0..cdd22756 100644 --- a/internal/server/edit_user.go +++ b/internal/server/edit_user.go @@ -60,6 +60,7 @@ func editUser(client EditUserClient, tmpl Template) Handler { case http.MethodPost: vars.User = sirius.AuthUser{ ID: id, + Email: r.PostFormValue("email"), Firstname: r.PostFormValue("firstname"), Surname: r.PostFormValue("surname"), Organisation: r.PostFormValue("organisation"), @@ -85,7 +86,6 @@ func editUser(client EditUserClient, tmpl Template) Handler { } vars.Success = true - vars.User.Email = r.PostFormValue("email") return tmpl.ExecuteTemplate(w, "page", vars) default: diff --git a/internal/server/edit_user_test.go b/internal/server/edit_user_test.go index 1fff72ca..6ac5da15 100644 --- a/internal/server/edit_user_test.go +++ b/internal/server/edit_user_test.go @@ -139,6 +139,7 @@ func TestPostEditUser(t *testing.T) { assert.Equal(getContext(r), client.editUser.lastCtx) assert.Equal(sirius.AuthUser{ ID: 123, + Email: "a", Firstname: "b", Surname: "c", Organisation: "d", @@ -193,6 +194,7 @@ func TestPostEditUserClientError(t *testing.T) { Roles: []string{"System Admin", "Manager"}, User: sirius.AuthUser{ ID: 123, + Email: "a", Firstname: "b", Surname: "c", Organisation: "d", diff --git a/internal/sirius/edit_user.go b/internal/sirius/edit_user.go index eb8e71c8..e8cad494 100644 --- a/internal/sirius/edit_user.go +++ b/internal/sirius/edit_user.go @@ -9,6 +9,7 @@ import ( type editUserRequest struct { ID int `json:"id"` + Email string `json:"email,omitempty"` Firstname string `json:"firstname"` Surname string `json:"surname"` Roles []string `json:"roles"` @@ -20,6 +21,7 @@ func (c *Client) EditUser(ctx Context, user AuthUser) error { var body bytes.Buffer err := json.NewEncoder(&body).Encode(editUserRequest{ ID: user.ID, + Email: user.Email, Firstname: user.Firstname, Surname: user.Surname, Roles: append(user.Roles, user.Organisation), diff --git a/internal/sirius/edit_user_test.go b/internal/sirius/edit_user_test.go index 74226c0b..ffcd1792 100644 --- a/internal/sirius/edit_user_test.go +++ b/internal/sirius/edit_user_test.go @@ -35,6 +35,7 @@ func TestEditUser(t *testing.T) { name: "OK", user: AuthUser{ ID: 123, + Email: "c@email", Firstname: "a", Surname: "b", Organisation: "d", @@ -57,6 +58,7 @@ func TestEditUser(t *testing.T) { }, Body: map[string]interface{}{ "id": 123, + "email": "c@email", "firstname": "a", "surname": "b", "roles": []string{"e", "f", "d"}, diff --git a/web/template/edit-user.gotmpl b/web/template/edit-user.gotmpl index 72d3b708..07e6df8f 100644 --- a/web/template/edit-user.gotmpl +++ b/web/template/edit-user.gotmpl @@ -68,8 +68,12 @@
- - + {{ range .Errors.email }} +

+ Error: {{ . }} +

+ {{ end }} +