2012-01-18 11 views
0

テンプレートとビューの権限を設定することをお勧めしますか?テンプレートとビューでDjango権限のチェックを使うべきですか?

は、アクセス権のために十分な、以下の場合にはDBへのデータ操作は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

+0

パーミッションチェックを追加する際にエラーが発生しました –

+0

とにかく、あなたの質問に答えるのに十分な情報がありません。いくつかのコードでより多くの情報を提供すれば、良い答えが得られます。 – demalexx

答えて

6
  1. テンプレート内のチェックは、サーバー側です。テンプレートで、ビューで
  2. 権限チェックは、同じ目的を持っていない:

    • ビューのアクセス許可を確認するページ全体へのアクセスを禁止します。このページと埋め込み機能がAPO用である場合にこれを行います。あなたはリソースへのアクセスを扱います。
    • テンプレートの権限を確認すると、テンプレートの一部が表示されません。人々がページにアクセスできるようにするには、これを行いますが、ページに表示したくないものがあります。あなたはディスプレイを扱う。あなたの特定の例では

、あなたはこの操作を行うには誰をdissallowするビューに権限チェックを設定する必要があります。通常、POSTを使用してビューにアクセスする場合、POSTリクエストは本質的なアクションであるため、テンプレート許可チェックが必要なことはほとんどありません。

ます場合は、通常、テンプレートの権限のチェックをお勧めします:

  • は、ページの一部が、人は(機密データのように)見ることが許可されていない持って
  • は、要素(メニューを表示するには、ユーザビリティを向上させたいです、フォームなど)を作成することができます。その人が管理者にアクセスする権利を持っていない場合、実際にメニューに管理者へのリンクを表示することは役に立たない。
関連する問題