diff options
Diffstat (limited to 'cmd/web')
| -rw-r--r-- | cmd/web/main.go | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/cmd/web/main.go b/cmd/web/main.go index 093dad6..8456ad8 100644 --- a/cmd/web/main.go +++ b/cmd/web/main.go @@ -9,14 +9,17 @@ import ( "time" "github.com/alexedwards/scs/v2" + "github.com/casbin/casbin" "github.com/go-chi/chi" "github.com/go-chi/chi/middleware" "golang.org/x/oauth2" "golang.org/x/oauth2/google" + "git.ofmax.li/iserv/internal/acct" "git.ofmax.li/iserv/internal/auth" "git.ofmax.li/iserv/internal/db/redis" "git.ofmax.li/iserv/internal/fs" + "git.ofmax.li/iserv/internal/goog" "git.ofmax.li/iserv/internal/image" "go.ofmax.li/tmpl" ) @@ -54,6 +57,9 @@ func main() { sessionManager := scs.New() sessionManager.Lifetime = 24 * time.Hour + // Google + googService := goog.NewService(oauthClientConfig) + // Image imgdb := redis.NewRedisImageRepo(connPool) imageService := image.NewService(imgdb, storagePath, renderer) @@ -61,22 +67,32 @@ func main() { imageFile := fs.NewHandler(storagePath) // Auth + // Auth Enforcer + enf := casbin.NewEnforcer("auth_model.ini", "policy.csv") authdb := redis.NewRedisAuthRepo(connPool) - authService := auth.NewService(authdb) - authHandler := auth.NewHandler(authService, sessionManager, oauthClientConfig) + authService := auth.NewService(authdb, googService, enf) + authHandler := auth.NewHandler(authService, sessionManager) + + // Acct + acctDb := redis.NewAcctRepo(connPool) + acctService := acct.NewService(acctDb, authdb, googService) + acctHandler := acct.NewHandler(acctService, sessionManager) // Static Files staticFiles := fs.NewHandler(path.Join(storagePath, "static")) r := chi.NewRouter() + r.Use(middleware.StripSlashes) r.Use(middleware.Logger) r.Use(sessionManager.LoadAndSave) + r.Use(auth.AuthOnly(authService, sessionManager)) r.Get("/a/g", authHandler.OauthCallback) r.Get("/l", authHandler.Login) + r.Get("/u/register", acctHandler.Register) r.Get("/i/{fileName}", imageHandler.GetImage) - r.Post("/u", imageHandler.PostImage) + r.Post("/i", imageHandler.PostImage) r.Get("/f/*", imageFile) r.Get("/static/*", staticFiles) |