优化权限项PermissionFlags,改为UInt32,最大值0xFFFFFFFF,数据库存储-1

This commit is contained in:
大石头 2023-07-08 09:09:00 +08:00
parent 373c4e271c
commit 56cd520fce
3 changed files with 26 additions and 3 deletions

View File

@ -5,7 +5,7 @@ namespace XCode.Membership;
/// <summary>操作权限</summary>
[Flags]
[Description("操作权限")]
public enum PermissionFlags
public enum PermissionFlags : UInt32
{
/// <summary>无权限</summary>
[Description("无权限")]
@ -29,5 +29,5 @@ public enum PermissionFlags
/// <summary>所有权限</summary>
[Description("所有")]
All = 0x7FFFFFFF,
All = 0xFFFFFFFF,
}

View File

@ -346,7 +346,7 @@ public partial class Role : LogEntity<Role>, IRole
/// <summary>当前角色拥有的资源</summary>
[XmlIgnore, ScriptIgnore, IgnoreDataMember]
public Int32[] Resources { get { return Permissions.Keys.ToArray(); } }
public Int32[] Resources => Permissions.Keys.ToArray();
#endregion
#region

View File

@ -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);
}
}