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

Function TestTemplateACL

enterprise/coderd/templates_test.go:872–1357  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

870}
871
872func TestTemplateACL(t *testing.T) {
873 t.Parallel()
874
875 t.Run("UserRoles", func(t *testing.T) {
876 t.Parallel()
877 client, user := coderdenttest.New(t, &coderdenttest.Options{LicenseOptions: &coderdenttest.LicenseOptions{
878 Features: license.Features{
879 codersdk.FeatureTemplateRBAC: 1,
880 },
881 }})
882 anotherClient, _ := coderdtest.CreateAnotherUser(t, client, user.OrganizationID, rbac.RoleTemplateAdmin())
883
884 _, user2 := coderdtest.CreateAnotherUser(t, client, user.OrganizationID)
885 _, user3 := coderdtest.CreateAnotherUser(t, client, user.OrganizationID)
886 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
887 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
888
889 ctx := testutil.Context(t, testutil.WaitLong)
890
891 err := anotherClient.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
892 UserPerms: map[string]codersdk.TemplateRole{
893 user2.ID.String(): codersdk.TemplateRoleUse,
894 user3.ID.String(): codersdk.TemplateRoleAdmin,
895 },
896 })
897 require.NoError(t, err)
898
899 acl, err := anotherClient.TemplateACL(ctx, template.ID)
900 require.NoError(t, err)
901
902 templateUser2 := codersdk.TemplateUser{
903 User: user2,
904 Role: codersdk.TemplateRoleUse,
905 }
906
907 templateUser3 := codersdk.TemplateUser{
908 User: user3,
909 Role: codersdk.TemplateRoleAdmin,
910 }
911
912 require.Len(t, acl.Users, 2)
913 require.Contains(t, acl.Users, templateUser2)
914 require.Contains(t, acl.Users, templateUser3)
915 })
916
917 t.Run("everyoneGroup", func(t *testing.T) {
918 t.Parallel()
919
920 client, user := coderdenttest.New(t, &coderdenttest.Options{LicenseOptions: &coderdenttest.LicenseOptions{
921 Features: license.Features{
922 codersdk.FeatureTemplateRBAC: 1,
923 },
924 }})
925
926 // Create a user to assert they aren't returned in the response.
927 anotherClient, _ := coderdtest.CreateAnotherUser(t, client, user.OrganizationID, rbac.RoleTemplateAdmin())
928 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
929 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleTemplateAdminFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
ContextFunction · 0.92
AsErrorFunction · 0.92
RefFunction · 0.92
RoleUserAdminFunction · 0.92
TarFunction · 0.92
CreateGroupFunction · 0.92
UpdateTemplateACLMethod · 0.80

Tested by

no test coverage detected