refactor: 对齐 simapi-net 的 20 项差异
- SimApiLoginItem._types 默认 [user] - 新增 SimApiIdOnlyRequest - errorWhenNone 改名 errorWhenNull - SimApiAuth.update 保留 TTL(Redis ttl/expire) - SimApiCache: set 接受 Any + 新增 get<T>/getString - SimApiHttpClient 签名字段移出 Options - SimApiUtil: md5/sha1 支持 mode + 新增 paginate - @SimApiAuth 支持逗号分隔多类型 - Logger: 4 位毫秒 + IsEnabled 恒 true - 删除 /versions 端点;exceptionHandler 改为抛错 - UseSimApi 中间件顺序对齐 .NET - README 同步更新
This commit is contained in:
@@ -96,9 +96,17 @@ struct SimApiActionInvoker {
|
||||
SimApiError.error(code: 401, message: "需要登录")
|
||||
}
|
||||
|
||||
// 2. 类型权限校验 → 403
|
||||
// 2. 类型权限校验 → 403(对齐 C# Types.Intersect(loginInfo.Type).Any(),支持逗号分隔多类型)
|
||||
if (!auth.`type`.isEmpty()) {
|
||||
if (!loginItem._types.contains(auth.`type`)) {
|
||||
let requiredTypes = auth.`type`.split(",")
|
||||
var matched = false
|
||||
for (t in requiredTypes) {
|
||||
if (loginItem._types.contains(t)) {
|
||||
matched = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if (!matched) {
|
||||
SimApiError.error(code: 403, message: "无权访问")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user