gorm update
This commit is contained in:
@@ -6,31 +6,32 @@ import (
|
||||
|
||||
"management/internal/erpserver/model/dto"
|
||||
"management/internal/pkg/config"
|
||||
"management/internal/pkg/middleware"
|
||||
"management/internal/pkg/know"
|
||||
"management/internal/pkg/render"
|
||||
"management/internal/pkg/session"
|
||||
|
||||
"github.com/drhin/logger"
|
||||
)
|
||||
|
||||
type Handler struct {
|
||||
Config *config.Config
|
||||
Log *logger.Logger
|
||||
Middleware middleware.Middleware
|
||||
Config *config.Config
|
||||
Log *logger.Logger
|
||||
|
||||
render render.Render
|
||||
session session.Manager
|
||||
render render.Render
|
||||
}
|
||||
|
||||
func NewHandler(
|
||||
config *config.Config,
|
||||
log *logger.Logger,
|
||||
middleware middleware.Middleware,
|
||||
session session.Manager,
|
||||
render render.Render,
|
||||
) *Handler {
|
||||
return &Handler{
|
||||
Config: config,
|
||||
Log: log,
|
||||
Middleware: middleware,
|
||||
render: render,
|
||||
Config: config,
|
||||
Log: log,
|
||||
session: session,
|
||||
render: render,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +39,19 @@ func NewHandler(
|
||||
// middleware 帮助方法
|
||||
|
||||
func (h *Handler) AuthUser(ctx context.Context) dto.AuthorizeUser {
|
||||
return h.Middleware.AuthUser(ctx)
|
||||
u, err := h.session.GetUser(ctx, know.StoreName)
|
||||
if err != nil {
|
||||
return dto.AuthorizeUser{}
|
||||
}
|
||||
return *u
|
||||
}
|
||||
|
||||
func (h *Handler) RenewToken(ctx context.Context) error {
|
||||
return h.session.RenewToken(ctx)
|
||||
}
|
||||
|
||||
func (h *Handler) Destroy(ctx context.Context) error {
|
||||
return h.session.Destroy(ctx)
|
||||
}
|
||||
|
||||
// =====================================================================================================================
|
||||
|
||||
@@ -167,11 +167,15 @@ func (h *UserHandler) Login(w http.ResponseWriter, r *http.Request) {
|
||||
ctx := r.Context()
|
||||
switch r.Method {
|
||||
case http.MethodGet:
|
||||
if h.Middleware.IsAuth(ctx) && h.Middleware.RefreshToken(ctx) {
|
||||
http.Redirect(w, r, "/home.html", http.StatusFound)
|
||||
return
|
||||
user := h.AuthUser(ctx)
|
||||
if user.ID > 0 {
|
||||
if err := h.RenewToken(ctx); err == nil {
|
||||
http.Redirect(w, r, "/home.html", http.StatusFound)
|
||||
return
|
||||
}
|
||||
}
|
||||
_ = h.Middleware.Destroy(ctx)
|
||||
|
||||
_ = h.Destroy(ctx)
|
||||
h.HTML(w, r, "oauth/login.tmpl", nil)
|
||||
case http.MethodPost:
|
||||
defer func(Body io.ReadCloser) {
|
||||
@@ -207,7 +211,7 @@ func (h *UserHandler) Login(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func (h *UserHandler) Logout(w http.ResponseWriter, r *http.Request) {
|
||||
err := h.Middleware.Destroy(r.Context())
|
||||
err := h.Destroy(r.Context())
|
||||
if err != nil {
|
||||
h.Log.Error(err.Error(), err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user