mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-14 11:58:02 +00:00
a0a82b59e1
* feat: user service v2 remove user * feat: user service v2 add user human * feat: user service v2 change user human * feat: user service v2 change user human unit tests * feat: user service v2 reactivate, deactivate, lock, unlock user * feat: user service v2 integration tests * fix: merge back origin/main * lint: linter corrections * fix: move permission check for isVerfied and password change * fix: add deprecated notices and other review comments * fix: consistent naming in proto * fix: errors package renaming * fix: remove / delete user renaming in integration test * fix: machine user status changes through user v2 api * fix: linting changes * fix: linting changes * fix: changes from review * fix: changes from review * fix: changes from review * fix: changes from review * fix: changes from review --------- Co-authored-by: Tim Möhlmann <tim+github@zitadel.com> Co-authored-by: Livio Spring <livio.a@gmail.com>
72 lines
2.7 KiB
Go
72 lines
2.7 KiB
Go
package user
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/zitadel/zitadel/internal/api/authz"
|
|
"github.com/zitadel/zitadel/internal/api/grpc/object/v2"
|
|
"github.com/zitadel/zitadel/internal/domain"
|
|
"github.com/zitadel/zitadel/internal/zerrors"
|
|
user "github.com/zitadel/zitadel/pkg/grpc/user/v2beta"
|
|
)
|
|
|
|
func (s *Server) PasswordReset(ctx context.Context, req *user.PasswordResetRequest) (_ *user.PasswordResetResponse, err error) {
|
|
var details *domain.ObjectDetails
|
|
var code *string
|
|
|
|
switch m := req.GetMedium().(type) {
|
|
case *user.PasswordResetRequest_SendLink:
|
|
details, code, err = s.command.RequestPasswordResetURLTemplate(ctx, req.GetUserId(), m.SendLink.GetUrlTemplate(), notificationTypeToDomain(m.SendLink.GetNotificationType()))
|
|
case *user.PasswordResetRequest_ReturnCode:
|
|
details, code, err = s.command.RequestPasswordResetReturnCode(ctx, req.GetUserId())
|
|
case nil:
|
|
details, code, err = s.command.RequestPasswordReset(ctx, req.GetUserId())
|
|
default:
|
|
err = zerrors.ThrowUnimplementedf(nil, "USERv2-SDeeg", "verification oneOf %T in method RequestPasswordReset not implemented", m)
|
|
}
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &user.PasswordResetResponse{
|
|
Details: object.DomainToDetailsPb(details),
|
|
VerificationCode: code,
|
|
}, nil
|
|
}
|
|
|
|
func notificationTypeToDomain(notificationType user.NotificationType) domain.NotificationType {
|
|
switch notificationType {
|
|
case user.NotificationType_NOTIFICATION_TYPE_Email:
|
|
return domain.NotificationTypeEmail
|
|
case user.NotificationType_NOTIFICATION_TYPE_SMS:
|
|
return domain.NotificationTypeSms
|
|
case user.NotificationType_NOTIFICATION_TYPE_Unspecified:
|
|
return domain.NotificationTypeEmail
|
|
default:
|
|
return domain.NotificationTypeEmail
|
|
}
|
|
}
|
|
|
|
func (s *Server) SetPassword(ctx context.Context, req *user.SetPasswordRequest) (_ *user.SetPasswordResponse, err error) {
|
|
var resourceOwner = authz.GetCtxData(ctx).OrgID
|
|
var details *domain.ObjectDetails
|
|
|
|
switch v := req.GetVerification().(type) {
|
|
case *user.SetPasswordRequest_CurrentPassword:
|
|
details, err = s.command.ChangePassword(ctx, resourceOwner, req.GetUserId(), v.CurrentPassword, req.GetNewPassword().GetPassword())
|
|
case *user.SetPasswordRequest_VerificationCode:
|
|
details, err = s.command.SetPasswordWithVerifyCode(ctx, resourceOwner, req.GetUserId(), v.VerificationCode, req.GetNewPassword().GetPassword())
|
|
case nil:
|
|
details, err = s.command.SetPassword(ctx, resourceOwner, req.GetUserId(), req.GetNewPassword().GetPassword(), req.GetNewPassword().GetChangeRequired())
|
|
default:
|
|
err = zerrors.ThrowUnimplementedf(nil, "USERv2-SFdf2", "verification oneOf %T in method SetPasswordRequest not implemented", v)
|
|
}
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &user.SetPasswordResponse{
|
|
Details: object.DomainToDetailsPb(details),
|
|
}, nil
|
|
}
|