mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 00:17:32 +00:00
feat: member queries (#2796)
* 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
This commit is contained in:
@@ -23,7 +23,6 @@ type Membership struct {
|
||||
ChangeDate time.Time
|
||||
Sequence uint64
|
||||
ResourceOwner string
|
||||
DisplayName string
|
||||
|
||||
Org *OrgMembership
|
||||
IAM *IAMMembership
|
||||
@@ -33,19 +32,23 @@ type Membership struct {
|
||||
|
||||
type OrgMembership struct {
|
||||
OrgID string
|
||||
Name string
|
||||
}
|
||||
|
||||
type IAMMembership struct {
|
||||
IAMID string
|
||||
Name string
|
||||
}
|
||||
|
||||
type ProjectMembership struct {
|
||||
ProjectID string
|
||||
Name string
|
||||
}
|
||||
|
||||
type ProjectGrantMembership struct {
|
||||
ProjectID string
|
||||
GrantID string
|
||||
ProjectID string
|
||||
ProjectName string
|
||||
GrantID string
|
||||
}
|
||||
|
||||
type MembershipSearchQuery struct {
|
||||
@@ -177,12 +180,12 @@ func prepareMembershipsQuery() (sq.SelectBuilder, func(*sql.Rows) (*Memberships,
|
||||
membershipIAMID.identifier(),
|
||||
membershipProjectID.identifier(),
|
||||
membershipGrantID.identifier(),
|
||||
HumanDisplayNameCol.identifier(),
|
||||
MachineNameCol.identifier(),
|
||||
ProjectColumnName.identifier(),
|
||||
OrgColumnName.identifier(),
|
||||
countColumn.identifier(),
|
||||
).From(membershipFrom).
|
||||
LeftJoin(join(HumanUserIDCol, membershipUserID)).
|
||||
LeftJoin(join(MachineUserIDCol, membershipUserID)).
|
||||
LeftJoin(join(ProjectColumnID, membershipProjectID)).
|
||||
LeftJoin(join(OrgColumnID, membershipOrgID)).
|
||||
PlaceholderFormat(sq.Dollar),
|
||||
func(rows *sql.Rows) (*Memberships, error) {
|
||||
memberships := make([]*Membership, 0)
|
||||
@@ -196,8 +199,8 @@ func prepareMembershipsQuery() (sq.SelectBuilder, func(*sql.Rows) (*Memberships,
|
||||
projectID = sql.NullString{}
|
||||
grantID = sql.NullString{}
|
||||
roles = pq.StringArray{}
|
||||
displayName = sql.NullString{}
|
||||
machineName = sql.NullString{}
|
||||
projectName = sql.NullString{}
|
||||
orgName = sql.NullString{}
|
||||
)
|
||||
|
||||
err := rows.Scan(
|
||||
@@ -211,8 +214,8 @@ func prepareMembershipsQuery() (sq.SelectBuilder, func(*sql.Rows) (*Memberships,
|
||||
&iamID,
|
||||
&projectID,
|
||||
&grantID,
|
||||
&displayName,
|
||||
&machineName,
|
||||
&projectName,
|
||||
&orgName,
|
||||
&count,
|
||||
)
|
||||
|
||||
@@ -222,28 +225,26 @@ func prepareMembershipsQuery() (sq.SelectBuilder, func(*sql.Rows) (*Memberships,
|
||||
|
||||
membership.Roles = roles
|
||||
|
||||
if displayName.Valid {
|
||||
membership.DisplayName = displayName.String
|
||||
} else if machineName.Valid {
|
||||
membership.DisplayName = machineName.String
|
||||
}
|
||||
|
||||
if orgID.Valid {
|
||||
membership.Org = &OrgMembership{
|
||||
OrgID: orgID.String,
|
||||
Name: orgName.String,
|
||||
}
|
||||
} else if iamID.Valid {
|
||||
membership.IAM = &IAMMembership{
|
||||
IAMID: iamID.String,
|
||||
Name: iamID.String,
|
||||
}
|
||||
} else if projectID.Valid && grantID.Valid {
|
||||
membership.ProjectGrant = &ProjectGrantMembership{
|
||||
ProjectID: projectID.String,
|
||||
GrantID: grantID.String,
|
||||
ProjectID: projectID.String,
|
||||
ProjectName: projectName.String,
|
||||
GrantID: grantID.String,
|
||||
}
|
||||
} else if projectID.Valid {
|
||||
membership.Project = &ProjectMembership{
|
||||
ProjectID: projectID.String,
|
||||
Name: projectName.String,
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user