問題タブ [django-permissions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1099 参照

django - django - django パーミッションの比較と django ルールの使用

現在、Django でアクセス制御を実装しようとしています。組み込みのアクセス許可について読みましたが、オブジェクトごとに処理されません。例えば、「作成者のみが自分のアイテムを削除できる」などの権限が必要です。そこで、django-guardian について読みました。繰り返しになりますが、考えてみると、制約が変更されたかどうかを管理および確認するのが難しい場合があります。

django-rules と呼ばれる、次に人気のある権限管理アプリを見てみましょう。これは私が必要とするものに合っているようです。ただし、django-rules にはモデル インスタンスが関与する必要があると思います (したがって、オブジェクト レベル)。つまり、「メンバーの領域」のような単純なビューが必要な場合、この機能は実行されません。

これにより、後者のシナリオには contrib の許可を、前者には django-rules の両方を使用することを考えるようになりました。ここでの私の質問は、両方の許可フレームワークを管理するのはどれほど簡単でしょうか?. たとえば、さまざまなユーザー グループがあります。管理者が (ビューへのアクセスを許可するために) 管理システムに特定のアクセス許可を追加したという重複シナリオについて心配しています。

これはよくあるケースだと思いますので、あなたの経験に基づいたアドバイスや推奨事項を謙虚に求めます。

0 投票する
2 に答える
972 参照

django - django認証権限を使用してgrappelliファイルブラウザへのアクセスを制限するには?

権限を使用してファイルブラウザへのユーザー アクセスを制限する必要があります。たとえば、「can_upload_files」権限を持つユーザーのみが、カスタム ダッシュボードで Filebrowser を表示できる必要があります。

これは可能ですか?

ありがとう!

0 投票する
1 に答える
3959 参照

django - djangoのユニットテスト中にユーザー権限を変更できません

最終的にアプリのテストをいくつか行うことにしましたが、ユーザーが別のユーザーを変更できるかどうかのテストに行き詰まっています (ユーザーのタイプによって異なります-django-rules を使用して、論理的なアクセス許可チェックを行うことができます。しかし、これは重要ではありません)

ここに私がこれまでに持っているコードがあります

アクセス許可を追加した後でも、ユーザーにはまだアクセス許可がありません。これは、テスト中に何も作成することが許可されていないためですか (これは悪い習慣ですか?)? または、djangoは何らかの方法でアクセス許可をキャッシュしますか? setUp で権限を追加すると機能しますが、同じテスト中に変更したかった (権限のある場合とない場合のテスト)。

前もって感謝します!

0 投票する
2 に答える
5448 参照

django - 汎用ビューにオブジェクト レベルの権限を追加する

状況は非常に単純です。私はマルチユーザー ブログ システムを書いています。システムは、所有者以外がブログ投稿を編集または削除できないようにする必要があります。私の見解では、一般的なビューを使用しています。

クラス BlogUpdateView(UpdateView): ...

@method_decorator を使用してディスパッチ メソッドを装飾する必要があることはわかっています。ただし、ほとんどの例は @method_decorator(login_required) またはモデル レベルの権限です。request.user がこのブログ投稿の作成者であるかどうかを確認するためにオブジェクト レベルのアクセス許可を適用するにはどうすればよいですか? たとえば、django-authority アプリを使用しようとしましたが、このファイルに BlogPermission クラスがあります。そして、このクラスでメソッドを定義しようとしました。

def blog_edit(self, ??, ??)

このメソッドには何を入れるべきですか?

そして、これを次のように呼び出します。 @method_decorator(permission_required('blog_permission.blog_edit(???)'))

ここには何を渡す必要がありますか?

更新: method_decorator コードを読んだ後、引数なしの関数しか受け入れられないことがわかりました。それが、permission_required がここで機能しない理由だと思います。しかし、これについての回避策は何ですか?

ソリューションの更新:

ディスパッチ メソッドでは、ユーザーのパーミッションを確認し、ユーザーがパーミッションを満たしていない場合は HttpResponseForbidden() を返します。

0 投票する
2 に答える
1919 参照

django - django-guardianのサンプルソースコード

誰かがdjango-guardianを使用する優れたオープンソースアプリを提案できますか?APIを理解するのに問題はありませんが、実装のベストプラクティス(データベース設計など)を理解するための例を見てみたいと思います。

0 投票する
2 に答える
11010 参照

django - django-object-permissions 対 django-guardian 対 django-authority

Django 1.2+ の 3 つの行レベルのアクセス許可ソリューションを見つけました

他よりも推奨されるものがあるかどうか、主な違いは何かなどを誰か教えてもらえますか?

0 投票する
2 に答える
3102 参照

django - Django グループと権限。FK を持つようにグループを拡張しますか?

私は、さまざまな学校がコンテンツをオンラインで管理できるようにする製品に取り組んでいます。

これには、私が自分で書いた役割ベースのアクセス制御ロジックの設定が含まれます。基本的に、各学校には、独自の権限セットを持つ独自のロール セットがあります。ソフトウェアのユーザーは、いつでも異なる役割を持つ複数の学校に所属することができます。

さまざまな理由から、私はこれを捨てて、代わりに Django の Groups and Permissions をdjango-guardian のようなライブラリと一緒に使用したいと考えています。私が直面している問題は、新しい学校ごとに外部キーを含め、Django や django-guardian などのライブラリでヘルパー メソッドを使用できるように、グループ モデルを拡張する方法です。

私が思いついた可能性のあるアプローチの 1 つは、「School 1 - Admin」、「School 1 - Teacher」、「School 2 - Admin」、「School 2 - Teacher」などのイベント名に基づいてグループを作成し、それに基づいてアクセス許可をクエリすることです。代わりにこれ。このようにしてはいけない正当な理由はありますか?

0 投票する
1 に答える
6343 参照

django - Django admin-ユーザーに特定のオブジェクト/フィールドへのアクセスを許可しますか?

管理者の「所有者」ログインを作成する必要があります。このモデル構造があるとします。

Owners一部のユーザーが参加しているというグループがあります。は管理ページにありProductPhotoます。TabularInlineProduct

今、所有者は編集する許可が必要です

  1. (主な目標) 製品のみproduct__in=user.products(つまり、基本的には、それらが所有する製品のみ)。

  2. (二次目標) 商品の説明写真のみ

Djangoの管理/許可システムでこれを行うにはどうすればよいですか?

0 投票する
1 に答える
546 参照

django - Django、さまざまな役割がある場合に行レベルの権限システムを使用/設計する

私は学習管理システムを開発しています。

システムには、Student、Tutors、Admin、Deanなどの複数のアクターがあります。次に、さまざまな役割を処理できる許可システムが必要です(Studentsはコースをバスケットに追加でき、TutorsはコースをCRUDでき、Adminsは財務部分にもアクセスできます)同様に、など)

私の調査に基づいて、さまざまな役割を処理できる行レベルの権限システムが必要です。などのようなアプリを見たことがありますがdjango-guardian djang-permissions django-rulez、それらに基づいてロールを設計する方法についてはまだ混乱しています(それらは十分に文書化されていません)。

誰かが私にこのつらい仕事を成し遂げるためのヒントを与えることができますか?