Permissions 位掩码权限-扩展/撤消权限
我有位掩码权限+角色集:Permissions 位掩码权限-扩展/撤消权限,permissions,bit-manipulation,bitmask,bit-masks,Permissions,Bit Manipulation,Bitmask,Bit Masks,我有位掩码权限+角色集: { EDIT: '1', DELETE: '2', ADD: '4', VIEW: '8', } 我正在寻找一种最简单的方法,通过按位操作扩展和撤销用户权限 例如,用户已将7设置为权限,允许他编辑,删除和添加 我想添加视图和添加或12 用12扩展7成为15的最简单公式是什么,反之亦然 如何撤销用户现有权限12(VIEW,ADD)以撤销(DELETE,ADD)-6,使其等于8?好的,我想扩展一下,您可以使用按位或(|)类似的操作符 //
{
EDIT: '1',
DELETE: '2',
ADD: '4',
VIEW: '8',
}
我正在寻找一种最简单的方法,通过按位操作扩展和撤销用户权限
例如,用户已将7设置为权限,允许他编辑
,删除
和添加
我想添加视图
和添加
或12
用12扩展7成为15的最简单公式是什么,反之亦然
如何撤销用户现有权限12(
VIEW
,ADD
)以撤销(DELETE
,ADD
)-6,使其等于8?好的,我想扩展一下,您可以使用按位或(|)类似的操作符
// Extend Permissions
var userPermissions = 7;
var addPermissions = 12;
var newPermissions = userPermissions | addPermissions // 7 | 12 = 15
要撤销,您可以使用按位and(&)
并从用户权限中减去它,如:
// Revoke Permissions
var userPermissions = 12;
var revokePermissions = 6;
var newPermissions = userPermissions - (userPermissions & revokePermissions) // 12 - (12 & 6) = 8
扩展:7位或12=15;撤销:12位和非位(6)=9