v3
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
package know
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
const (
|
||||
CustomerCategory = "customer_category"
|
||||
CustomerSource = "customer_source"
|
||||
@@ -43,3 +48,8 @@ var (
|
||||
// 所有角色
|
||||
AllRoles = "m:role:all"
|
||||
)
|
||||
|
||||
func GetManageKey(ctx context.Context, key string, arg ...any) string {
|
||||
key = fmt.Sprintf(key, arg...)
|
||||
return key
|
||||
}
|
||||
|
||||
75
internal/pkg/know/pearadmin/pearadmin.go
Normal file
75
internal/pkg/know/pearadmin/pearadmin.go
Normal file
@@ -0,0 +1,75 @@
|
||||
package pearadmin
|
||||
|
||||
import "management/internal/db/model/dto"
|
||||
|
||||
const PearKey = "PEAR_JSON"
|
||||
|
||||
var PearJson = &dto.PearConfig{
|
||||
Logo: dto.Logo{
|
||||
Title: "Pear Admin",
|
||||
Image: "/statics/admin/images/logo.png",
|
||||
},
|
||||
Menu: dto.Menu{
|
||||
Data: "/system/menus",
|
||||
Method: "GET",
|
||||
Accordion: false,
|
||||
Collapse: false,
|
||||
Control: true,
|
||||
Select: "10",
|
||||
Async: true,
|
||||
},
|
||||
Tab: dto.Tab{
|
||||
Enable: true,
|
||||
KeepState: true,
|
||||
Session: true,
|
||||
Preload: false,
|
||||
Max: "30",
|
||||
Index: dto.Index{
|
||||
Id: "10",
|
||||
Href: "",
|
||||
Title: "首页",
|
||||
},
|
||||
},
|
||||
Theme: dto.Theme{
|
||||
DefaultColor: "1",
|
||||
DefaultMenu: "dark-theme",
|
||||
DefaultHeader: "light-theme",
|
||||
AllowCustom: true,
|
||||
Banner: false,
|
||||
},
|
||||
Colors: []dto.Colors{
|
||||
{
|
||||
Id: "1",
|
||||
Color: "#2d8cf0",
|
||||
Second: "#ecf5ff",
|
||||
},
|
||||
{
|
||||
Id: "2",
|
||||
Color: "#36b368",
|
||||
Second: "#f0f9eb",
|
||||
},
|
||||
{
|
||||
Id: "3",
|
||||
Color: "#f6ad55",
|
||||
Second: "#fdf6ec",
|
||||
},
|
||||
{
|
||||
Id: "4",
|
||||
Color: "#f56c6c",
|
||||
Second: "#fef0f0",
|
||||
},
|
||||
{
|
||||
Id: "5",
|
||||
Color: "#3963bc",
|
||||
Second: "#ecf5ff",
|
||||
},
|
||||
},
|
||||
Other: dto.Other{
|
||||
KeepLoad: "200",
|
||||
AutoHead: false,
|
||||
Footer: false,
|
||||
},
|
||||
Header: dto.Header{
|
||||
Message: "/statics/admin/data/message.json",
|
||||
},
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"net/http"
|
||||
|
||||
"management/internal/db/model/dto"
|
||||
"management/internal/global/auth"
|
||||
"management/internal/pkg/know"
|
||||
)
|
||||
|
||||
var defaultMenus = map[string]bool{
|
||||
@@ -59,8 +59,8 @@ func (m *middleware) Authorize(next http.Handler) http.Handler {
|
||||
}
|
||||
|
||||
func (m *middleware) isLogin(ctx context.Context) (*dto.AuthorizeUser, bool) {
|
||||
if exists := m.session.Exists(ctx, auth.StoreName); exists {
|
||||
b := m.session.GetBytes(ctx, auth.StoreName)
|
||||
if exists := m.session.Exists(ctx, know.StoreName); exists {
|
||||
b := m.session.GetBytes(ctx, know.StoreName)
|
||||
var user dto.AuthorizeUser
|
||||
if err := json.Unmarshal(b, &user); err != nil {
|
||||
return nil, false
|
||||
@@ -73,8 +73,8 @@ func (m *middleware) isLogin(ctx context.Context) (*dto.AuthorizeUser, bool) {
|
||||
|
||||
func (m *middleware) AuthUser(ctx context.Context) dto.AuthorizeUser {
|
||||
var user dto.AuthorizeUser
|
||||
if exists := m.session.Exists(ctx, auth.StoreName); exists {
|
||||
b := m.session.GetBytes(ctx, auth.StoreName)
|
||||
if exists := m.session.Exists(ctx, know.StoreName); exists {
|
||||
b := m.session.GetBytes(ctx, know.StoreName)
|
||||
_ = json.Unmarshal(b, &user)
|
||||
}
|
||||
return user
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
"management/internal/db/model/dto"
|
||||
systemv1 "management/internal/erpserver/biz/v1/system"
|
||||
"management/internal/pkg/session"
|
||||
)
|
||||
@@ -12,6 +14,7 @@ type IMiddleware interface {
|
||||
NoSurf(next http.Handler) http.Handler
|
||||
LoadSession(next http.Handler) http.Handler
|
||||
Authorize(next http.Handler) http.Handler
|
||||
AuthUser(ctx context.Context) dto.AuthorizeUser
|
||||
}
|
||||
|
||||
type middleware struct {
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"management/internal/db/model/dto"
|
||||
"management/internal/global/auth"
|
||||
"management/internal/pkg/know"
|
||||
templates "management/web/templates/manage"
|
||||
|
||||
"github.com/justinas/nosurf"
|
||||
@@ -25,11 +25,11 @@ func (r *render) setDefaultData(req *http.Request, data map[string]any) map[stri
|
||||
}
|
||||
|
||||
ctx := req.Context()
|
||||
isAuth := r.session.Exists(ctx, auth.StoreName)
|
||||
isAuth := r.session.Exists(ctx, know.StoreName)
|
||||
data["IsAuthenticated"] = isAuth
|
||||
if isAuth {
|
||||
var authUser dto.AuthorizeUser
|
||||
u := r.session.GetBytes(ctx, auth.StoreName)
|
||||
u := r.session.GetBytes(ctx, know.StoreName)
|
||||
_ = json.Unmarshal(u, &authUser)
|
||||
|
||||
data["AuthorizeMenus"] = r.getCurrentPathBtns(ctx, authUser.RoleID, req.URL.Path)
|
||||
|
||||
Reference in New Issue
Block a user