私が知る限り、djangoで使用できる権限レベルは3つあります(django自体でも、サードパーティアプリケーションでも可能です)。 1)モデルベースの許可 2)オブジェクトベースの許可 3)行ベースのアクセス許可Djangoのさまざまな権限レベルの相違点
あなたは私の許可制度のこれらの3つのレベルの間の正確な違いを伝える場合、それは素晴らしいことです。
私が知る限り、djangoで使用できる権限レベルは3つあります(django自体でも、サードパーティアプリケーションでも可能です)。 1)モデルベースの許可 2)オブジェクトベースの許可 3)行ベースのアクセス許可Djangoのさまざまな権限レベルの相違点
あなたは私の許可制度のこれらの3つのレベルの間の正確な違いを伝える場合、それは素晴らしいことです。
あなたはその情報がどこにあるのかわかりませんが、それは遠隔では正確ではありません。 Djangoは技術的に許可システムを持っていません。 auth
contribアプリは「権限」のシステムを追加しますが、オプションであり、まったく別のもので置き換えることができます。 admin
アプリ(また、contribパッケージ、およびオプション)はauth
を使用していますので、Django管理者、またはauth
パッケージをあなた自身のアプリケーションで使用している場合は、話すことができます。
には、User
、Group
、Permission
があります。 User
は、 "スーパーユーザー"または "通常の"ユーザーフレーバーのいずれかになり、sync_db(auth
はINSTALLED_APPS
に含まれています)を実行すると、プロジェクトのすべてのモデルが自動的にPermission
を3つ取得します:can_add、can_change、およびcan_delete。 "スーパーユーザ"(is_superuser == True
)とマークされたUser
は、どのモデルでもアクションを実行できます。他のユーザーには、Permission
が明示的に割り当てられている必要があります。さらに、Group
にはPermission
が割り当てられており、に割り当てられたUser
はこれらのアクセス許可を継承します。
したがって、ユーザーはモデルの操作、一部またはすべてのモデルの追加、変更、または削除の機能の組み合わせ、またはモデルを使用したすべての操作を行うことはできません。 「インスタンス」という意味で、「オブジェクトベースの」パーミッションの概念はありません。モデルのすべてのインスタンスを編集することも、モデルを編集することもできません。 「行ベース」のパーミッションの概念もありません。データベーステーブルの行は、単にモデルのインスタンスに過ぎません。
しかし、以下のリンクによれば、私たちはオブジェクトベースの許可を持っています。 "Django-Authority"と "Django-Guardian"は、モデルベースのレベル以外の権限レベルを提供するために利用できるアプリケーションの例です。 http://djangopackages.com/grids/g/perms/ –
これはDjangoとの関係がないことを除いて、Djangoに所属していない全く別のパッケージです。私が言ったように、 'auth'パッケージは、何か他のものに完全に置き換えられたり、単に何か他のもので補完されたりする可能性があります。しかし、その時点で、私たちはDjangoについてもう話していません。 –
私はこれを知っています。だから私はオリジナルの投稿にサードパーティーのアプリを挙げたのです。 今、私は本当にこれらの権限レベルの違いを知る必要があります。現時点で最も人気があり、安定しているパッケージはどれですか? –
許可レベルのヒントを教えてください。 – sergzach
ネットには多くの情報源があります。これは良い例です: http://djangopackages.com/grids/g/perms/ –