@@ -2,61 +2,53 @@ package auth
22
33import (
44 "context"
5+ "database/sql"
56 "encoding/base64"
7+ "errors"
68 "fmt"
79 "log"
810 "strings"
911
12+ "github.com/e2b-dev/infra/packages/db/client"
13+ "github.com/e2b-dev/infra/packages/db/queries"
1014 "github.com/e2b-dev/infra/packages/shared/pkg/keys"
11- "github.com/e2b-dev/infra/packages/shared/pkg/models"
12- "github.com/e2b-dev/infra/packages/shared/pkg/models/accesstoken"
13- "github.com/e2b-dev/infra/packages/shared/pkg/models/env"
14- "github.com/e2b-dev/infra/packages/shared/pkg/models/envbuild"
15- "github.com/e2b-dev/infra/packages/shared/pkg/models/user"
1615)
1716
18- func Validate (ctx context.Context , db * models .Client , token , envID string ) (bool , error ) {
17+ func Validate (ctx context.Context , sqlcDB * client .Client , token , envID string ) (bool , error ) {
1918 hashedToken , err := keys .VerifyKey (keys .AccessTokenPrefix , token )
2019 if err != nil {
2120 return false , err
2221 }
2322
24- u , err := db .User .Query ().Where (user .HasAccessTokensWith (accesstoken .AccessTokenHash (hashedToken ))).WithTeams ().Only (ctx )
23+ _ , err = sqlcDB .ValidateEnvBuilds (ctx , queries.ValidateEnvBuildsParams {
24+ TemplateID : envID ,
25+ AccessTokenHash : hashedToken ,
26+ })
2527 if err != nil {
26- return false , err
27- }
28+ if errors .Is (err , sql .ErrNoRows ) {
29+ return false , nil
30+ }
2831
29- e , err := db .Env .Query ().Where (
30- env .ID (envID ),
31- env .HasBuildsWith (envbuild .StatusEQ (envbuild .StatusWaiting )),
32- ).Only (ctx )
33- if err != nil {
3432 return false , err
3533 }
3634
37- for _ , team := range u .Edges .Teams {
38- if team .ID == e .TeamID {
39- return true , nil
40- }
41- }
42-
43- return false , nil
35+ return true , nil
4436}
4537
46- func ValidateAccessToken (ctx context.Context , db * models .Client , accessToken string ) bool {
38+ func ValidateAccessToken (ctx context.Context , db * client .Client , accessToken string ) bool {
4739 hashedToken , err := keys .VerifyKey (keys .AccessTokenPrefix , accessToken )
4840 if err != nil {
4941 return false
5042 }
5143
52- exists , err : = db .AccessToken . Query (). Where ( accesstoken . AccessTokenHash ( hashedToken )). Exist ( ctx )
44+ _ , err = db .GetUserIDFromAccessToken ( ctx , hashedToken )
5345 if err != nil {
5446 log .Printf ("Error while checking access token: %s\n " , err .Error ())
5547
5648 return false
5749 }
5850
59- return exists
51+ return true
6052}
6153
6254func ExtractAccessToken (authHeader , authType string ) (string , error ) {
0 commit comments