将权限组件应用到新项目
生活随笔
收集整理的這篇文章主要介紹了
将权限组件应用到新项目
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 拷貝rbac組件到新的項目中,注冊app
2. 修改用戶表,繼承rbac中的User
class User(models.Model):"""用戶表"""# name = models.CharField(max_length=32, verbose_name='名稱')# password = models.CharField(max_length=32, verbose_name='密碼')roles = models.ManyToManyField(Role, verbose_name='用戶擁有的角色', blank=True)# def __str__(self):# return self.nameclass Meta:abstract = True # 數據庫遷移時候不會生成表,用來做基類class UserProfile(User, models.Model):3.執行數據庫遷移命令
1.刪除rbac下的migrations中的記錄
2. 注掉admin中的User表
3.roles = models.ManyToManyField(Role, verbose_name='用戶擁有的角色', blank=True) # 關聯的字段不要寫成字符串形式
4.設置rbac的url
url(r'rbac/', include('rbac.urls',namespace='rbac'))5.菜單管理
6.權限的錄入
1.所有的url要有別名name
2.不要忽略rbac? namespace
3.注意url和別名的長度
4.構建層級結構
7.角色管理
8. 分配權限
1.注意用新的用戶表替換rbac中的User
2.給不同角色分配權限
3.給不同用戶分配角色
9.應用上權限
1.應用中間件? ?在settings中寫上權限的配置
# 權限的key PERMISSION_SESSION_KEY = 'permissions' # 菜單的key PERMISSION_MENU_KEY = 'menus' WHITE_LIST = [r'^/login/$',r'^/reg/$',r'^/admin/.*', ]NO_PERMISSION_LIST = [r'^/index/$',r'^/logout/$', ]# 路徑導航 BREADCRUMB = 'breadcrumb_list' # 路徑導航 CURRENT_MENU = 'current_parent_id'? ?2.登陸成功后權限的初始化
from rbac.service.permission import init_permisson # 權限信息的初始化 init_permisson(request,obj)10.動態生成二級菜單
? ? 1.在母版中使用
``` 導入CSS js {% load rbac %} {% menu request %} ```11.應用路徑導航
{% breadcrumb request %}12.權限控制到按鈕級別
{% load rbac %} {% if request|has_permission:"consult_add" %}<a href="{% url 'consult_add' %}" class="btn btn-primary btn-sm">添加</a> {% endif %}?
修改用戶表,繼承rbac中的User
轉載于:https://www.cnblogs.com/zwq-/p/10229243.html
總結
以上是生活随笔為你收集整理的将权限组件应用到新项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置Mysql实现主从复制与读写分离
- 下一篇: trade-off 翻译