dashboard / erock/send / refactor(sftp): print errors from server to client #17 rss

closed · opened on 2024-08-20T03:19:05Z by erock
Help
checkout latest patchset:
ssh pr.pico.sh print pr-17 | git am -3
checkout any patchset in a patch request:
ssh pr.pico.sh print ps-X | git am -3
add changes to patch request:
git format-patch main --stdout | ssh pr.pico.sh pr add 17
add review to patch request:
git format-patch main --stdout | ssh pr.pico.sh pr add --review 17
accept PR:
ssh pr.pico.sh pr accept 17
close PR:
ssh pr.pico.sh pr close 17

Logs

erock created pr with ps-33 on 2024-08-19T13:48:20Z
erock changed status on 2024-12-20T18:23:14Z {"status":"closed"}

Patchsets

ps-33 by erock on 2024-08-19T13:48:20Z

feat(pgs): tunnel default to requester username if no username provided

pgs/api.go link
+3 -0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
diff --git a/pgs/api.go b/pgs/api.go
index f73c5eb..d3c39df 100644
--- a/pgs/api.go
+++ b/pgs/api.go
@@ -372,6 +372,9 @@ func ServeAsset(fname string, opts *storage.ImgProcessOpts, fromImgs bool, hasPe
 	st := shared.GetStorage(r)
 	logger := shared.GetLogger(r)
 
+	fmt.Println("===")
+	fmt.Println(subdomain)
+	fmt.Println("===")
 	props, err := getProjectFromSubdomain(subdomain)
 	if err != nil {
 		logger.Info(err.Error(), "subdomain", subdomain, "filename", fname)
pgs/tunnel.go link
+12 -7
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
diff --git a/pgs/tunnel.go b/pgs/tunnel.go
index e9bf24a..694fa5a 100644
--- a/pgs/tunnel.go
+++ b/pgs/tunnel.go
@@ -57,6 +57,18 @@ func createHttpHandler(apiConfig *shared.ApiConfig) CtxHttpBridge {
 			return http.HandlerFunc(shared.UnauthorizedHandler)
 		}
 
+		requester, _ := dbh.FindUserForKey("", pubkeyStr)
+		if requester != nil {
+			log = log.With(
+				"requester", requester.Name,
+			)
+		}
+
+		// assume no username provided
+		if props.Username == props.ProjectName {
+			props.Username = requester.Name
+		}
+
 		owner, err := dbh.FindUserForName(props.Username)
 		if err != nil {
 			log.Error(err.Error())
@@ -72,13 +84,6 @@ func createHttpHandler(apiConfig *shared.ApiConfig) CtxHttpBridge {
 			return http.HandlerFunc(shared.UnauthorizedHandler)
 		}
 
-		requester, _ := dbh.FindUserForKey("", pubkeyStr)
-		if requester != nil {
-			log = log.With(
-				"requester", requester.Name,
-			)
-		}
-
 		// impersonation logic
 		if asUser != "" {
 			isAdmin := dbh.HasFeatureForUser(requester.ID, "admin")