許可權元件應用

2022-08-28 19:39:11 字數 1699 閱讀 2203

4.許可權元件的應用 **

1. 拷貝rbac元件到新專案中,並且註冊

2. 遷移資料庫

1. 修改rbac使用者表

manytomanyfield 中 關聯寫上role ,不要寫字串

```class user(models.model):

"""使用者表"""

# name = models.charfield('使用者名稱', max_length=32)

# pwd = models.charfield('密碼', max_length=32)

roles = models.manytomanyfield(role, verbose_name='使用者所擁有的角色', blank=true)

class meta:

abstract = true # 遷移的時候不生成表,繼承使用 當基類

```2. 已有的使用者表繼承rbac的user

```class userprofile(user)

```3. 執行資料庫遷移的命令

python manage.py makemigrations

python manage.py migrate

3. 配置上rbac的路由

```python

url(r'^rbac/',include('rbac.urls',namespace='rbac')),

```4. 角色管理

新增角色

5. 選單管理

新增選單

6. 批量操作許可權

錄入許可權的標題、分配一級選單下的二級選單和子許可權

7. 分配許可權

許可權分配的檢視中 rbac的使用者類替換成 使用使用者表的類

新增使用者 給使用者分配角色 給角色分配許可權

8. 應用上許可權

1. 加上許可權的中介軟體

```middleware = [

...'rbac.middlewares.rbac.rbacmiddleware'

]```

2. 新增上許可權的相關配置

```# 許可權相關的配置

# 白名單

white_list = [

r'^/crm/login/$',

r'^/crm/reg/$',

r'^/admin/.*',

]# 免認證的url位址

no_permission_list = [

r'^/crm/index/$',

]# 存許可權的session key

permission_session_key = 'permission'

# 存選單的session key

menu_session_key = 'menu'

```3. 登入成功許可權資訊的初始化

```python

from rbac.service.init_permission import init_permission

認證成功:

# 進行許可權資訊的初始化(儲存許可權資訊 選單資訊 登入狀態)

init_permission(request,obj)

```9. 動態生成二級選單

``````

加上css js

``````

10. 路徑導航

``````

11. 許可權控制到按鈕級別

```html

新增```

drf 許可權元件

目錄許可權就是某些功能只對特定的使用者開放,比如django中建立使用者可分為超級使用者和普通使用者,此時超級使用者就有許可權進入後台管理系統,而普通使用者就沒有許可權,這是怎麼做到的呢?這就是許可權元件的作用。from rest framework.permissions import basep...

我的許可權元件

首先 設定三種要素 使用者 群組 角色。使用者為登入用,對應到人。群組對應為使用者的集合,是一種特殊的使用者。角色為一組許可權項的集合,使用者 群組 都有各自的角色。許可權的實現通過 permission 類和rule 類來實現。permission 供外部呼叫,rule 為乙個介面,為許可權判斷規...

許可權元件之rbac

rbac 基於角色的許可權訪問控制 role based access control rbac的主要流程 給每個角色賦予不同的許可權,是這個角色的員工都有這個角色的所有許可權。乙個角色可以有多個人員擔任,乙個員工可以擔任多個角色 比如部門經理 業務員等 當員工成功登陸系統時,系統需要獲取這個員工的...