UserService
UserService
Contains methods relating to User entities.
class UserService {
constructor(connection: TransactionalConnection, configService: ConfigService, roleService: RoleService, passwordCipher: PasswordCipher, verificationTokenGenerator: VerificationTokenGenerator, moduleRef: ModuleRef)
getUserById(ctx: RequestContext, userId: ID) => Promise<User | undefined>;
getUserByEmailAddress(ctx: RequestContext, emailAddress: string, userType?: 'administrator' | 'customer') => Promise<User | undefined>;
createCustomerUser(ctx: RequestContext, identifier: string, password?: string) => Promise<User | PasswordValidationError>;
addNativeAuthenticationMethod(ctx: RequestContext, user: User, identifier: string, password?: string) => Promise<User | PasswordValidationError>;
createAdminUser(ctx: RequestContext, identifier: string, password: string) => Promise<User>;
softDelete(ctx: RequestContext, userId: ID) => ;
setVerificationToken(ctx: RequestContext, user: User) => Promise<User>;
verifyUserByToken(ctx: RequestContext, verificationToken: string, password?: string) => Promise<ErrorResultUnion<VerifyCustomerAccountResult, User>>;
setPasswordResetToken(ctx: RequestContext, emailAddress: string) => Promise<User | undefined>;
resetPasswordByToken(ctx: RequestContext, passwordResetToken: string, password: string) => Promise<
User | PasswordResetTokenExpiredError | PasswordResetTokenInvalidError | PasswordValidationError
>;
changeUserAndNativeIdentifier(ctx: RequestContext, userId: ID, newIdentifier: string) => ;
setIdentifierChangeToken(ctx: RequestContext, user: User) => Promise<User>;
changeIdentifierByToken(ctx: RequestContext, token: string) => Promise<
| { user: User; oldIdentifier: string }
| IdentifierChangeTokenInvalidError
| IdentifierChangeTokenExpiredError
>;
updatePassword(ctx: RequestContext, userId: ID, currentPassword: string, newPassword: string) => Promise<boolean | InvalidCredentialsError | PasswordValidationError>;
}
constructor
(connection: TransactionalConnection, configService: ConfigService, roleService: RoleService, passwordCipher: PasswordCipher, verificationTokenGenerator: VerificationTokenGenerator, moduleRef: ModuleRef) => UserService
getUserById
(ctx: RequestContext, userId: ID) => Promise<User | undefined>
getUserByEmailAddress
(ctx: RequestContext, emailAddress: string, userType?: 'administrator' | 'customer') => Promise<User | undefined>
createCustomerUser
(ctx: RequestContext, identifier: string, password?: string) => Promise<User | PasswordValidationError>
Creates a new User with the special customer
Role and using the NativeAuthenticationStrategy.
addNativeAuthenticationMethod
(ctx: RequestContext, user: User, identifier: string, password?: string) => Promise<User | PasswordValidationError>
Adds a new NativeAuthenticationMethod to the User. If the AuthOptions requireVerification
is set to true
(as is the default), the User will be marked as unverified until the email verification
flow is completed.
createAdminUser
(ctx: RequestContext, identifier: string, password: string) => Promise<User>
Creates a new verified User using the NativeAuthenticationStrategy.
softDelete
(ctx: RequestContext, userId: ID) =>
setVerificationToken
(ctx: RequestContext, user: User) => Promise<User>
Sets the NativeAuthenticationMethod verificationToken
as part of the User email verification
flow.
verifyUserByToken
(ctx: RequestContext, verificationToken: string, password?: string) => Promise<ErrorResultUnion<VerifyCustomerAccountResult, User>>
Verifies a verificationToken by looking for a User which has previously had it set using the
setVerificationToken()
method, and checks that the token is valid and has not expired.
If valid, the User will be set to verified: true
.
setPasswordResetToken
(ctx: RequestContext, emailAddress: string) => Promise<User | undefined>
Sets the NativeAuthenticationMethod passwordResetToken
as part of the User password reset
flow.
resetPasswordByToken
(ctx: RequestContext, passwordResetToken: string, password: string) => Promise<
User | PasswordResetTokenExpiredError | PasswordResetTokenInvalidError | PasswordValidationError
>
Verifies a passwordResetToken by looking for a User which has previously had it set using the
setPasswordResetToken()
method, and checks that the token is valid and has not expired.
If valid, the User's credentials will be updated with the new password.
changeUserAndNativeIdentifier
(ctx: RequestContext, userId: ID, newIdentifier: string) =>
Changes the User identifier without an email verification step, so this should be only used when an Administrator is setting a new email address.
setIdentifierChangeToken
(ctx: RequestContext, user: User) => Promise<User>
Sets the NativeAuthenticationMethod identifierChangeToken
as part of the User email address change
flow.
changeIdentifierByToken
(ctx: RequestContext, token: string) => Promise<
| { user: User; oldIdentifier: string }
| IdentifierChangeTokenInvalidError
| IdentifierChangeTokenExpiredError
>
Changes the User identifier as part of the storefront flow used by Customers to set a
new email address, with the token previously set using the setIdentifierChangeToken()
method.
updatePassword
(ctx: RequestContext, userId: ID, currentPassword: string, newPassword: string) => Promise<boolean | InvalidCredentialsError | PasswordValidationError>
Updates the password for a User with the NativeAuthenticationMethod.