mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
chore: implement OIDCClaimFieldValues for idp sync mappings auto complete (#15576)
When creating IDP sync mappings, these are the values that can be selected from. These are the values that can be mapped from in org/group/role sync.
This commit is contained in:
@@ -3283,6 +3283,17 @@ func (q *querier) ListWorkspaceAgentPortShares(ctx context.Context, workspaceID
|
||||
return q.db.ListWorkspaceAgentPortShares(ctx, workspaceID)
|
||||
}
|
||||
|
||||
func (q *querier) OIDCClaimFieldValues(ctx context.Context, args database.OIDCClaimFieldValuesParams) ([]string, error) {
|
||||
resource := rbac.ResourceIdpsyncSettings
|
||||
if args.OrganizationID != uuid.Nil {
|
||||
resource = resource.InOrg(args.OrganizationID)
|
||||
}
|
||||
if err := q.authorizeContext(ctx, policy.ActionRead, resource); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return q.db.OIDCClaimFieldValues(ctx, args)
|
||||
}
|
||||
|
||||
func (q *querier) OIDCClaimFields(ctx context.Context, organizationID uuid.UUID) ([]string, error) {
|
||||
resource := rbac.ResourceIdpsyncSettings
|
||||
if organizationID != uuid.Nil {
|
||||
|
||||
@@ -633,6 +633,19 @@ func (s *MethodTestSuite) TestOrganization() {
|
||||
id := uuid.New()
|
||||
check.Args(id).Asserts(rbac.ResourceIdpsyncSettings.InOrg(id), policy.ActionRead).Returns([]string{})
|
||||
}))
|
||||
s.Run("Deployment/OIDCClaimFieldValues", s.Subtest(func(db database.Store, check *expects) {
|
||||
check.Args(database.OIDCClaimFieldValuesParams{
|
||||
ClaimField: "claim-field",
|
||||
OrganizationID: uuid.Nil,
|
||||
}).Asserts(rbac.ResourceIdpsyncSettings, policy.ActionRead).Returns([]string{})
|
||||
}))
|
||||
s.Run("Organization/OIDCClaimFieldValues", s.Subtest(func(db database.Store, check *expects) {
|
||||
id := uuid.New()
|
||||
check.Args(database.OIDCClaimFieldValuesParams{
|
||||
ClaimField: "claim-field",
|
||||
OrganizationID: id,
|
||||
}).Asserts(rbac.ResourceIdpsyncSettings.InOrg(id), policy.ActionRead).Returns([]string{})
|
||||
}))
|
||||
s.Run("ByOrganization/GetGroups", s.Subtest(func(db database.Store, check *expects) {
|
||||
o := dbgen.Organization(s.T(), db, database.Organization{})
|
||||
a := dbgen.Group(s.T(), db, database.Group{OrganizationID: o.ID})
|
||||
|
||||
Reference in New Issue
Block a user