首页 > 其他分享 >二进制权限管理

二进制权限管理

时间:2022-12-09 00:44:06浏览次数:47  
标签:NewPermission 管理 二进制 public int 权限 final

public class NewPermission {
        // 是否允许查询,二进制第1位,0表示否,1表示是
        public static final int ALLOW_SELECT = 1 << 0; // 0001

        // 是否允许新增,二进制第2位,0表示否,1表示是
        public static final int ALLOW_INSERT = 1 << 1; // 0010

        // 是否允许修改,二进制第3位,0表示否,1表示是
        public static final int ALLOW_UPDATE = 1 << 2; // 0100

        // 是否允许删除,二进制第4位,0表示否,1表示是
        public static final int ALLOW_DELETE = 1 << 3; // 1000

        // 存储目前的权限状态
        private int flag;

        /**
         *  重新设置权限
         */
        public void setPermission(int permission) {
                flag = permission;
        }

        /**
         *  添加一项或多项权限
         */
        public void enable(int permission) {
                flag |= permission;
        }

        /**
         *  删除一项或多项权限
         */
        public void disable(int permission) {
                flag &= ~permission;
        }

        /**
         *  是否拥某些权限
         */
        public boolean isAllow(int permission) {
                return (flag & permission) == permission;
        }

        /**
         *  是否禁用了某些权限
         */
        public boolean isNotAllow(int permission) {
                return (flag & permission) == 0;
        }

        /**
         *  是否仅仅拥有某些权限
         */
        public boolean isOnlyAllow(int permission) {
                return flag == permission;
        }
}

  

标签:NewPermission,管理,二进制,public,int,权限,final
From: https://www.cnblogs.com/qq812256/p/16967835.html

相关文章

  • pyqt5图书管理系统--2、登录页面设计
    紧接注册页面设计;登录页面设计也是图书管理系统其中的一个模块,模块代码结构如下:    导入的模块importsysfromPyQt5.QtWidgetsimport*importqdarkstylefromP......
  • SpringBoot统一日志管理
    Springboot中统一日志管理一、为什么要用日志?一般分为两个大类:操作日志和系统日志**操作日志:**用户在操作软件时记录下来的操作步骤,便于用户自己查看。主要针对的是用户。**......
  • 期末复习-操作系统与linux管理
    liunx操作系统第一章操作系统引论p2-p51.什么是操作系统操作系统是管理和控制着计算机系统中的各种软硬件资源,合理地组织计算机的工作流程,为用户使用计算机提供接口......
  • SpringBoot中统一日志管理
    Springboot中统一日志管理一、为什么要用日志?一般分为两个大类:操作日志和系统日志**操作日志:**用户在操作软件时记录下来的操作步骤,便于用户自己查看。主要针对......
  • day46 6-14 mybatis#{}与$的区别、一二级缓存 & 6-15 事务管理 & SSM三大框架简单回顾
    mybatis——OGNL表达式(mapperxml文件内if标签内)OGNL全称Object-GraphNavigationLanguage,是Java中的一个开源的表达式语言,用于访问对象数据。也是mybatis实现动态......
  • 二进制链表转整数 从链表中删去总和值为零的连续节点 判断国际象棋棋盘中一个格子的
    1290.二进制链表转整数val提取出来,再加权intlen=0;Listlist=newArrayList<>();for(ListNodecur=head;cur!=null;cur=cur.next){list.add(cur.val);......
  • mybatis中的事务管理
    mybatis中的事务控制mybatis中执行sql是从SqlSession开始的,SqlSession中提供了各种操作数据库的方法SqlSession中持有执行器Executor对象,通过执行器来执行sqlmybatis......
  • 解决二进制兼容的问题
    一个动态链接到较早版本的库的程序,在不经过重新编译的情况下能够继续运行在新版本的库,这样的库即“二进制兼容”.h1/*二进制兼容库2*隐藏实现细节:我们只需要发布......
  • LWIP 的动态内存管理
    LWIP的动态内存管理机制文件mem.hmem.c memp.c memp.h学习LWIP的动态内存管理机制可以有三种:C运行时库自带的内存分配策略(MEM_LIBC_MALLOC);动态内存堆(HEAP)分配策......
  • freertos 内存管理
    每当任务,队列或是信号量被创建时,内核需要进行动态内存分配。当内核请求内存时,其调用pvPortMalloc()而不是直接调用malloc();当释放内存时,调用vPortF......