XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.ServerInteractive

[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension.NetCore.ServerInteractive

新增用户对象权限校验方法,提升灵活性

增加 ValidateUserPermission 和 ValidatePermission 重载,支持直接传入 IUserInfo 对象进行权限校验,优化权限校验流程。项目版本号升级至 1.1.6。

700fde6
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

2 个文件 +55 -14
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Helpers/UserHelper.cs +45 -0
@@ -162,6 +162,21 @@ public static class UserHelper
162 162 return UserOperateResult.Success;
163 163 }
164 164
165 /// <summary>
166 /// 校验用户权限(直接传入用户对象)
167 /// </summary>
168 /// <param name="userInfo">用户信息对象</param>
169 /// <param name="requiredPermissionLevel">所需权限等级</param>
170 /// <returns></returns>
171 public static UserOperateResult ValidateUserPermission(IUserInfo userInfo, int requiredPermissionLevel)
172 {
173 if (!userInfo.Enable)
174 return UserOperateResult.UserDisabled;
175 if (userInfo.PermissionLevel < requiredPermissionLevel)
176 return UserOperateResult.PermissionDenied;
177 return UserOperateResult.Success;
178 }
179
165 180 /// <summary>
166 181 /// 校验权限
167 182 /// </summary>
@@ -218,6 +233,36 @@ public static class UserHelper
218 233 throw r.Error(OutPutResult(result), HttpStatusCode.Forbidden);
219 234 }
220 235
236 /// <summary>
237 /// 校验权限(直接传入用户对象)
238 /// </summary>
239 /// <param name="userInfo">用户信息对象</param>
240 /// <param name="requiredPermissionLevel">所需权限等级</param>
241 /// <param name="statusCode"></param>
242 /// <exception cref="StopAction"></exception>
243 public static void ValidatePermission(IUserInfo userInfo, int requiredPermissionLevel, ref HttpStatusCode statusCode)
244 {
245 var result = ValidateUserPermission(userInfo, requiredPermissionLevel);
246 if (result != UserOperateResult.Success)
247 {
248 statusCode = HttpStatusCode.Forbidden;
249 throw new StopAction(() => { }, $"\n{OutPutResult(result)}");
250 }
251 }
252
253 /// <summary>
254 /// 校验权限(直接传入用户对象)
255 /// </summary>
256 /// <param name="userInfo">用户信息对象</param>
257 /// <param name="requiredPermissionLevel">所需权限等级</param>
258 /// <param name="r"></param>
259 public static void ValidatePermission(IUserInfo userInfo, int requiredPermissionLevel, ServerCoreReturnArgs r)
260 {
261 var result = ValidateUserPermission(userInfo, requiredPermissionLevel);
262 if (result != UserOperateResult.Success)
263 throw r.Error(OutPutResult(result), HttpStatusCode.Forbidden);
264 }
265
221 266 /// <summary>
222 267 /// 输出结果
223 268 /// </summary>
Modified XFEExtension.NetCore.ServerInteractive/XFEExtension.NetCore.ServerInteractive.csproj +10 -14
@@ -5,7 +5,7 @@
5 5 <ImplicitUsings>enable</ImplicitUsings>
6 6 <Nullable>enable</Nullable>
7 7 <GenerateDocumentationFile>True</GenerateDocumentationFile>
8 <Version>1.1.5</Version>
8 <Version>1.1.6</Version>
9 9 <Title>XFEExtension.NetCore.ServerInteractive</Title>
10 10 <RepositoryUrl>https://github.com/XFEstudio/XFEExtension.NetCore.ServerInteractive</RepositoryUrl>
11 11 <AnalysisLevel>latest</AnalysisLevel>
@@ -19,24 +19,20 @@
19 19 <PackageReadmeFile>README.md</PackageReadmeFile>
20 20 <PackageTags>XFE;Server;服务器;XFEExtension</PackageTags>
21 21 <PackageReleaseNotes>
22 ## 调整
23
24 扩展关闭方法并调整接口实现为异步
25
26 新增 Close(byte[] buffer) 和 Close(Stream stream) 异步方法,支持多种关闭通讯方式。
27 将 CloseWithError 方法改为异步。
28 IXFEServerCoreServiceBase 接口移除默认实现,仅保留方法签名。
29 项目版本升级至 1.1.5。
22 ## 调整
23
24 新增用户对象权限校验方法,提升灵活性
30 25
26 增加 ValidateUserPermission 和 ValidatePermission 重载,支持直接传入 IUserInfo 对象进行权限校验,优化权限校验流程。项目版本号升级至 1.1.6。
31 27
32 ## 新增
28 ## 新增
33 29
34
30
35 31
36 ## 严重
32 ## 严重
37 33
38
39 </PackageReleaseNotes>
34
35 </PackageReleaseNotes>
40 36 <NeutralLanguage>zh-CN</NeutralLanguage>
41 37 <PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
42 38 <Version>$(Version)</Version>