diff --git a/XCode/Membership/PermissionFlags.cs b/XCode/Membership/PermissionFlags.cs index 5e971b589..4b53153aa 100644 --- a/XCode/Membership/PermissionFlags.cs +++ b/XCode/Membership/PermissionFlags.cs @@ -5,7 +5,7 @@ namespace XCode.Membership; /// 操作权限 [Flags] [Description("操作权限")] -public enum PermissionFlags +public enum PermissionFlags : UInt32 { /// 无权限 [Description("无权限")] @@ -29,5 +29,5 @@ public enum PermissionFlags /// 所有权限 [Description("所有")] - All = 0x7FFFFFFF, + All = 0xFFFFFFFF, } diff --git a/XCode/Membership/角色.Biz.cs b/XCode/Membership/角色.Biz.cs index 0702a088a..39a74fb2d 100644 --- a/XCode/Membership/角色.Biz.cs +++ b/XCode/Membership/角色.Biz.cs @@ -346,7 +346,7 @@ public partial class Role : LogEntity, IRole /// 当前角色拥有的资源 [XmlIgnore, ScriptIgnore, IgnoreDataMember] - public Int32[] Resources { get { return Permissions.Keys.ToArray(); } } + public Int32[] Resources => Permissions.Keys.ToArray(); #endregion #region 业务 diff --git a/XUnitTest.XCode/Membership/PermissionFlagsTests.cs b/XUnitTest.XCode/Membership/PermissionFlagsTests.cs new file mode 100644 index 000000000..c11ce0b81 --- /dev/null +++ b/XUnitTest.XCode/Membership/PermissionFlagsTests.cs @@ -0,0 +1,23 @@ +using System; +using XCode.Membership; +using Xunit; + +namespace XUnitTest.XCode.Membership; + +public class PermissionFlagsTests +{ + [Fact] + public void Test1() + { + var pm = (PermissionFlags)0xFFFFFFFF; + Assert.Equal(PermissionFlags.All, pm); + Assert.Equal(0xFFFFFFFF, (UInt32)pm); + Assert.Equal(-1, (Int32)pm); + + var v = -1; + pm = (PermissionFlags)v; + Assert.Equal(PermissionFlags.All, pm); + Assert.Equal(0xFFFFFFFF, (UInt32)pm); + Assert.Equal(-1, (Int32)pm); + } +}