package authx // 权限统一用中文命名。英文旧码仍可通过 NormalizePerm 兼容。 const ( Perm读取模块 = "读取模块" Perm写入模块 = "写入模块" Perm发布模块 = "发布模块" Perm新增数据 = "新增数据" Perm查询数据 = "查询数据" Perm更新数据 = "更新数据" Perm删除数据 = "删除数据" Perm导出数据 = "导出数据" Perm导入数据 = "导入数据" Perm查看审计 = "查看审计" Perm上传文件 = "上传文件" Perm下载文件 = "下载文件" Perm管理智能体 = "管理智能体" Perm邀请成员 = "邀请成员" Perm管理组织 = "管理组织" Perm数据同步 = "数据同步" Perm管理租户 = "管理租户" // 平台超级管理员:跨公司 ) // permAlias:英文旧码 → 中文规范名;中文自身映射到自身。 var permAlias = map[string]string{ "app.read": Perm读取模块, "app.write": Perm写入模块, "app.admin": Perm发布模块, "row.create": Perm新增数据, "row.read": Perm查询数据, "row.update": Perm更新数据, "row.delete": Perm删除数据, "row.export": Perm导出数据, "row.import": Perm导入数据, "audit.read": Perm查看审计, "storage.write": Perm上传文件, "storage.read": Perm下载文件, "agent.admin": Perm管理智能体, "tenant.invite": Perm邀请成员, "org.admin": Perm管理组织, "sync.admin": Perm数据同步, "sync.push": Perm数据同步, "tenant.admin": Perm管理租户, Perm读取模块: Perm读取模块, Perm写入模块: Perm写入模块, Perm发布模块: Perm发布模块, Perm新增数据: Perm新增数据, Perm查询数据: Perm查询数据, Perm更新数据: Perm更新数据, Perm删除数据: Perm删除数据, Perm导出数据: Perm导出数据, Perm导入数据: Perm导入数据, Perm查看审计: Perm查看审计, Perm上传文件: Perm上传文件, Perm下载文件: Perm下载文件, Perm管理智能体: Perm管理智能体, Perm邀请成员: Perm邀请成员, Perm管理组织: Perm管理组织, Perm数据同步: Perm数据同步, Perm管理租户: Perm管理租户, } // NormalizePerm 将权限统一为中文规范名(未知则原样返回)。 func NormalizePerm(p string) string { if c, ok := permAlias[p]; ok { return c } return p } // NormalizePerms 去重并转为中文规范名。 func NormalizePerms(perms []string) []string { seen := map[string]struct{}{} out := make([]string, 0, len(perms)) for _, p := range perms { c := NormalizePerm(p) if c == "" { continue } if _, ok := seen[c]; ok { continue } seen[c] = struct{}{} out = append(out, c) } return out }