From 356bfc6a867bb06c97f22deaae0c27428e5ec0c5 Mon Sep 17 00:00:00 2001 From: Arnaud Delcasse Date: Sun, 30 Oct 2022 20:09:51 +0100 Subject: [PATCH] Change password --- go.sum | 3 --- grpcapi/grpcapi.go | 8 ++++++-- handlers/accounts.go | 20 +++++++++++++++++++ oidc-provider/templates/parcoursmob/auth.html | 4 +++- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/go.sum b/go.sum index 463372b..f5d754d 100644 --- a/go.sum +++ b/go.sum @@ -790,9 +790,6 @@ github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/oleiade/reflections v1.0.0/go.mod h1:rdFxbxq4QXVZWj0F+e9jqjDkc7dbp97vkRixKo2JR60= -github.com/oleiade/reflections v1.0.1 h1:D1XO3LVEYroYskEsoSiGItp9RUxG6jWnCVvrqH0HHQM= -github.com/oleiade/reflections v1.0.1/go.mod h1:rdFxbxq4QXVZWj0F+e9jqjDkc7dbp97vkRixKo2JR60= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= diff --git a/grpcapi/grpcapi.go b/grpcapi/grpcapi.go index 82cecdd..9593551 100644 --- a/grpcapi/grpcapi.go +++ b/grpcapi/grpcapi.go @@ -121,8 +121,12 @@ func (s MobilityAccountsServerImpl) GetAccountsBatch(ctx context.Context, req *G } return &GetAccountsBatchResponse{Accounts: accounts}, nil } -func (MobilityAccountsServerImpl) ChangePassword(ctc context.Context, req *ChangePasswordRequest) (*ChangePasswordResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method not implemented") +func (s MobilityAccountsServerImpl) ChangePassword(ctx context.Context, req *ChangePasswordRequest) (*ChangePasswordResponse, error) { + err := s.handler.ChangePassword(req.Id, req.Password) + if err != nil { + return nil, err + } + return &ChangePasswordResponse{}, nil } func (MobilityAccountsServerImpl) mustEmbedUnimplementedMobilityAccountsServer() {} diff --git a/handlers/accounts.go b/handlers/accounts.go index 7538570..0853033 100644 --- a/handlers/accounts.go +++ b/handlers/accounts.go @@ -137,3 +137,23 @@ func (h MobilityAccountsHandler) GetAccountsBatch(accountIds []string) (accounts accounts, err = h.storage.DB.GetAccountsByIds(accountIds) return } + +func (h MobilityAccountsHandler) ChangePassword(accountid string, newpassword string) error { + account, err := h.storage.DB.GetAccount(accountid) + if err != nil { + return err + } + + hashedPassword, err := bcrypt.GenerateFromPassword([]byte(newpassword), bcrypt.DefaultCost) + if err != nil { + return err + } + account.Authentication.Local.Password = string(hashedPassword) + + if err = h.storage.DB.UpdateAccount(*account); err != nil { + fmt.Println(err) + return err + } + + return nil +} diff --git a/oidc-provider/templates/parcoursmob/auth.html b/oidc-provider/templates/parcoursmob/auth.html index 4779479..4f8000f 100644 --- a/oidc-provider/templates/parcoursmob/auth.html +++ b/oidc-provider/templates/parcoursmob/auth.html @@ -57,10 +57,12 @@ +

Mot de passe oubliƩ

+
- +