sync: 同步 v1.0.4 并脱敏配置与镜像

This commit is contained in:
MiFaZhan
2026-10-29 14:36:49 +08:00
parent 743e8e6e6e
commit 2206a393f7
516 changed files with 18119 additions and 2253 deletions
+6 -10
View File
@@ -1,7 +1,7 @@
// Package mcache
// @Link https://github.com/xiujiecn/xiu-admin
// @Copyright Copyright (c) 2025 LiXiujie
// @Author Lxj <li@xiujie.cn>
// @Author Lxj <xxx@example.com>
// @License https://github.com/xiujiecn/xiu-admin/blob/master/LICENSE
// 内存缓存管理
package mcache
@@ -16,19 +16,15 @@ import (
// cache 缓存驱动
var (
mcache *gcache.Cache
mu sync.Mutex
mcache *gcache.Cache
cacheOnce sync.Once
)
// Instance 缓存实例
func Instance() *gcache.Cache {
if mcache == nil {
mu.Lock()
if mcache == nil {
mcache = gcache.NewWithAdapter(gcache.NewAdapterMemory())
}
mu.Unlock()
}
cacheOnce.Do(func() {
mcache = gcache.NewWithAdapter(gcache.NewAdapterMemory())
})
return mcache
}
@@ -1,7 +1,7 @@
// Package mcache
// @Link https://github.com/xiujiecn/xiu-admin
// @Copyright Copyright (c) 2025 LiXiujie
// @Author Lxj <li@xiujie.cn>
// @Author Lxj <xxx@example.com>
// @License https://github.com/xiujiecn/xiu-admin/blob/master/LICENSE
package mcache
@@ -28,22 +28,19 @@ func init() {
}
var loadUserPermissions = func(ctx context.Context, userID int64) ([]string, []string, error) {
return service.SysAuth().GetUserAccessCodeList(ctx, userID)
}
func GetUserAccessCodeList(ctx context.Context, userId int64) ([]string, []string, error) {
accessCodeList, err := Instance().Get(ctx, fmt.Sprintf(consts.MemCacheUserAccessCodeList, userId))
menuRoleDataAccessCodeList, err := Instance().Get(ctx, fmt.Sprintf(consts.MemCacheUserRoleDataAccessCodeList, userId))
if err != nil || accessCodeList == nil {
accessCodeCurrList, menuRoleDataAccessCodeList, err := service.SysAuth().GetUserAccessCodeList(ctx, userId)
if err != nil {
return nil, nil, err
}
if len(accessCodeCurrList) == 0 {
accessCodeCurrList = []string{"null"}
}
Instance().Set(ctx, fmt.Sprintf(consts.MemCacheUserAccessCodeList, userId), accessCodeCurrList, time.Hour*24)
Instance().Set(ctx, fmt.Sprintf(consts.MemCacheUserRoleDataAccessCodeList, userId), menuRoleDataAccessCodeList, time.Hour*24)
return accessCodeCurrList, menuRoleDataAccessCodeList, nil
codes, dataCodes, err := loadUserPermissions(ctx, userId)
if err != nil {
return nil, nil, err
}
return accessCodeList.Strings(), menuRoleDataAccessCodeList.Strings(), nil
if len(codes) == 0 {
codes = []string{"null"}
}
return codes, dataCodes, nil
}
func SetUserAccessCodeList(ctx context.Context, userId int64, accessCodeList []string) error {
@@ -55,11 +52,11 @@ func SetUserRoleDataAccessCodeList(ctx context.Context, userId int64, roleDataAc
}
func RemoveUserRoleDataAccessCodeList(ctx context.Context, userId int64) error {
_, err := Instance().Remove(ctx, fmt.Sprintf(consts.MemCacheUserRoleDataAccessCodeList, userId))
err := Instance().Removes(ctx, []interface{}{fmt.Sprintf(consts.MemCacheUserRoleDataAccessCodeList, userId)})
return err
}
func RemoveUserAccessCodeList(ctx context.Context, userId int64) error {
_, err := Instance().Remove(ctx, fmt.Sprintf(consts.MemCacheUserAccessCodeList, userId))
err := Instance().Removes(ctx, []interface{}{fmt.Sprintf(consts.MemCacheUserAccessCodeList, userId)})
return err
}
@@ -0,0 +1,28 @@
package mcache
import (
"context"
"reflect"
"testing"
)
func TestPermissionsReloadWithoutRevisionTable(t *testing.T) {
original := loadUserPermissions
t.Cleanup(func() { loadUserPermissions = original })
loads := 0
loadUserPermissions = func(context.Context, int64) ([]string, []string, error) {
loads++
if loads == 1 {
return []string{"old"}, nil, nil
}
return []string{"new"}, nil, nil
}
ctx := context.Background()
if _, _, err := GetUserAccessCodeList(ctx, 99); err != nil {
t.Fatal(err)
}
codes, _, err := GetUserAccessCodeList(ctx, 99)
if err != nil || !reflect.DeepEqual(codes, []string{"new"}) || loads != 2 {
t.Fatalf("stale authorization: codes=%v loads=%d err=%v", codes, loads, err)
}
}
@@ -1,7 +1,7 @@
// Package mcache
// @Link https://github.com/xiujiecn/xiu-admin
// @Copyright Copyright (c) 2025 LiXiujie
// @Author Lxj <li@xiujie.cn>
// @Author Lxj <xxx@example.com>
// @License https://github.com/xiujiecn/xiu-admin/blob/master/LICENSE
package mcache
@@ -1,7 +1,7 @@
// Package mcache
// @Link https://github.com/xiujiecn/xiu-admin
// @Copyright Copyright (c) 2025 LiXiujie
// @Author Lxj <li@xiujie.cn>
// @Author Lxj <xxx@example.com>
// @License https://github.com/xiujiecn/xiu-admin/blob/master/LICENSE
package mcache
@@ -1,7 +1,7 @@
// Package mcache
// @Link https://github.com/xiujiecn/xiu-admin
// @Copyright Copyright (c) 2025 LiXiujie
// @Author Lxj <li@xiujie.cn>
// @Author Lxj <xxx@example.com>
// @License https://github.com/xiujiecn/xiu-admin/blob/master/LICENSE
package mcache