this repo has no description smallweb.run
smallweb
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

add support for providing a custom auth

pomdtr e1c59cdc c4bab95a

+32 -23
+7 -2
auth/auth.go
··· 125 125 return false 126 126 } 127 127 128 - func Middleware(db *sql.DB, email string, appname string) func(http.Handler) http.Handler { 128 + func Middleware(db *sql.DB, provider string, email string, appname string) func(http.Handler) http.Handler { 129 129 return func(next http.Handler) http.Handler { 130 130 sessionCookieName := "smallweb-session" 131 131 oauthCookieName := "smallweb-oauth-store" ··· 173 173 return 174 174 } 175 175 176 + authUrl := "https://lastlogin.net/auth" 177 + if provider != "" { 178 + authUrl += "?provider=" + provider 179 + } 180 + 176 181 oauth2Config := oauth2.Config{ 177 182 ClientID: fmt.Sprintf("https://%s/", r.Host), 178 183 Endpoint: oauth2.Endpoint{ 179 - AuthURL: "https://lastlogin.net/auth", 184 + AuthURL: authUrl, 180 185 TokenURL: "https://lastlogin.net/token", 181 186 AuthStyle: oauth2.AuthStyleInParams, 182 187 },
+12 -18
cmd/config.go
··· 8 8 "path/filepath" 9 9 10 10 "github.com/google/shlex" 11 - "github.com/mattn/go-isatty" 12 11 "github.com/pomdtr/smallweb/utils" 13 12 "github.com/spf13/cobra" 14 13 ) 15 14 16 15 func NewCmdConfig() *cobra.Command { 17 - var flags struct { 18 - json bool 19 - } 20 - 21 16 cmd := &cobra.Command{ 22 - Use: "config", 17 + Use: "config [key]", 23 18 Short: "Open the smallweb config in your editor", 24 19 GroupID: CoreGroupID, 25 - Args: cobra.NoArgs, 20 + Args: cobra.MaximumNArgs(1), 26 21 RunE: func(cmd *cobra.Command, args []string) error { 27 22 configPath := findConfigPath() 28 23 29 - if flags.json || !isatty.IsTerminal(os.Stdout.Fd()) { 30 - b, err := k.Marshal(utils.ConfigParser()) 31 - if err != nil { 32 - return err 33 - } 34 - 35 - os.Stdout.Write(b) 36 - return nil 37 - } 38 - 39 24 if !utils.FileExists(configPath) { 40 25 var config map[string]any 41 26 if err := k.Unmarshal("", &config); err != nil { ··· 61 46 } 62 47 } 63 48 49 + if len(args) > 0 { 50 + v := k.Get(args[0]) 51 + if v == nil { 52 + return fmt.Errorf("key %q not found", args[0]) 53 + } 54 + 55 + fmt.Println(v) 56 + return nil 57 + } 58 + 64 59 editorArgs, err := shlex.Split(findEditor()) 65 60 if err != nil { 66 61 return err ··· 81 76 }, 82 77 } 83 78 84 - cmd.Flags().BoolVarP(&flags.json, "json", "j", false, "Output as JSON") 85 79 return cmd 86 80 }
+13 -3
cmd/up.go
··· 170 170 var ln net.Listener 171 171 if strings.HasPrefix(addr, "unix/") { 172 172 socketPath := strings.TrimPrefix(addr, "unix/") 173 - net.Listen("unix", utils.ExpandTilde(socketPath)) 173 + l, err := net.Listen("unix", utils.ExpandTilde(socketPath)) 174 + if err != nil { 175 + return fmt.Errorf("failed to listen: %v", err) 176 + } 177 + ln = l 174 178 } else { 175 - net.Listen("tcp", addr) 179 + addr := strings.TrimPrefix(addr, "tcp/") 180 + l, err := net.Listen("tcp", addr) 181 + if err != nil { 182 + return fmt.Errorf("failed to listen: %v", err) 183 + } 184 + 185 + ln = l 176 186 } 177 187 178 188 go server.Serve(ln) ··· 318 328 } 319 329 320 330 if isPrivateRoute || strings.HasPrefix(r.URL.Path, "/_auth") { 321 - authMiddleware := auth.Middleware(me.db, k.String("email"), a.Name) 331 + authMiddleware := auth.Middleware(me.db, k.String("auth"), k.String("email"), a.Name) 322 332 handler = authMiddleware(handler) 323 333 } 324 334