fix: check user user is active in aibridge auth (#26173) (conflicts) … · coder/coder@5114fd4
@@ -102,16 +102,36 @@ func TestAuthorization(t *testing.T) {
102102name: "deleted user",
103103expectedErr: aibridgedserver.ErrDeletedUser,
104104mocksFn: func(db *dbmock.MockStore, apiKey database.APIKey, user database.User) {
105+user.Deleted = true
105106db.EXPECT().GetAPIKeyByID(gomock.Any(), apiKey.ID).Times(1).Return(apiKey, nil)
106-db.EXPECT().GetUserByID(gomock.Any(), user.ID).Times(1).Return(database.User{ID: user.ID, Deleted: true}, nil)
107+db.EXPECT().GetUserByID(gomock.Any(), user.ID).Times(1).Return(user, nil)
108+ },
109+ },
110+ {
111+name: "suspended user",
112+expectedErr: aibridgedserver.ErrInactiveUser,
113+mocksFn: func(db *dbmock.MockStore, apiKey database.APIKey, user database.User) {
114+user.Status = database.UserStatusSuspended
115+db.EXPECT().GetAPIKeyByID(gomock.Any(), apiKey.ID).Times(1).Return(apiKey, nil)
116+db.EXPECT().GetUserByID(gomock.Any(), user.ID).Times(1).Return(user, nil)
117+ },
118+ },
119+ {
120+name: "dormant user",
121+expectedErr: aibridgedserver.ErrInactiveUser,
122+mocksFn: func(db *dbmock.MockStore, apiKey database.APIKey, user database.User) {
123+user.Status = database.UserStatusDormant
124+db.EXPECT().GetAPIKeyByID(gomock.Any(), apiKey.ID).Times(1).Return(apiKey, nil)
125+db.EXPECT().GetUserByID(gomock.Any(), user.ID).Times(1).Return(user, nil)
107126 },
108127 },
109128 {
110129name: "system user",
111130expectedErr: aibridgedserver.ErrSystemUser,
112131mocksFn: func(db *dbmock.MockStore, apiKey database.APIKey, user database.User) {
132+user.IsSystem = true
113133db.EXPECT().GetAPIKeyByID(gomock.Any(), apiKey.ID).Times(1).Return(apiKey, nil)
114-db.EXPECT().GetUserByID(gomock.Any(), user.ID).Times(1).Return(database.User{ID: user.ID, IsSystem: true}, nil)
134+db.EXPECT().GetUserByID(gomock.Any(), user.ID).Times(1).Return(user, nil)
115135 },
116136 },
117137 {