38 lines
899 B
Go
38 lines
899 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
|
|
menusvc v1.MenuService
|
|
auditLogsvc v1.AuditLogService
|
|
}
|
|
|
|
var _ Middleware = (*middleware)(nil)
|
|
|
|
func New(session session.Session, menusvc v1.MenuService, auditLogsvc v1.AuditLogService) Middleware {
|
|
return &middleware{
|
|
session: session,
|
|
menusvc: menusvc,
|
|
auditLogsvc: auditLogsvc,
|
|
}
|
|
}
|