Skip to content

Commit dce8d0a

Browse files
committed
Use rbac objects directly
1 parent acf214c commit dce8d0a

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1413,21 +1413,21 @@ func (s *MethodTestSuite) TestUser() {
14131413
s.Run("InsertGitSSHKey", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
14141414
u := testutil.Fake(s.T(), faker, database.User{})
14151415
arg := database.InsertGitSSHKeyParams{UserID: u.ID}
1416-
dbm.EXPECT().InsertGitSSHKey(gomock.Any(), arg).Return(database.GitSSHKey{}, nil).AnyTimes()
1416+
dbm.EXPECT().InsertGitSSHKey(gomock.Any(), arg).Return(database.GitSSHKey{UserID: u.ID}, nil).AnyTimes()
14171417
check.Args(arg).Asserts(u, policy.ActionUpdatePersonal)
14181418
}))
14191419
s.Run("UpdateGitSSHKey", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
14201420
key := testutil.Fake(s.T(), faker, database.GitSSHKey{})
14211421
arg := database.UpdateGitSSHKeyParams{UserID: key.UserID, UpdatedAt: key.UpdatedAt}
14221422
dbm.EXPECT().GetGitSSHKey(gomock.Any(), key.UserID).Return(key, nil).AnyTimes()
14231423
dbm.EXPECT().UpdateGitSSHKey(gomock.Any(), arg).Return(key, nil).AnyTimes()
1424-
check.Args(arg).Asserts(rbac.ResourceUserObject(key.UserID), policy.ActionUpdatePersonal).Returns(key)
1424+
check.Args(arg).Asserts(key, policy.ActionUpdatePersonal).Returns(key)
14251425
}))
14261426
s.Run("GetExternalAuthLink", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
14271427
link := testutil.Fake(s.T(), faker, database.ExternalAuthLink{})
14281428
arg := database.GetExternalAuthLinkParams{ProviderID: link.ProviderID, UserID: link.UserID}
14291429
dbm.EXPECT().GetExternalAuthLink(gomock.Any(), arg).Return(link, nil).AnyTimes()
1430-
check.Args(arg).Asserts(rbac.ResourceUserObject(link.UserID), policy.ActionReadPersonal).Returns(link)
1430+
check.Args(arg).Asserts(link, policy.ActionReadPersonal).Returns(link)
14311431
}))
14321432
s.Run("InsertExternalAuthLink", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
14331433
u := testutil.Fake(s.T(), faker, database.User{})
@@ -1440,21 +1440,21 @@ func (s *MethodTestSuite) TestUser() {
14401440
arg := database.UpdateExternalAuthLinkRefreshTokenParams{OAuthRefreshToken: "", OAuthRefreshTokenKeyID: "", ProviderID: link.ProviderID, UserID: link.UserID, UpdatedAt: link.UpdatedAt}
14411441
dbm.EXPECT().GetExternalAuthLink(gomock.Any(), database.GetExternalAuthLinkParams{ProviderID: link.ProviderID, UserID: link.UserID}).Return(link, nil).AnyTimes()
14421442
dbm.EXPECT().UpdateExternalAuthLinkRefreshToken(gomock.Any(), arg).Return(nil).AnyTimes()
1443-
check.Args(arg).Asserts(rbac.ResourceUserObject(link.UserID), policy.ActionUpdatePersonal)
1443+
check.Args(arg).Asserts(link, policy.ActionUpdatePersonal)
14441444
}))
14451445
s.Run("UpdateExternalAuthLink", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
14461446
link := testutil.Fake(s.T(), faker, database.ExternalAuthLink{})
14471447
arg := database.UpdateExternalAuthLinkParams{ProviderID: link.ProviderID, UserID: link.UserID, OAuthAccessToken: link.OAuthAccessToken, OAuthRefreshToken: link.OAuthRefreshToken, OAuthExpiry: link.OAuthExpiry, UpdatedAt: link.UpdatedAt}
14481448
dbm.EXPECT().GetExternalAuthLink(gomock.Any(), database.GetExternalAuthLinkParams{ProviderID: link.ProviderID, UserID: link.UserID}).Return(link, nil).AnyTimes()
14491449
dbm.EXPECT().UpdateExternalAuthLink(gomock.Any(), arg).Return(link, nil).AnyTimes()
1450-
check.Args(arg).Asserts(rbac.ResourceUserObject(link.UserID), policy.ActionUpdatePersonal).Returns(link)
1450+
check.Args(arg).Asserts(link, policy.ActionUpdatePersonal).Returns(link)
14511451
}))
14521452
s.Run("UpdateUserLink", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
14531453
link := testutil.Fake(s.T(), faker, database.UserLink{})
14541454
arg := database.UpdateUserLinkParams{OAuthAccessToken: link.OAuthAccessToken, OAuthRefreshToken: link.OAuthRefreshToken, OAuthExpiry: link.OAuthExpiry, UserID: link.UserID, LoginType: link.LoginType, Claims: database.UserLinkClaims{}}
14551455
dbm.EXPECT().GetUserLinkByUserIDLoginType(gomock.Any(), database.GetUserLinkByUserIDLoginTypeParams{UserID: link.UserID, LoginType: link.LoginType}).Return(link, nil).AnyTimes()
14561456
dbm.EXPECT().UpdateUserLink(gomock.Any(), arg).Return(link, nil).AnyTimes()
1457-
check.Args(arg).Asserts(rbac.ResourceUserObject(link.UserID), policy.ActionUpdatePersonal).Returns(link)
1457+
check.Args(arg).Asserts(link, policy.ActionUpdatePersonal).Returns(link)
14581458
}))
14591459
s.Run("UpdateUserRoles", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
14601460
u := testutil.Fake(s.T(), faker, database.User{RBACRoles: []string{codersdk.RoleTemplateAdmin}})
@@ -1525,6 +1525,7 @@ func (s *MethodTestSuite) TestUser() {
15251525
dbm.EXPECT().UpdateCustomRole(gomock.Any(), arg).Return(database.CustomRole{}, nil).AnyTimes()
15261526
check.Args(arg).Asserts(
15271527
rbac.ResourceAssignOrgRole.InOrg(orgID), policy.ActionUpdate,
1528+
// Escalation checks
15281529
rbac.ResourceTemplate.InOrg(orgID), policy.ActionCreate,
15291530
rbac.ResourceTemplate.InOrg(orgID), policy.ActionRead,
15301531
)
@@ -1562,6 +1563,7 @@ func (s *MethodTestSuite) TestUser() {
15621563
dbm.EXPECT().InsertCustomRole(gomock.Any(), arg).Return(database.CustomRole{}, nil).AnyTimes()
15631564
check.Args(arg).Asserts(
15641565
rbac.ResourceAssignOrgRole.InOrg(orgID), policy.ActionCreate,
1566+
// Escalation checks
15651567
rbac.ResourceTemplate.InOrg(orgID), policy.ActionCreate,
15661568
rbac.ResourceTemplate.InOrg(orgID), policy.ActionRead,
15671569
)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy