mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 04:17:32 +00:00
fix: queries (#2548)
* fix(second_factors): correct query, rename method * fix(multi_factors): correct query, correct naming * fix(project_grant): add project_id to queries * fix: simplify project id query constructor
This commit is contained in:
@@ -118,7 +118,7 @@ func (q *Queries) DefaultLoginPolicy(ctx context.Context) (*LoginPolicy, error)
|
||||
return scan(row)
|
||||
}
|
||||
|
||||
func (q *Queries) SecondFactorsByID(ctx context.Context, orgID string) (*SecondFactors, error) {
|
||||
func (q *Queries) SecondFactorsByOrg(ctx context.Context, orgID string) (*SecondFactors, error) {
|
||||
query, scan := prepareLoginPolicy2FAsQuery()
|
||||
stmt, args, err := query.Where(
|
||||
sq.Or{
|
||||
@@ -136,7 +136,12 @@ func (q *Queries) SecondFactorsByID(ctx context.Context, orgID string) (*SecondF
|
||||
}
|
||||
|
||||
row := q.client.QueryRowContext(ctx, stmt, args...)
|
||||
return scan(row)
|
||||
factors, err := scan(row)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
factors.LatestSequence, err = q.latestSequence(ctx, loginPolicyTable)
|
||||
return factors, err
|
||||
}
|
||||
|
||||
func (q *Queries) DefaultSecondFactors(ctx context.Context) (*SecondFactors, error) {
|
||||
@@ -149,10 +154,15 @@ func (q *Queries) DefaultSecondFactors(ctx context.Context) (*SecondFactors, err
|
||||
}
|
||||
|
||||
row := q.client.QueryRowContext(ctx, stmt, args...)
|
||||
return scan(row)
|
||||
factors, err := scan(row)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
factors.LatestSequence, err = q.latestSequence(ctx, loginPolicyTable)
|
||||
return factors, err
|
||||
}
|
||||
|
||||
func (q *Queries) MultiFactorsByID(ctx context.Context, orgID string) (*MultiFactors, error) {
|
||||
func (q *Queries) MultiFactorsByOrg(ctx context.Context, orgID string) (*MultiFactors, error) {
|
||||
query, scan := prepareLoginPolicyMFAsQuery()
|
||||
stmt, args, err := query.Where(
|
||||
sq.Or{
|
||||
@@ -170,7 +180,12 @@ func (q *Queries) MultiFactorsByID(ctx context.Context, orgID string) (*MultiFac
|
||||
}
|
||||
|
||||
row := q.client.QueryRowContext(ctx, stmt, args...)
|
||||
return scan(row)
|
||||
factors, err := scan(row)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
factors.LatestSequence, err = q.latestSequence(ctx, loginPolicyTable)
|
||||
return factors, err
|
||||
}
|
||||
|
||||
func (q *Queries) DefaultMultiFactors(ctx context.Context) (*MultiFactors, error) {
|
||||
@@ -183,7 +198,12 @@ func (q *Queries) DefaultMultiFactors(ctx context.Context) (*MultiFactors, error
|
||||
}
|
||||
|
||||
row := q.client.QueryRowContext(ctx, stmt, args...)
|
||||
return scan(row)
|
||||
factors, err := scan(row)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
factors.LatestSequence, err = q.latestSequence(ctx, loginPolicyTable)
|
||||
return factors, err
|
||||
}
|
||||
|
||||
func prepareLoginPolicyQuery() (sq.SelectBuilder, func(*sql.Row) (*LoginPolicy, error)) {
|
||||
@@ -242,14 +262,12 @@ func prepareLoginPolicyQuery() (sq.SelectBuilder, func(*sql.Row) (*LoginPolicy,
|
||||
|
||||
func prepareLoginPolicy2FAsQuery() (sq.SelectBuilder, func(*sql.Row) (*SecondFactors, error)) {
|
||||
return sq.Select(
|
||||
LoginPolicyColumnSequence.identifier(),
|
||||
LoginPolicyColumnSecondFactors.identifier(),
|
||||
).From(loginPolicyTable.identifier()).PlaceholderFormat(sq.Dollar),
|
||||
func(row *sql.Row) (*SecondFactors, error) {
|
||||
p := new(SecondFactors)
|
||||
secondFactors := pq.Int32Array{}
|
||||
err := row.Scan(
|
||||
&p.Sequence,
|
||||
&secondFactors,
|
||||
)
|
||||
if err != nil {
|
||||
@@ -260,6 +278,7 @@ func prepareLoginPolicy2FAsQuery() (sq.SelectBuilder, func(*sql.Row) (*SecondFac
|
||||
}
|
||||
|
||||
p.Factors = make([]domain.SecondFactorType, len(secondFactors))
|
||||
p.Count = uint64(len(secondFactors))
|
||||
for i, mfa := range secondFactors {
|
||||
p.Factors[i] = domain.SecondFactorType(mfa)
|
||||
}
|
||||
@@ -269,14 +288,12 @@ func prepareLoginPolicy2FAsQuery() (sq.SelectBuilder, func(*sql.Row) (*SecondFac
|
||||
|
||||
func prepareLoginPolicyMFAsQuery() (sq.SelectBuilder, func(*sql.Row) (*MultiFactors, error)) {
|
||||
return sq.Select(
|
||||
LoginPolicyColumnSequence.identifier(),
|
||||
LoginPolicyColumnMultiFactors.identifier(),
|
||||
).From(loginPolicyTable.identifier()).PlaceholderFormat(sq.Dollar),
|
||||
func(row *sql.Row) (*MultiFactors, error) {
|
||||
p := new(MultiFactors)
|
||||
multiFactors := pq.Int32Array{}
|
||||
err := row.Scan(
|
||||
&p.Sequence,
|
||||
&multiFactors,
|
||||
)
|
||||
if err != nil {
|
||||
@@ -287,6 +304,7 @@ func prepareLoginPolicyMFAsQuery() (sq.SelectBuilder, func(*sql.Row) (*MultiFact
|
||||
}
|
||||
|
||||
p.Factors = make([]domain.MultiFactorType, len(multiFactors))
|
||||
p.Count = uint64(len(multiFactors))
|
||||
for i, mfa := range multiFactors {
|
||||
p.Factors[i] = domain.MultiFactorType(mfa)
|
||||
}
|
||||
|
@@ -156,7 +156,7 @@ func (q *Queries) SearchProjectGrantsByProjectIDAndRoleKey(ctx context.Context,
|
||||
SearchRequest: SearchRequest{},
|
||||
Queries: make([]SearchQuery, 2),
|
||||
}
|
||||
searchQuery.Queries[0], err = NewProjectGrantProjectIDSearchQuery(TextEquals, projectID)
|
||||
searchQuery.Queries[0], err = NewProjectGrantProjectIDSearchQuery(projectID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -167,8 +167,8 @@ func (q *Queries) SearchProjectGrantsByProjectIDAndRoleKey(ctx context.Context,
|
||||
return q.SearchProjectGrants(ctx, searchQuery)
|
||||
}
|
||||
|
||||
func NewProjectGrantProjectIDSearchQuery(method TextComparison, value string) (SearchQuery, error) {
|
||||
return NewTextQuery(ProjectGrantColumnProjectID, value, method)
|
||||
func NewProjectGrantProjectIDSearchQuery(value string) (SearchQuery, error) {
|
||||
return NewTextQuery(ProjectGrantColumnProjectID, value, TextEquals)
|
||||
}
|
||||
|
||||
func NewProjectGrantIDsSearchQuery(values []string) (SearchQuery, error) {
|
||||
@@ -194,32 +194,32 @@ func NewProjectGrantGrantedOrgIDSearchQuery(value string) (SearchQuery, error) {
|
||||
return NewTextQuery(ProjectGrantColumnGrantedOrgID, value, TextEquals)
|
||||
}
|
||||
|
||||
func (r *ProjectGrantSearchQueries) AppendMyResourceOwnerQuery(orgID string) error {
|
||||
func (q *ProjectGrantSearchQueries) AppendMyResourceOwnerQuery(orgID string) error {
|
||||
query, err := NewProjectGrantResourceOwnerSearchQuery(orgID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.Queries = append(r.Queries, query)
|
||||
q.Queries = append(q.Queries, query)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *ProjectGrantSearchQueries) AppendGrantedOrgQuery(orgID string) error {
|
||||
func (q *ProjectGrantSearchQueries) AppendGrantedOrgQuery(orgID string) error {
|
||||
query, err := NewProjectGrantGrantedOrgIDSearchQuery(orgID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.Queries = append(r.Queries, query)
|
||||
q.Queries = append(q.Queries, query)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r ProjectGrantSearchQueries) AppendPermissionQueries(permissions []string) error {
|
||||
func (q *ProjectGrantSearchQueries) AppendPermissionQueries(permissions []string) error {
|
||||
if !authz.HasGlobalPermission(permissions) {
|
||||
ids := authz.GetAllPermissionCtxIDs(permissions)
|
||||
query, err := NewProjectGrantIDsSearchQuery(ids)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
r.Queries = append(r.Queries, query)
|
||||
q.Queries = append(q.Queries, query)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user