python用户权限管理_python---RBAC权限管理项目

本文介绍了基于Python的RBAC权限管理系统的设计,详细阐述了项目需求,如用户登录、角色权限差异等功能,并探讨了RBAC的核心概念、优势及数据库设计。通过多对多的用户角色关系,简化了权限管理,确保系统的安全与易维护。
摘要由CSDN通过智能技术生成

设计标准一  **** 项目需求描述:这是一个真实的项目后端管理平台       要实现如下的功能:

1.在管理页面输入用户名密码,可以登陆到主页

2.不同角色的用户显示的菜单个数不同

3.同一角色用户,不同的级别显示的功能按钮不同

比如*都是客户vip客户就有批量删除的功能 普通用户则没有权利删除

完成该权限管理系统RBAC的设计功能*数据库*

提示*   核心角色包括    用户  担任的角色不同 权限  菜单

注意*工作中每个项目都需要RBAC   权限管理

RBAC权限简介

权限简介二   ****   权限的作用

使用者的角度*

*  权力  :正在行使的权利

*  限制   :在限制范围内使用权力 也就是不可以行使权力

设计者的角度*

*  安全  :控制不同的角色  来合理的访问不同的资源   也就是有什么权力和等级来执行权限和按钮

* 对于我们做web应用系统来说,就是控制不同用户访问不同的页面

权限模型介绍  详细的设计过程

RBAC    权限管理系统的简称     用于处理 用户 角色 模块 菜单之间的关系

使用RBAC 作用* 限制访问权限的控制,保证安全! web系统中表现在实现控制不同用户访问不同页面,用户属于某个角色,角色上有某种权限和不同的功能按钮

RBAC的优势:

用户和角色的关系是 *** 多对多

1.简化了用户与权限的关系         因为多了一个角色用户可以更加方便地通过角色对用户尽心分组,分组完成之后就可以很方便的管理用户

2.易扩展易维护                 同一角色的功能和权力相同

权限控制流程

程序设计过程*

1.基于员工管理的数据库设计:

核心步骤*找对象  找属性  找关系

核心对象 *   用户    角色     模块/菜单  权限

核心对象   :公司  部门 员工 用户 角色  模块  权限

基本核心表格:

1.公司表

2.部门表

3.员工表----->  员工开通账户后就可以登陆平台了

4.系统用户表*一个员工一个账号*

5.角色表         *   角色和用户之间的关系   工作中简化之后     一个用户对应一个角色

角色和用户的关系是1-N的关系   *

6.菜单表                      角色和菜单    N-----N    多对多

角色表和菜单表借助一个中间表

专业数据库设计者Navicat Data Modeler

先设计出ER/实体关系模型

专业设计数据库的模型软件

PowerDesigner       /          Navicat  Data  Modeler

权限标志数字特点:权限的结果是列表中数据的唯一组合

15的组合就是1 + 2 +  4 +  8

12的组合就是  4+8

拓展:

给出一个列表 保证列表中的数字随机组合的和都是唯一的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的RBAC权限管理Python代码示例: ``` class User: def __init__(self, username, roles): self.username = username self.roles = roles class Role: def __init__(self, name, permissions): self.name = name self.permissions = permissions class Permission: def __init__(self, name, action): self.name = name self.action = action class RBAC: def __init__(self): self.roles = {} self.permissions = {} def add_role(self, role): self.roles[role.name] = role def add_permission(self, permission): self.permissions[permission.name] = permission def grant_permission(self, role_name, permission_name): role = self.roles.get(role_name) if role: permission = self.permissions.get(permission_name) if permission: role.permissions.append(permission) def has_permission(self, user, permission_name): for role_name in user.roles: role = self.roles.get(role_name) if role and permission_name in [p.name for p in role.permissions]: return True return False # Usage Example rbac = RBAC() # Define permissions create_permission = Permission('create', 'write') read_permission = Permission('read', 'read') update_permission = Permission('update', 'write') delete_permission = Permission('delete', 'write') # Add permissions to RBAC rbac.add_permission(create_permission) rbac.add_permission(read_permission) rbac.add_permission(update_permission) rbac.add_permission(delete_permission) # Define roles admin_role = Role('admin', [create_permission, read_permission, update_permission, delete_permission]) user_role = Role('user', [create_permission, read_permission]) # Add roles to RBAC rbac.add_role(admin_role) rbac.add_role(user_role) # Define users user1 = User('user1', ['user']) user2 = User('user2', ['admin']) # Check permissions print(rbac.has_permission(user1, 'create')) # True print(rbac.has_permission(user1, 'update')) # False print(rbac.has_permission(user2, 'update')) # True ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值