mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-12 02:54:20 +00:00
ed80a8bb1e
* feat(actions): begin api * feat(actions): begin api * api and projections * fix: handle multiple statements for a single event in projections * export func type * fix test * update to new reduce interface * flows in login * feat: jwt idp * feat: command side * feat: add tests * actions and flows * fill idp views with jwt idps and return apis * add jwtEndpoint to jwt idp * begin jwt request handling * add feature * merge * merge * handle jwt idp * cleanup * bug fixes * autoregister * get token from specific header name * fix: proto * fixes * i18n * begin tests * fix and log http proxy * remove docker cache * fixes * usergrants in actions api * tests adn cleanup * cleanup * fix add user grant * set login context * i18n Co-authored-by: fabi <fabienne.gerschwiler@gmail.com>
106 lines
2.5 KiB
Go
106 lines
2.5 KiB
Go
package actions
|
|
|
|
import (
|
|
"github.com/caos/zitadel/internal/domain"
|
|
"golang.org/x/text/language"
|
|
)
|
|
|
|
type API map[string]interface{}
|
|
|
|
func (a API) set(name string, value interface{}) {
|
|
map[string]interface{}(a)[name] = value
|
|
}
|
|
|
|
func (a *API) SetHuman(human *domain.Human) *API {
|
|
a.set("setFirstName", func(firstName string) {
|
|
human.FirstName = firstName
|
|
})
|
|
a.set("setLastName", func(lastName string) {
|
|
human.LastName = lastName
|
|
})
|
|
a.set("setNickName", func(nickName string) {
|
|
human.NickName = nickName
|
|
})
|
|
a.set("setDisplayName", func(displayName string) {
|
|
human.DisplayName = displayName
|
|
})
|
|
a.set("setPreferredLanguage", func(preferredLanguage string) {
|
|
human.PreferredLanguage = language.Make(preferredLanguage)
|
|
})
|
|
a.set("setGender", func(gender domain.Gender) {
|
|
human.Gender = gender
|
|
})
|
|
a.set("setUsername", func(username string) {
|
|
human.Username = username
|
|
})
|
|
a.set("setEmail", func(email string) {
|
|
if human.Email == nil {
|
|
human.Email = &domain.Email{}
|
|
}
|
|
human.Email.EmailAddress = email
|
|
})
|
|
a.set("setEmailVerified", func(verified bool) {
|
|
if human.Email == nil {
|
|
return
|
|
}
|
|
human.Email.IsEmailVerified = verified
|
|
})
|
|
a.set("setPhone", func(email string) {
|
|
if human.Phone == nil {
|
|
human.Phone = &domain.Phone{}
|
|
}
|
|
human.Phone.PhoneNumber = email
|
|
})
|
|
a.set("setPhoneVerified", func(verified bool) {
|
|
if human.Phone == nil {
|
|
return
|
|
}
|
|
human.Phone.IsPhoneVerified = verified
|
|
})
|
|
return a
|
|
}
|
|
|
|
func (a *API) SetExternalUser(user *domain.ExternalUser) *API {
|
|
a.set("setFirstName", func(firstName string) {
|
|
user.FirstName = firstName
|
|
})
|
|
a.set("setLastName", func(lastName string) {
|
|
user.LastName = lastName
|
|
})
|
|
a.set("setNickName", func(nickName string) {
|
|
user.NickName = nickName
|
|
})
|
|
a.set("setDisplayName", func(displayName string) {
|
|
user.DisplayName = displayName
|
|
})
|
|
a.set("setPreferredLanguage", func(preferredLanguage string) {
|
|
user.PreferredLanguage = language.Make(preferredLanguage)
|
|
})
|
|
a.set("setPreferredUsername", func(username string) {
|
|
user.PreferredUsername = username
|
|
})
|
|
a.set("setEmail", func(email string) {
|
|
user.Email = email
|
|
})
|
|
a.set("setEmailVerified", func(verified bool) {
|
|
user.IsEmailVerified = verified
|
|
})
|
|
a.set("setPhone", func(phone string) {
|
|
user.Phone = phone
|
|
})
|
|
a.set("setPhoneVerified", func(verified bool) {
|
|
user.IsPhoneVerified = verified
|
|
})
|
|
return a
|
|
}
|
|
|
|
func (a *API) SetMetadata(metadata *[]*domain.Metadata) *API {
|
|
a.set("metadata", metadata)
|
|
return a
|
|
}
|
|
|
|
func (a *API) SetUserGrants(usergrants *[]UserGrant) *API {
|
|
a.set("userGrants", usergrants)
|
|
return a
|
|
}
|