Skip to content

Commit 67a5137

Browse files
committed
users notified
1 parent 6bc1d2d commit 67a5137

File tree

2 files changed

+61
-7
lines changed

2 files changed

+61
-7
lines changed

coderd/users.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1295,7 +1295,7 @@ func (api *API) CreateUser(ctx context.Context, store database.Store, req Create
12951295
eg.Go(func() error {
12961296
var err error
12971297
userAdmins, err = api.Database.GetUsers(ctx, database.GetUsersParams{
1298-
RbacRole: []string{codersdk.RoleOrganizationUserAdmin},
1298+
RbacRole: []string{codersdk.RoleUserAdmin},
12991299
})
13001300
if err != nil {
13011301
return xerrors.Errorf("get user admins: %w", err)

coderd/users_test.go

+60-6
Original file line numberDiff line numberDiff line change
@@ -606,31 +606,85 @@ func TestNotifyCreatedUser(t *testing.T) {
606606
t.Parallel()
607607

608608
notifyEnq := &testutil.FakeNotificationsEnqueuer{}
609-
client := coderdtest.New(t, &coderdtest.Options{
609+
adminClient := coderdtest.New(t, &coderdtest.Options{
610610
NotificationsEnqueuer: notifyEnq,
611611
})
612-
firstUser := coderdtest.CreateFirstUser(t, client)
612+
firstUser := coderdtest.CreateFirstUser(t, adminClient)
613613

614614
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
615615
defer cancel()
616616

617-
user, err := client.CreateUser(ctx, codersdk.CreateUserRequest{
617+
user, err := adminClient.CreateUser(ctx, codersdk.CreateUserRequest{
618618
OrganizationID: firstUser.OrganizationID,
619619
Email: "another@user.org",
620620
Username: "someone-else",
621621
Password: "SomeSecurePassword!",
622622
})
623623
require.NoError(t, err)
624624

625-
require.Len(t, user.OrganizationIDs, 1)
626-
assert.Equal(t, firstUser.OrganizationID, user.OrganizationIDs[0])
627-
628625
require.Len(t, notifyEnq.Sent, 1)
629626
require.Equal(t, notifications.TemplateUserAccountCreated, notifyEnq.Sent[0].TemplateID)
630627
require.Equal(t, firstUser.UserID, notifyEnq.Sent[0].UserID)
631628
require.Contains(t, notifyEnq.Sent[0].Targets, user.ID)
632629
require.Equal(t, user.Username, notifyEnq.Sent[0].Labels["user_account_name"])
633630
})
631+
632+
t.Run("UserAdminNotified", func(t *testing.T) {
633+
t.Parallel()
634+
635+
notifyEnq := &testutil.FakeNotificationsEnqueuer{}
636+
adminClient := coderdtest.New(t, &coderdtest.Options{
637+
NotificationsEnqueuer: notifyEnq,
638+
})
639+
firstUser := coderdtest.CreateFirstUser(t, adminClient)
640+
641+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
642+
defer cancel()
643+
644+
userAdmin, err := adminClient.CreateUser(ctx, codersdk.CreateUserRequest{
645+
OrganizationID: firstUser.OrganizationID,
646+
Email: "user-admin@user.org",
647+
Username: "mr-user-admin",
648+
Password: "SomeSecurePassword!",
649+
})
650+
require.NoError(t, err)
651+
652+
_, err = adminClient.UpdateUserRoles(ctx, userAdmin.Username, codersdk.UpdateRoles{
653+
Roles: []string{
654+
rbac.RoleUserAdmin().String(),
655+
},
656+
})
657+
require.NoError(t, err)
658+
659+
member, err := adminClient.CreateUser(ctx, codersdk.CreateUserRequest{
660+
OrganizationID: firstUser.OrganizationID,
661+
Email: "another@user.org",
662+
Username: "someone-else",
663+
Password: "SomeSecurePassword!",
664+
})
665+
require.NoError(t, err)
666+
667+
require.Len(t, notifyEnq.Sent, 3)
668+
669+
// "User admin" account created, "owner" notified
670+
require.Equal(t, notifications.TemplateUserAccountCreated, notifyEnq.Sent[0].TemplateID)
671+
require.Equal(t, firstUser.UserID, notifyEnq.Sent[0].UserID)
672+
require.Contains(t, notifyEnq.Sent[0].Targets, userAdmin.ID)
673+
require.Equal(t, userAdmin.Username, notifyEnq.Sent[0].Labels["user_account_name"])
674+
675+
// "Member" account created, "owner" notified
676+
require.Equal(t, notifications.TemplateUserAccountCreated, notifyEnq.Sent[1].TemplateID)
677+
require.Equal(t, firstUser.UserID, notifyEnq.Sent[1].UserID)
678+
require.Contains(t, notifyEnq.Sent[1].Targets, member.ID)
679+
require.Equal(t, member.Username, notifyEnq.Sent[1].Labels["user_account_name"])
680+
681+
// "Member" account created, "user admin" notified
682+
require.Equal(t, notifications.TemplateUserAccountCreated, notifyEnq.Sent[1].TemplateID)
683+
require.Equal(t, userAdmin.ID, notifyEnq.Sent[2].UserID)
684+
require.Contains(t, notifyEnq.Sent[2].Targets, member.ID)
685+
require.Equal(t, member.Username, notifyEnq.Sent[2].Labels["user_account_name"])
686+
687+
})
634688
}
635689

636690
func TestUpdateUserProfile(t *testing.T) {

0 commit comments

Comments
 (0)