mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-12 19:14:23 +00:00
d2ea9a1b8c
* refactor(domain): add user type * fix(projections): start with login names * fix(login_policy): correct handling of user domain claimed event * fix(projections): add members * refactor: simplify member projections * add migration for members * add metadata to member projections * refactor: login name projection * fix: set correct suffixes on login name projections * test(projections): login name reduces * fix: correct cols in reduce member * test(projections): org, iam, project members * member additional cols and conds as opt, add project grant members * fix(migration): members * fix(migration): correct database name * migration version * migs * better naming for member cond and col * split project and project grant members * prepare member columns * feat(queries): membership query * test(queries): membership prepare * fix(queries): multiple projections for latest sequence * fix(api): use query for membership queries in auth and management * feat: org member queries * fix(api): use query for iam member calls * fix(queries): org members * fix(queries): project members * fix(queries): project grant members * fix(query): member queries and user avatar column * member cols * fix(queries): membership stmt * fix user test * fix user test * fix(membership): correct display name * fix(projection): additional member manipulation events * additional member tests * fix(projections): additional events of idp links * fix: use query for memberships (#2797) * fix(api): use query for memberships * remove comment * handle err * refactor(projections): idp user link user aggregate type * fix(projections): handle old user events * fix(api): add asset prefix * no image for iam members
70 lines
2.2 KiB
Go
70 lines
2.2 KiB
Go
package member
|
|
|
|
import (
|
|
"github.com/caos/zitadel/internal/api/grpc/object"
|
|
"github.com/caos/zitadel/internal/domain"
|
|
"github.com/caos/zitadel/internal/errors"
|
|
"github.com/caos/zitadel/internal/query"
|
|
member_pb "github.com/caos/zitadel/pkg/grpc/member"
|
|
)
|
|
|
|
func MemberToDomain(member *member_pb.Member) *domain.Member {
|
|
return &domain.Member{
|
|
UserID: member.UserId,
|
|
Roles: member.Roles,
|
|
}
|
|
}
|
|
|
|
func MembersToPb(assetAPIPrefix string, members []*query.Member) []*member_pb.Member {
|
|
m := make([]*member_pb.Member, len(members))
|
|
for i, member := range members {
|
|
m[i] = MemberToPb(assetAPIPrefix, member)
|
|
}
|
|
return m
|
|
}
|
|
|
|
func MemberToPb(assetAPIPrefix string, m *query.Member) *member_pb.Member {
|
|
return &member_pb.Member{
|
|
UserId: m.UserID,
|
|
Roles: m.Roles,
|
|
PreferredLoginName: m.PreferredLoginName,
|
|
Email: m.Email,
|
|
FirstName: m.FirstName,
|
|
LastName: m.LastName,
|
|
DisplayName: m.DisplayName,
|
|
AvatarUrl: domain.AvatarURL(assetAPIPrefix, m.ResourceOwner, m.AvatarURL),
|
|
Details: object.ToViewDetailsPb(
|
|
m.Sequence,
|
|
m.CreationDate,
|
|
m.ChangeDate,
|
|
m.ResourceOwner,
|
|
),
|
|
}
|
|
}
|
|
|
|
func MemberQueriesToQuery(queries []*member_pb.SearchQuery) (q []query.SearchQuery, err error) {
|
|
q = make([]query.SearchQuery, len(queries))
|
|
for i, query := range queries {
|
|
q[i], err = MemberQueryToMember(query)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
return q, nil
|
|
}
|
|
|
|
func MemberQueryToMember(search *member_pb.SearchQuery) (query.SearchQuery, error) {
|
|
switch q := search.Query.(type) {
|
|
case *member_pb.SearchQuery_EmailQuery:
|
|
return query.NewMemberEmailSearchQuery(object.TextMethodToQuery(q.EmailQuery.Method), q.EmailQuery.Email)
|
|
case *member_pb.SearchQuery_FirstNameQuery:
|
|
return query.NewMemberFirstNameSearchQuery(object.TextMethodToQuery(q.FirstNameQuery.Method), q.FirstNameQuery.FirstName)
|
|
case *member_pb.SearchQuery_LastNameQuery:
|
|
return query.NewMemberLastNameSearchQuery(object.TextMethodToQuery(q.LastNameQuery.Method), q.LastNameQuery.LastName)
|
|
case *member_pb.SearchQuery_UserIdQuery:
|
|
return query.NewMemberUserIDSearchQuery(q.UserIdQuery.UserId)
|
|
default:
|
|
return nil, errors.ThrowInvalidArgument(nil, "MEMBE-7Bb92", "Errors.Query.InvalidRequest")
|
|
}
|
|
}
|