zoukankan      html  css  js  c++  java
  • 位运算在用户权限管理中的应用

    简介

    位运算在ACM等算法比赛中因其运算速度而被广泛使用,在实际应用中虽然用的不算广泛,但在某些方面使用是有奇效的

    场景-用户权限

    class Permision:
        FOLLOW = 0x01
        COMMENT = 0x02
        WRITE_ARTICLES = 0x04
        MODERATE_COMMENTS = 0x08
        ADMIN = 0x80

    这是《flask -web开发实战》中的一个例子,用户拥有5种权限类型,是否拥有这种权限占一位表示,书中留了3位以便以后扩充

    那么任意一个用户的拥有的总权限即其拥有权限进行或运算

    permisions = user.Permision.FOLLOW|
        user.Permision.COMMENT|
        user.Permision.WRITE_ARTICLES

    那么如何对该用户是否又有该权限进行检查呢

    def can(permision):
        if user.permisions & permision == permision:
            return True

    如果将用户的总权限与检查的权限进行与运算,和原权限相同,那么该用户拥有该权限。

  • 相关阅读:
    某题2
    某题1
    某题
    DAY 7
    DAY 4
    数据结构(六)图
    【转载】大数据面试知识图谱
    数据结构(四)二叉树
    Scala(一)基础
    Java虚拟机(一)
  • 原文地址:https://www.cnblogs.com/lynsyklate/p/6443409.html
Copyright © 2011-2022 走看看