feat: 管理员跨租户管理 + 注册开关
- 管理员可管理任意用户笔记(读取/修改/删除/回收站/标签/图谱/FTS 全平台) - 普通用户仍数据隔离, 越权返回404 - 新增注册开关: 管理员后台⚙设置可开/关, 支持REGISTRATION_ENABLED环境变量 - 注册关闭时前台/登录页隐藏注册入口, 注册接口返回400 - 冒烟测试扩展到91用例全过
This commit is contained in:
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"note-manager/config"
|
||||
@@ -12,6 +13,14 @@ import (
|
||||
"note-manager/service"
|
||||
)
|
||||
|
||||
// getDefaultReg 返回注册开关默认值(来自环境变量 REGISTRATION_ENABLED,默认开启)
|
||||
func getDefaultReg() string {
|
||||
if v := os.Getenv("REGISTRATION_ENABLED"); v != "" {
|
||||
return v
|
||||
}
|
||||
return "true"
|
||||
}
|
||||
|
||||
func main() {
|
||||
// 加载配置
|
||||
cfg := config.Load()
|
||||
@@ -36,6 +45,15 @@ func main() {
|
||||
log.Fatalf("初始化上传目录失败: %v", err)
|
||||
}
|
||||
|
||||
// 确保系统设置表存在(注册开关等)
|
||||
if err := userRepo.EnsureSettingsTable(); err != nil {
|
||||
log.Fatalf("初始化系统设置表失败: %v", err)
|
||||
}
|
||||
// 注册开关默认值来自环境变量 REGISTRATION_ENABLED(默认开启)
|
||||
userService.SetRegistrationDefault(getDefaultReg())
|
||||
// 注入角色判定,使管理员能跨租户管理笔记
|
||||
noteService.RegisterRoleChecker(userService)
|
||||
|
||||
// 初始化 Gin(设置模板目录)
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
engine := gin.Default()
|
||||
|
||||
Reference in New Issue
Block a user