mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 19:07:30 +00:00
feat: actions (#2377)
* 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>
This commit is contained in:
105
internal/actions/api.go
Normal file
105
internal/actions/api.go
Normal file
@@ -0,0 +1,105 @@
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user