aboutsummaryrefslogtreecommitdiff
path: root/cmd/web/main.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cmd/web/main.go22
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)