2012-01-18 27 views
0

是否建議或冗餘設置模板和視圖的權限?我應該在模板和視圖中使用Django權限檢查嗎?

考慮任何數據操作到數據庫是通過POST

如果下面的足夠權限?

{% if perms.system.view_employee %} 
    <!-- content here --> 
{% else %} 
    <h1>Sorry you do not have permission to access this page<h2> 
{% endif %} 

還是我也應該實施服務器端檢查(這是否是多餘的,這樣做或必要)?

def my_view(request): 
    if not request.user.has_perm('polls.can_vote'): 
     return HttpResponse("You can't access this page") 
    else: 
     # do stuff 
     ... 
+0

它是如何設置權限? – demalexx 2012-01-18 05:24:54

+0

錯誤添加權限檢查 – 2012-01-18 10:50:25

+0

無論如何,沒有足夠的信息來回答你的問題。如果你提供更多的信息和一些代碼,你會得到一個很好的答案。 – demalexx 2012-01-18 11:37:00

回答

6
  1. 檢查模板是服務器端。在模板和視圖
  2. 權限檢查不會有異曲同工之妙:在視圖

    • 檢查權限將禁止進入整個頁面。當這個頁面和它嵌入的功能是APO時,你可以這樣做。你處理資源訪問。
    • 檢查模板中的權限不允許顯示模板的部分。當你希望人們能夠訪問該頁面時,你可以這樣做,但有些內容你不希望他們在頁面上看到。你處理顯示。

在你的具體的例子,你必須設置視圖的權限檢查dissallow任何人做這個操作。通常,如果使用POST訪問視圖,他們很少有機會希望進行模板權限檢查,因爲POST請求是本質上的操作。

通常你會希望模板權限檢查,如果你:

  • 擁有人不許看(如敏感數據)
  • 要提高可用性,以顯示元素的頁面的某些部分(菜單,表格等),只與其權限級別相關。事實上,如果該用戶無權訪問管理員,則在菜單中顯示與管理員的鏈接是沒有用的。
相關問題