mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 03:37:34 +00:00
feat(queries): user membership (#2768)
* 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 * fix(query): member queries and user avatar column * member cols * fix(queries): membership stmt * fix user test * fix user test
This commit is contained in:
@@ -2,7 +2,120 @@ package query
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/caos/zitadel/internal/eventstore"
|
||||
"github.com/caos/zitadel/internal/query/projection"
|
||||
)
|
||||
|
||||
var (
|
||||
userTable = table{
|
||||
name: projection.UserTable,
|
||||
}
|
||||
UserIDCol = Column{
|
||||
name: projection.UserIDCol,
|
||||
table: userTable,
|
||||
}
|
||||
UserCreationDateCol = Column{
|
||||
name: projection.UserCreationDateCol,
|
||||
table: userTable,
|
||||
}
|
||||
UserChangeDateCol = Column{
|
||||
name: projection.UserChangeDateCol,
|
||||
table: userTable,
|
||||
}
|
||||
UserResourceOwnerCol = Column{
|
||||
name: projection.UserResourceOwnerCol,
|
||||
table: userTable,
|
||||
}
|
||||
UserStateCol = Column{
|
||||
name: projection.UserStateCol,
|
||||
table: userTable,
|
||||
}
|
||||
UserSequenceCol = Column{
|
||||
name: projection.UserSequenceCol,
|
||||
table: userTable,
|
||||
}
|
||||
UserUsernameCol = Column{
|
||||
name: projection.UserUsernameCol,
|
||||
table: userTable,
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
humanTable = table{
|
||||
name: projection.UserHumanTable,
|
||||
}
|
||||
// profile
|
||||
HumanUserIDCol = Column{
|
||||
name: projection.HumanUserIDCol,
|
||||
table: humanTable,
|
||||
}
|
||||
HumanFirstNameCol = Column{
|
||||
name: projection.HumanFirstNameCol,
|
||||
table: humanTable,
|
||||
}
|
||||
HumanLastNameCol = Column{
|
||||
name: projection.HumanLastNameCol,
|
||||
table: humanTable,
|
||||
}
|
||||
HumanNickNameCol = Column{
|
||||
name: projection.HumanNickNameCol,
|
||||
table: humanTable,
|
||||
}
|
||||
HumanDisplayNameCol = Column{
|
||||
name: projection.HumanDisplayNameCol,
|
||||
table: humanTable,
|
||||
}
|
||||
HumanPreferredLanguageCol = Column{
|
||||
name: projection.HumanPreferredLanguageCol,
|
||||
table: humanTable,
|
||||
}
|
||||
HumanGenderCol = Column{
|
||||
name: projection.HumanGenderCol,
|
||||
table: humanTable,
|
||||
}
|
||||
HumanAvaterURLCol = Column{
|
||||
name: projection.HumanAvaterURLCol,
|
||||
table: humanTable,
|
||||
}
|
||||
|
||||
// email
|
||||
HumanEmailCol = Column{
|
||||
name: projection.HumanEmailCol,
|
||||
table: humanTable,
|
||||
}
|
||||
HumanIsEmailVerifiedCol = Column{
|
||||
name: projection.HumanIsEmailVerifiedCol,
|
||||
table: humanTable,
|
||||
}
|
||||
|
||||
// phone
|
||||
HumanPhoneCol = Column{
|
||||
name: projection.HumanPhoneCol,
|
||||
table: humanTable,
|
||||
}
|
||||
HumanIsPhoneVerifiedCol = Column{
|
||||
name: projection.HumanIsPhoneVerifiedCol,
|
||||
table: humanTable,
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
machineTable = table{
|
||||
name: projection.UserMachineTable,
|
||||
}
|
||||
MachineUserIDCol = Column{
|
||||
name: projection.MachineUserIDCol,
|
||||
table: machineTable,
|
||||
}
|
||||
MachineNameCol = Column{
|
||||
name: projection.MachineNameCol,
|
||||
table: machineTable,
|
||||
}
|
||||
MachineDescriptionCol = Column{
|
||||
name: projection.MachineDescriptionCol,
|
||||
table: machineTable,
|
||||
}
|
||||
)
|
||||
|
||||
func (q *Queries) UserEvents(ctx context.Context, orgID, userID string, sequence uint64) ([]eventstore.EventReader, error) {
|
||||
|
Reference in New Issue
Block a user