send
created pr with
17.1
cmds
checkout latest patchset:
ssh pr.pico.sh print 17 | git am -3checkout any patchset in a patch request:
ssh pr.pico.sh print 17.[rev] | git am -3add changes to patch request:
git format-patch main --stdout | ssh pr.pico.sh pr add 17
Patchset
17.1
feat(pgs): tunnel default to requester username if no username provided
Eric Bower
2024-08-19T13:47:46ZSemantic diff summary
0 added,
2 modified,
0 signature changed,
0 removed
across 2 analyzed files
+3
-0
pgs/api.go
#
| ... | ... | @@ -372,6 +372,9 @@ func ServeAsset(fname string, opts *storage.ImgProcessOpts, fromImgs bool, hasPe | |
| 372 | 372 | st := shared.GetStorage(r) | |
| 373 | 373 | logger := shared.GetLogger(r) | |
| 374 | 374 | ||
| 375 | + | fmt.Println("===") | |
| 376 | + | fmt.Println(subdomain) | |
| 377 | + | fmt.Println("===") | |
| 375 | 378 | props, err := getProjectFromSubdomain(subdomain) | |
| 376 | 379 | if err != nil { | |
| 377 | 380 | logger.Info(err.Error(), "subdomain", subdomain, "filename", fname) |
+12
-7
pgs/tunnel.go
#
| ... | ... | @@ -57,6 +57,18 @@ func createHttpHandler(apiConfig *shared.ApiConfig) CtxHttpBridge { | |
| 57 | 57 | return http.HandlerFunc(shared.UnauthorizedHandler) | |
| 58 | 58 | } | |
| 59 | 59 | ||
| 60 | + | requester, _ := dbh.FindUserForKey("", pubkeyStr) | |
| 61 | + | if requester != nil { | |
| 62 | + | log = log.With( | |
| 63 | + | "requester", requester.Name, | |
| 64 | + | ) | |
| 65 | + | } | |
| 66 | + | ||
| 67 | + | // assume no username provided | |
| 68 | + | if props.Username == props.ProjectName { | |
| 69 | + | props.Username = requester.Name | |
| 70 | + | } | |
| 71 | + | ||
| 60 | 72 | owner, err := dbh.FindUserForName(props.Username) | |
| 61 | 73 | if err != nil { | |
| 62 | 74 | log.Error(err.Error()) |
| ... | ... | @@ -72,13 +84,6 @@ func createHttpHandler(apiConfig *shared.ApiConfig) CtxHttpBridge { | |
| 72 | 84 | return http.HandlerFunc(shared.UnauthorizedHandler) | |
| 73 | 85 | } | |
| 74 | 86 | ||
| 75 | - | requester, _ := dbh.FindUserForKey("", pubkeyStr) | |
| 76 | - | if requester != nil { | |
| 77 | - | log = log.With( | |
| 78 | - | "requester", requester.Name, | |
| 79 | - | ) | |
| 80 | - | } | |
| 81 | - | ||
| 82 | 87 | // impersonation logic | |
| 83 | 88 | if asUser != "" { | |
| 84 | 89 | isAdmin := dbh.HasFeatureForUser(requester.ID, "admin") |