mirror of
https://github.com/teamhanko/hanko.git
synced 2025-10-28 06:37:57 +08:00
This pull request introduces the new Flowpilot system along with several new features and various improvements. The key enhancements include configurable authorization, registration, and profile flows, as well as the ability to enable and disable user identifiers (e.g., email addresses and usernames) and login methods. --------- Co-authored-by: Frederic Jahn <frederic.jahn@hanko.io> Co-authored-by: Lennart Fleischmann <lennart.fleischmann@hanko.io> Co-authored-by: lfleischmann <67686424+lfleischmann@users.noreply.github.com> Co-authored-by: merlindru <hello@merlindru.com>
34 lines
777 B
Go
34 lines
777 B
Go
package shared
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gofrs/uuid"
|
|
"github.com/teamhanko/hanko/backend/dto"
|
|
"github.com/teamhanko/hanko/backend/flowpilot"
|
|
)
|
|
|
|
type GetUserData struct {
|
|
Action
|
|
}
|
|
|
|
func (h GetUserData) Execute(c flowpilot.HookExecutionContext) error {
|
|
deps := h.GetDeps(c)
|
|
|
|
userId, err := uuid.FromString(c.Stash().Get("user_id").String())
|
|
if err != nil {
|
|
return fmt.Errorf("failed to parse stashed user_id into a uuid: %w", err)
|
|
}
|
|
|
|
userModel, err := deps.Persister.GetUserPersisterWithConnection(deps.Tx).Get(userId)
|
|
if err != nil {
|
|
return fmt.Errorf("failed to get user from db: %w", err)
|
|
}
|
|
|
|
err = c.Payload().Set("user", dto.ProfileDataFromUserModel(userModel))
|
|
if err != nil {
|
|
return fmt.Errorf("failed to set user payload: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|