This commit is contained in:
2026-05-22 12:37:00 +08:00
parent 6e2ae11c54
commit aaba8b8b73
2 changed files with 15 additions and 12 deletions
+6 -4
View File
@@ -26,10 +26,11 @@ public class SimApiAuthIam(SimApiAuthClient simapi, ILogger<SimApiAuthIam> logge
/// 获取拥有的权限标识数组
/// </summary>
/// <param name="profileId"></param>
/// <param name="groupId"></param>
/// <returns></returns>
public string[] GetPermissionOwned(string profileId)
public string[] GetPermissionOwned(string profileId, string? groupId = null)
{
return simapi.SignQuery<string[]>("/api/iam/permission/owned", new { profileId }) ?? [];
return simapi.SignQuery<string[]>("/api/iam/permission/owned", new { profileId, groupId }) ?? [];
}
/// <summary>
@@ -37,9 +38,10 @@ public class SimApiAuthIam(SimApiAuthClient simapi, ILogger<SimApiAuthIam> logge
/// </summary>
/// <param name="profileId"></param>
/// <param name="permission"></param>
public void CheckPermission(string profileId, string permission)
/// <param name="groupId"></param>
public void CheckPermission(string profileId, string permission, string? groupId = null)
{
var ok = simapi.SignQuery<bool>("/api/iam/permission/check", new { profileId, permission });
var ok = simapi.SignQuery<bool>("/api/iam/permission/check", new { profileId, permission, groupId });
ErrorWhen(!ok, 403, "没有该权限");
}
}
+9 -8
View File
@@ -12,15 +12,15 @@ namespace SimApi.Helpers;
public class SimApiHttpClient(SimApiOptions? apiOptions = null, ILogger<SimApiHttpClient>? logger = null)
{
public virtual string Server { get; init; } = apiOptions?.SimApiHttpClientOptions.Server ?? string.Empty;
public virtual string AppId { get; init; } = apiOptions?.SimApiHttpClientOptions.AppId ?? string.Empty;
public virtual string AppKey { get; init; } = apiOptions?.SimApiHttpClientOptions.AppKey ?? string.Empty;
public virtual string Server { get; init; } = apiOptions?.SimApiHttpClientOptions.Server ?? string.Empty;
public virtual string AppId { get; init; } = apiOptions?.SimApiHttpClientOptions.AppId ?? string.Empty;
public virtual string AppKey { get; init; } = apiOptions?.SimApiHttpClientOptions.AppKey ?? string.Empty;
public virtual string SignName { get; init; } = "sign";
public virtual string TimestampName { get; init; } = "timestamp";
public virtual string NonceName { get; init; } = "nonce";
public virtual string? AppIdName { get; init; } = "appId";
public virtual string[] SignFields { get; init; } = [];
public virtual string SignName { get; init; } = "sign";
public virtual string TimestampName { get; init; } = "timestamp";
public virtual string NonceName { get; init; } = "nonce";
public virtual string? AppIdName { get; init; } = "appId";
public virtual string[] SignFields { get; init; } = [];
/// <summary>
/// 发起签名请求
@@ -106,6 +106,7 @@ public class SimApiHttpClient(SimApiOptions? apiOptions = null, ILogger<SimApiHt
logger?.LogDebug($"[HTTPCLIENT请求] {url}\n{SimApiUtil.Json(req)}\n");
var resp = http.PostAsJsonAsync(url, req).Result;
logger?.LogDebug($"[HTTPCLIENT响应] {resp.Content.ReadAsStringAsync().Result}\n");
SimApiError.ErrorWhenFalse(resp.IsSuccessStatusCode, (int)resp.StatusCode, $"HTTP ERROR: {resp.StatusCode}");
var res = resp.Content.ReadFromJsonAsync<SimApiBaseResponse<T>>().Result;
SimApiError.ErrorWhenNull(res, 500, "请求发生错误");
SimApiError.ErrorWhen(res.Code != 200, res.Code, res.Message);