############### 表結構分析 ################
"""表結構設計:
1,四張表
使用者表,userinfo,這個表本身不會被建立,而是用來被真正的使用者表做繼承,
角色表,role,
選單表,menu,
許可權表,permission,
2,關聯關係
使用者表和角色表多對多關聯,
角色表和許可權表多對多關聯,
許可權表和選單表一對多關聯,
"""
############### 提供的操作 ################
"""提供的操作
1,角色新增,只是選單新增,
2,選單新增,
新增一級選單,這是在選單表中儲存的
新增二級選單,如果許可權表關聯了選單表,就是選單,沒有關聯就不是選單,
新增選單許可權,對於非二級選單的需要關聯是二級選單的id,用來展開許可權,這個設計可以把許可權控制到按鈕級別,
這種是在建立選單和許可權的關係,
3,分配許可權,可以為客戶分配角色,為角色分配許可權,
這種其實就是建立員工和角色,角色和選單之間的關聯關係,都是多對多的,
這個分配的角色就是角色頁面建立的,
這個分配許可權就是選單頁面建立的,
另外使用者可以繫結角色,
"""
############### 許可權初始化 ################
"""許可權初始化
1,在登陸的時候,把選單和許可權拿出來,然後放入session裡面去,
2,這一步涉及到了django session的操作,
原理就是客戶端儲存cookie 格式是 sessionid :sessionkey
sessionkey是自動生成的
sessionkkey會保持在伺服器端,然後對應的有sessiondata,
這種資料在服務端,會比較安全,
"""
############### 許可權元件 ################
"""許可權校驗
1,使用中介軟體來校驗許可權,這樣每乙個進來的url都會經過中介軟體
2,邏輯就是獲取當前訪問的url,然後取出初始化中儲存到session中的url,看看是否匹配到,匹配到就是有許可權的,
3,settings.valid_url_list,
白名單中的url無需許可權驗證即可訪問
4,settings.no_permission_list
需要登入,但無需許可權校驗,
"""
############### 許可權元件 ################
"""許可權初始化
在登陸的時候做許可權初始化,這個許可權初始化做了什麼?
需要傳遞兩個引數,user和request,user是當前使用者,request是請求相關的所有資訊
user是乙個物件,user = models.userinfo.objects.filter(name=user, password=pwd).first()
做了兩個事情:
1,根據這個使用者獲取到他所有的許可權,並且放入session,settings.permission_session_key
2,把選單和許可權,放入session,settings.menu_session_key
"""
############### 許可權元件 ################
crm專案 stark元件分析
stark元件 這個stark元件是非常神奇的 1,獨立的乙個元件 2,沒有model 3,沒有views stark元件 stark元件站點類 這個是乙個重點類,應該是研究這個元件的起點 做了幾件事 1,模仿admin,利用了單例模式,2,模仿admin,可以對每乙個表進行註冊 這一步引數就是模型...
CRM專案之stark元件 2
那麼從今天開始呢,我們就要開始設計屬於我們自己的admin元件,起個名字就叫stark吧 當然你願意叫什麼都可以 仿照admin元件實現流程,stark元件要實現四件事情 在settings配置檔案中,確保 django.contrib.admin django.contrib.auth djang...
自定義元件之crm的許可權
我們的元件已經寫完了,但是當我們的其他專案要用到這個元件的時候,就需要把這個元件整個拿過去,所以我們應該把templates和stark放在一起。直接將templates拖到stark元件下。這樣做也是可以的,不會報錯,是因為settings中的templates的配置。然後我們來了解一下什麼是許可...