6abe99efd6
* initial passwordless client * passwordless login page * Working basic e2e flow * Add todo comments * Improve the passwordless login flow * improved passwordless login, backend for passwordless signup * add expiration to emails * update email templates & render username & name fields on signup * improve email templates * change login page text while awaiting passwordless code * fix merge conflicts * use claims.TypeUser * add initial passwordless tests * better error messages * simplified error name * remove completed TODOs * linting & minor test improvements & rename passwordless routes * more linting fixes * move code generation to its own func, use locationService to get query params * fix ampersand in email templates & use passwordless api routes in LoginCtrl * txt emails more closely match html email copy * move passwordless auth behind experimental feature toggle * fix PasswordlessLogin property failing typecheck * make update-workspace * user correct placeholder * Update emails/templates/passwordless_verify_existing_user.txt Co-authored-by: Dan Cech <dcech@grafana.com> * Update emails/templates/passwordless_verify_existing_user.mjml Co-authored-by: Dan Cech <dcech@grafana.com> * Update emails/templates/passwordless_verify_new_user.txt Co-authored-by: Dan Cech <dcech@grafana.com> * Update emails/templates/passwordless_verify_new_user.txt Co-authored-by: Dan Cech <dcech@grafana.com> * Update emails/templates/passwordless_verify_new_user.mjml Co-authored-by: Dan Cech <dcech@grafana.com> * use & in email templates * Update emails/templates/passwordless_verify_existing_user.txt Co-authored-by: Dan Cech <dcech@grafana.com> * remove IP address validation * struct for passwordless settings * revert go.work.sum changes * mock locationService.getSearch in failing test --------- Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com> Co-authored-by: Dan Cech <dcech@grafana.com>
62 lines
2.3 KiB
Go
62 lines
2.3 KiB
Go
package tempusertest
|
|
|
|
import (
|
|
"context"
|
|
|
|
tempuser "github.com/grafana/grafana/pkg/services/temp_user"
|
|
)
|
|
|
|
var _ tempuser.Service = (*FakeTempUserService)(nil)
|
|
|
|
type FakeTempUserService struct {
|
|
tempuser.Service
|
|
GetTempUserByCodeFN func(ctx context.Context, query *tempuser.GetTempUserByCodeQuery) (*tempuser.TempUserDTO, error)
|
|
GetTempUsersQueryFN func(ctx context.Context, query *tempuser.GetTempUsersQuery) ([]*tempuser.TempUserDTO, error)
|
|
UpdateTempUserStatusFN func(ctx context.Context, cmd *tempuser.UpdateTempUserStatusCommand) error
|
|
CreateTempUserFN func(ctx context.Context, cmd *tempuser.CreateTempUserCommand) (*tempuser.TempUser, error)
|
|
ExpirePreviousVerificationsFN func(ctx context.Context, cmd *tempuser.ExpirePreviousVerificationsCommand) error
|
|
UpdateTempUserWithEmailSentFN func(ctx context.Context, cmd *tempuser.UpdateTempUserWithEmailSentCommand) error
|
|
}
|
|
|
|
func (f *FakeTempUserService) GetTempUserByCode(ctx context.Context, query *tempuser.GetTempUserByCodeQuery) (*tempuser.TempUserDTO, error) {
|
|
if f.GetTempUserByCodeFN != nil {
|
|
return f.GetTempUserByCodeFN(ctx, query)
|
|
}
|
|
return nil, nil
|
|
}
|
|
|
|
func (f *FakeTempUserService) GetTempUsersQuery(ctx context.Context, query *tempuser.GetTempUsersQuery) ([]*tempuser.TempUserDTO, error) {
|
|
if f.GetTempUsersQueryFN != nil {
|
|
return f.GetTempUsersQueryFN(ctx, query)
|
|
}
|
|
return nil, nil
|
|
}
|
|
|
|
func (f *FakeTempUserService) UpdateTempUserStatus(ctx context.Context, cmd *tempuser.UpdateTempUserStatusCommand) error {
|
|
if f.UpdateTempUserStatusFN != nil {
|
|
return f.UpdateTempUserStatusFN(ctx, cmd)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (f *FakeTempUserService) CreateTempUser(ctx context.Context, cmd *tempuser.CreateTempUserCommand) (*tempuser.TempUser, error) {
|
|
if f.CreateTempUserFN != nil {
|
|
return f.CreateTempUserFN(ctx, cmd)
|
|
}
|
|
return nil, nil
|
|
}
|
|
|
|
func (f *FakeTempUserService) ExpirePreviousVerifications(ctx context.Context, cmd *tempuser.ExpirePreviousVerificationsCommand) error {
|
|
if f.ExpirePreviousVerificationsFN != nil {
|
|
return f.ExpirePreviousVerificationsFN(ctx, cmd)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (f *FakeTempUserService) UpdateTempUserWithEmailSent(ctx context.Context, cmd *tempuser.UpdateTempUserWithEmailSentCommand) error {
|
|
if f.UpdateTempUserWithEmailSentFN != nil {
|
|
return f.UpdateTempUserWithEmailSentFN(ctx, cmd)
|
|
}
|
|
return nil
|
|
}
|