diff --git a/32-platform/sportsstore/admin/auth/user_store.go b/32-platform/sportsstore/admin/auth/user_store.go new file mode 100644 index 0000000..3bb84cb --- /dev/null +++ b/32-platform/sportsstore/admin/auth/user_store.go @@ -0,0 +1,36 @@ +package auth + +import ( + "platform/authorization/identity" + "platform/services" + "strings" +) + +func RegisterUserStoreService() { + err := services.AddSingleton(func() identity.UserStore { + return &userStore{} + }) + if err != nil { + panic(err) + } +} + +var users = map[int]identity.User{ + 1: identity.NewBasicUser(1, "Alice", "Administrator"), +} + +type userStore struct{} + +func (store *userStore) GetUserById(id int) (identity.User, bool) { + user, found := users[id] + return user, found +} + +func (store *userStore) GetUserByName(name string) (identity.User, bool) { + for _, user := range users { + if strings.EqualFold(user.GetDisplayName(), name) { + return user, true + } + } + return nil, false +}