网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

get_permissions授权获取当前用户的权限列表-创新互联

题意:
假设已经存在函数 get_permissions可以获取当前用户的权限列表, 设计一个权限管理类,既可以作为装饰器,对一个函数授权,也可以作为上下文管理,对一段代码授权
例如

成都创新互联公司坚实的技术研发基础赢得了行业内的良好口碑,公司成立十多年来,为上千余家企业提供过网站建设、软件开发、搜索引擎优化技术、互联网大数据整合营销服务,多年的技术服务成功经验、众多的客户使我们能懂得更多,做得更好。"让您的网站跑起来"是我们一直追求的目标!
permissions = get_permissions()

if 'admin' in permissions:

   ## do somthings

else:

  raise Exception('Permissions denied')

分析:
权限检查的一般都是用装饰器的方法实现
demo:

def get_permissions():
   return "root" 

class Requrie:
   def __init__(self,permissions):
     self.permissions = permissions

   def check(self):
     if len(set(self.permissions).intersection(get_permissions())) <= 0:
         raise Exception('Permissions denied')

   def __call__(self,fn):
     @wraps(fn)
     def wrap(*args, **kwargs):
       self.check()
       return fn(*args, **kwargs)
     return wrap
   def __enter__(self):
     self.check()

   def __exit__(self, *args, **kwargs):
     pass

   def __get__(self, instance, cls): # 类作为装饰器,一定要这样用
     type.MethodType(self, instance)

@Requrie({"admin", 'root'})
def reboot():
   pass 

def kill():
   print("i will kill something")
   with  Requrie("root"):
     print('kill')

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:get_permissions授权获取当前用户的权限列表-创新互联
网站URL:http://bjjierui.cn/article/dgpscp.html

其他资讯