36 lines
900 B
Go
36 lines
900 B
Go
package middleware
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
|
|
"management/internal/erpserver/model/dto"
|
|
v1 "management/internal/erpserver/service/v1"
|
|
"management/internal/pkg/session"
|
|
)
|
|
|
|
type Middleware interface {
|
|
Audit(next http.Handler) http.Handler
|
|
NoSurf(next http.Handler) http.Handler
|
|
LoadSession(next http.Handler) http.Handler
|
|
Authorize(next http.Handler) http.Handler
|
|
AuthUser(ctx context.Context) dto.AuthorizeUser
|
|
IsAuth(ctx context.Context) bool
|
|
RefreshToken(ctx context.Context) bool
|
|
Destroy(ctx context.Context) error
|
|
}
|
|
|
|
type middleware struct {
|
|
session session.Session
|
|
menuService v1.MenuService
|
|
auditLogService v1.AuditLogService
|
|
}
|
|
|
|
func New(session session.Session, menuService v1.MenuService, auditLogService v1.AuditLogService) Middleware {
|
|
return &middleware{
|
|
session: session,
|
|
menuService: menuService,
|
|
auditLogService: auditLogService,
|
|
}
|
|
}
|