[Django]使用者權限學習系列之設計自有許可權管理系統設計思路,django許可權管理系統

來源:互聯網
上載者:User

[Django]使用者權限學習系列之設計自有許可權管理系統設計思路,django許可權管理系統

若在閱讀本片文章遇到許可權操作問題,請查看本系列的前兩章!

http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ-LQJ/p/5604331.html

現在步入正題,這篇文章是關於自有許可權管理系統設計的思路描述,自有許可權管理系統是拋棄django內建的後台管理介面,基於自己編寫的許可權管理介面對使用者權限的管理!

首先:(自己設計的許可權系統介面,代碼將後續文章中寫出)

許可權管理介面主要是添加和刪除許可權,查看官方文檔可知道permission有三個欄位,content_type_id(權限類別型),codename(許可權名稱),name(許可權描述)

查看,可知許可權名稱顯示的中文,django後台內建的是英文,如:

當然其中的中文是我自己添加進去的,採用中文的好處還有一個,就是可以通過後台利用Regex篩選出只是中文的許可權,這樣就可以不用顯示出英文的許可權導致使用者看不懂了,中文的正則是[\u4e00-\u9fa5].

後台view查詢中文許可權代碼如下:

#匹配中文許可權(單個查詢)c = Permission.objects.get(codename__iregex=u'[\u4e00-\u9fa5]')print c#匹配中文許可權(全部查詢)Permission.objects.filter(codename__iregex=u'[\u4e00-\u9fa5]').values()

 

使用者管理介面是添加使用者和對使用者進行許可權分配操作,如:

或許有人會問道,使用者權限配置好後,如何?對一個網頁或者操作的許可權控制呢?

其實代碼和django官網中差不多,在模板中檢驗許可權代碼如下:

 {% if perms.auth.業務發展 %} <p class="text-center"><a href="{% url 'keywork' %}">業務發展</a></p> {% else %}<p class="text-center"><a href="javascript:alert('無許可權,請聯絡管理員!')">業務發展</a></p>
{% endif %}

view中檢驗許可權如下


u = User.objects.get(username='帳號')u.has_perm(u"auth.\u4e1a\u52a1\u53d1\u5c55")

上面這種,需要先用b = list(User.objects.get(username='帳號').get_all_permissions())查看許可權的中文對應pyhton中顯示的代碼

具體製作過程,將在後續的文章中慢慢展開,為了給大家還原一個開發許可權系統的真是過程,而不是只貼一大代碼上來(ps:自己以前就是這樣的)......

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.