@@ -1025,6 +1025,53 @@ func TestTemplateACL(t *testing.T) {
1025
1025
require .Len (t , acl .Users , 0 , "deleted users should be filtered" )
1026
1026
})
1027
1027
1028
+ // Test that we do not filter dormant users.
1029
+ t .Run ("IncludeDormantUsers" , func (t * testing.T ) {
1030
+ t .Parallel ()
1031
+
1032
+ client , user := coderdenttest .New (t , & coderdenttest.Options {LicenseOptions : & coderdenttest.LicenseOptions {
1033
+ Features : license.Features {
1034
+ codersdk .FeatureTemplateRBAC : 1 ,
1035
+ },
1036
+ }})
1037
+ anotherClient , _ := coderdtest .CreateAnotherUser (t , client , user .OrganizationID , rbac .RoleTemplateAdmin (), rbac .RoleUserAdmin ())
1038
+
1039
+ ctx := testutil .Context (t , testutil .WaitLong )
1040
+
1041
+ // nolint:gocritic // Must use owner to create user.
1042
+ user1 , err := client .CreateUserWithOrgs (ctx , codersdk.CreateUserRequestWithOrgs {
1043
+ Email : "coder@coder.com" ,
1044
+ Username : "coder" ,
1045
+ Password : "SomeStrongPassword!" ,
1046
+ OrganizationIDs : []uuid.UUID {user .OrganizationID },
1047
+ })
1048
+ require .NoError (t , err )
1049
+ require .Equal (t , codersdk .UserStatusDormant , user1 .Status )
1050
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
1051
+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
1052
+
1053
+ err = anotherClient .UpdateTemplateACL (ctx , template .ID , codersdk.UpdateTemplateACL {
1054
+ UserPerms : map [string ]codersdk.TemplateRole {
1055
+ user1 .ID .String (): codersdk .TemplateRoleUse ,
1056
+ },
1057
+ })
1058
+ require .NoError (t , err )
1059
+
1060
+ acl , err := anotherClient .TemplateACL (ctx , template .ID )
1061
+ require .NoError (t , err )
1062
+ require .Contains (t , acl .Users , codersdk.TemplateUser {
1063
+ User : user1 ,
1064
+ Role : codersdk .TemplateRoleUse ,
1065
+ })
1066
+
1067
+ _ , err = anotherClient .UpdateUserStatus (ctx , user1 .ID .String (), codersdk .UserStatusSuspended )
1068
+ require .NoError (t , err )
1069
+
1070
+ acl , err = anotherClient .TemplateACL (ctx , template .ID )
1071
+ require .NoError (t , err )
1072
+ require .Len (t , acl .Users , 0 , "suspended users should be filtered" )
1073
+ })
1074
+
1028
1075
// Test that we do not return suspended users.
1029
1076
t .Run ("FilterSuspendedUsers" , func (t * testing.T ) {
1030
1077
t .Parallel ()
0 commit comments