mirror of
https://github.com/zitadel/zitadel.git
synced 2025-07-01 14:28:32 +00:00
fix(api): correct mapping of user state queries (#9956)
# Which Problems Are Solved the mapping of `ListUsers` was wrong for user states. # How the Problems Are Solved mapping of user state introduced to correctly map it # Additional Changes mapping of user type introduced to prevent same issue # Additional Context Requires backport to 2.x and 3.x Co-authored-by: Livio Spring <livio.a@gmail.com> (cherry picked from commit eb0eed21fa682774e476d0c720c501b37f0f7793)
This commit is contained in:
parent
3c99cf82f8
commit
c9a0f0bc45
@ -84,11 +84,11 @@ func EmailQueryToQuery(q *user_pb.EmailQuery) (query.SearchQuery, error) {
|
||||
}
|
||||
|
||||
func StateQueryToQuery(q *user_pb.StateQuery) (query.SearchQuery, error) {
|
||||
return query.NewUserStateSearchQuery(int32(q.State))
|
||||
return query.NewUserStateSearchQuery(q.State.ToDomain())
|
||||
}
|
||||
|
||||
func TypeQueryToQuery(q *user_pb.TypeQuery) (query.SearchQuery, error) {
|
||||
return query.NewUserTypeSearchQuery(int32(q.Type))
|
||||
return query.NewUserTypeSearchQuery(q.Type.ToDomain())
|
||||
}
|
||||
|
||||
func LoginNameQueryToQuery(q *user_pb.LoginNameQuery) (query.SearchQuery, error) {
|
||||
|
@ -301,11 +301,11 @@ func phoneQueryToQuery(q *user.PhoneQuery) (query.SearchQuery, error) {
|
||||
}
|
||||
|
||||
func stateQueryToQuery(q *user.StateQuery) (query.SearchQuery, error) {
|
||||
return query.NewUserStateSearchQuery(int32(q.State))
|
||||
return query.NewUserStateSearchQuery(q.State.ToDomain())
|
||||
}
|
||||
|
||||
func typeQueryToQuery(q *user.TypeQuery) (query.SearchQuery, error) {
|
||||
return query.NewUserTypeSearchQuery(int32(q.Type))
|
||||
return query.NewUserTypeSearchQuery(q.Type.ToDomain())
|
||||
}
|
||||
|
||||
func loginNameQueryToQuery(q *user.LoginNameQuery) (query.SearchQuery, error) {
|
||||
|
@ -295,11 +295,11 @@ func phoneQueryToQuery(q *user.PhoneQuery) (query.SearchQuery, error) {
|
||||
}
|
||||
|
||||
func stateQueryToQuery(q *user.StateQuery) (query.SearchQuery, error) {
|
||||
return query.NewUserStateSearchQuery(int32(q.State))
|
||||
return query.NewUserStateSearchQuery(q.State.ToDomain())
|
||||
}
|
||||
|
||||
func typeQueryToQuery(q *user.TypeQuery) (query.SearchQuery, error) {
|
||||
return query.NewUserTypeSearchQuery(int32(q.Type))
|
||||
return query.NewUserTypeSearchQuery(q.Type.ToDomain())
|
||||
}
|
||||
|
||||
func loginNameQueryToQuery(q *user.LoginNameQuery) (query.SearchQuery, error) {
|
||||
|
@ -70,7 +70,7 @@ func (h *UsersHandler) buildListQuery(ctx context.Context, request *ListRequest)
|
||||
}
|
||||
|
||||
// the zitadel scim implementation only supports humans for now
|
||||
userTypeQuery, err := query.NewUserTypeSearchQuery(int32(domain.UserTypeHuman))
|
||||
userTypeQuery, err := query.NewUserTypeSearchQuery(domain.UserTypeHuman)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -768,11 +768,11 @@ func NewUserVerifiedPhoneSearchQuery(value string, comparison TextComparison) (S
|
||||
return NewTextQuery(NotifyVerifiedPhoneCol, value, comparison)
|
||||
}
|
||||
|
||||
func NewUserStateSearchQuery(value int32) (SearchQuery, error) {
|
||||
func NewUserStateSearchQuery(value domain.UserState) (SearchQuery, error) {
|
||||
return NewNumberQuery(UserStateCol, value, NumberEquals)
|
||||
}
|
||||
|
||||
func NewUserTypeSearchQuery(value int32) (SearchQuery, error) {
|
||||
func NewUserTypeSearchQuery(value domain.UserType) (SearchQuery, error) {
|
||||
return NewNumberQuery(UserTypeCol, value, NumberEquals)
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package user
|
||||
|
||||
import "github.com/zitadel/zitadel/internal/domain"
|
||||
|
||||
type SearchQuery_ResourceOwner struct {
|
||||
ResourceOwner *ResourceOwnerQuery
|
||||
}
|
||||
@ -13,3 +15,37 @@ type ResourceOwnerQuery struct {
|
||||
type UserType = isUser_Type
|
||||
|
||||
type MembershipType = isMembership_Type
|
||||
|
||||
func (s UserState) ToDomain() domain.UserState {
|
||||
switch s {
|
||||
case UserState_USER_STATE_UNSPECIFIED:
|
||||
return domain.UserStateUnspecified
|
||||
case UserState_USER_STATE_ACTIVE:
|
||||
return domain.UserStateActive
|
||||
case UserState_USER_STATE_INACTIVE:
|
||||
return domain.UserStateInactive
|
||||
case UserState_USER_STATE_DELETED:
|
||||
return domain.UserStateDeleted
|
||||
case UserState_USER_STATE_LOCKED:
|
||||
return domain.UserStateLocked
|
||||
case UserState_USER_STATE_SUSPEND:
|
||||
return domain.UserStateSuspend
|
||||
case UserState_USER_STATE_INITIAL:
|
||||
return domain.UserStateInitial
|
||||
default:
|
||||
return domain.UserStateUnspecified
|
||||
}
|
||||
}
|
||||
|
||||
func (t Type) ToDomain() domain.UserType {
|
||||
switch t {
|
||||
case Type_TYPE_UNSPECIFIED:
|
||||
return domain.UserTypeUnspecified
|
||||
case Type_TYPE_HUMAN:
|
||||
return domain.UserTypeHuman
|
||||
case Type_TYPE_MACHINE:
|
||||
return domain.UserTypeMachine
|
||||
default:
|
||||
return domain.UserTypeUnspecified
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,37 @@
|
||||
package user
|
||||
|
||||
import "github.com/zitadel/zitadel/internal/domain"
|
||||
|
||||
type UserType = isUser_Type
|
||||
|
||||
func (s UserState) ToDomain() domain.UserState {
|
||||
switch s {
|
||||
case UserState_USER_STATE_UNSPECIFIED:
|
||||
return domain.UserStateUnspecified
|
||||
case UserState_USER_STATE_ACTIVE:
|
||||
return domain.UserStateActive
|
||||
case UserState_USER_STATE_INACTIVE:
|
||||
return domain.UserStateInactive
|
||||
case UserState_USER_STATE_DELETED:
|
||||
return domain.UserStateDeleted
|
||||
case UserState_USER_STATE_LOCKED:
|
||||
return domain.UserStateLocked
|
||||
case UserState_USER_STATE_INITIAL:
|
||||
return domain.UserStateInitial
|
||||
default:
|
||||
return domain.UserStateUnspecified
|
||||
}
|
||||
}
|
||||
|
||||
func (t Type) ToDomain() domain.UserType {
|
||||
switch t {
|
||||
case Type_TYPE_UNSPECIFIED:
|
||||
return domain.UserTypeUnspecified
|
||||
case Type_TYPE_HUMAN:
|
||||
return domain.UserTypeHuman
|
||||
case Type_TYPE_MACHINE:
|
||||
return domain.UserTypeMachine
|
||||
default:
|
||||
return domain.UserTypeUnspecified
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,37 @@
|
||||
package user
|
||||
|
||||
import "github.com/zitadel/zitadel/internal/domain"
|
||||
|
||||
type UserType = isUser_Type
|
||||
|
||||
func (s UserState) ToDomain() domain.UserState {
|
||||
switch s {
|
||||
case UserState_USER_STATE_UNSPECIFIED:
|
||||
return domain.UserStateUnspecified
|
||||
case UserState_USER_STATE_ACTIVE:
|
||||
return domain.UserStateActive
|
||||
case UserState_USER_STATE_INACTIVE:
|
||||
return domain.UserStateInactive
|
||||
case UserState_USER_STATE_DELETED:
|
||||
return domain.UserStateDeleted
|
||||
case UserState_USER_STATE_LOCKED:
|
||||
return domain.UserStateLocked
|
||||
case UserState_USER_STATE_INITIAL:
|
||||
return domain.UserStateInitial
|
||||
default:
|
||||
return domain.UserStateUnspecified
|
||||
}
|
||||
}
|
||||
|
||||
func (t Type) ToDomain() domain.UserType {
|
||||
switch t {
|
||||
case Type_TYPE_UNSPECIFIED:
|
||||
return domain.UserTypeUnspecified
|
||||
case Type_TYPE_HUMAN:
|
||||
return domain.UserTypeHuman
|
||||
case Type_TYPE_MACHINE:
|
||||
return domain.UserTypeMachine
|
||||
default:
|
||||
return domain.UserTypeUnspecified
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user