MCPcopy Index your code
hub / github.com/coder/coder / TestCheckACLPermissions

Function TestCheckACLPermissions

enterprise/coderd/authorize_test.go:18–110  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

16)
17
18func TestCheckACLPermissions(t *testing.T) {
19 t.Parallel()
20
21 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
22 t.Cleanup(cancel)
23
24 adminClient, adminUser := coderdenttest.New(t, &coderdenttest.Options{
25 Options: &coderdtest.Options{
26 IncludeProvisionerDaemon: true,
27 },
28 LicenseOptions: &coderdenttest.LicenseOptions{
29 Features: license.Features{
30 codersdk.FeatureTemplateRBAC: 1,
31 },
32 },
33 })
34 // Create member and org adminClient
35 memberClient, _ := coderdtest.CreateAnotherUser(t, adminClient, adminUser.OrganizationID)
36 memberUser, err := memberClient.User(ctx, codersdk.Me)
37 require.NoError(t, err)
38 orgAdminClient, _ := coderdtest.CreateAnotherUser(t, adminClient, adminUser.OrganizationID, rbac.ScopedRoleOrgAdmin(adminUser.OrganizationID))
39 orgAdminUser, err := orgAdminClient.User(ctx, codersdk.Me)
40 require.NoError(t, err)
41
42 version := coderdtest.CreateTemplateVersion(t, adminClient, adminUser.OrganizationID, nil)
43 coderdtest.AwaitTemplateVersionJobCompleted(t, adminClient, version.ID)
44 template := coderdtest.CreateTemplate(t, adminClient, adminUser.OrganizationID, version.ID)
45
46 err = adminClient.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
47 UserPerms: map[string]codersdk.TemplateRole{
48 memberUser.ID.String(): codersdk.TemplateRoleAdmin,
49 },
50 })
51 require.NoError(t, err)
52
53 const (
54 updateSpecificTemplate = "read-specific-template"
55 )
56 params := map[string]codersdk.AuthorizationCheck{
57 updateSpecificTemplate: {
58 Object: codersdk.AuthorizationObject{
59 ResourceType: codersdk.ResourceTemplate,
60 ResourceID: template.ID.String(),
61 },
62 Action: codersdk.ActionUpdate,
63 },
64 }
65
66 testCases := []struct {
67 Name string
68 Client *codersdk.Client
69 UserID uuid.UUID
70 Check codersdk.AuthorizationResponse
71 }{
72 {
73 Name: "Admin",
74 Client: adminClient,
75 UserID: adminUser.UserID,

Callers

nothing calls this directly

Calls 13

NewFunction · 0.92
CreateAnotherUserFunction · 0.92
ScopedRoleOrgAdminFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
UpdateTemplateACLMethod · 0.80
AuthCheckMethod · 0.80
CleanupMethod · 0.65
UserMethod · 0.65
RunMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected