0

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

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

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

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

4

1 に答える 1

1

Django には、非常に優れた認証/承認 API が組み込まれています。

次のドキュメントを読むことをお勧めします: https://docs.djangoproject.com/en/dev/topics/auth/これにより、基本が得られます。

アプリケーションにとって最善の方法は、コースを編集する権限など、特定のものに対する権限を設定することです。次に、これらのことを実行できるようにするビューに、許可が必要なデコレーターを使用できます。たとえば、ビューがある場合:

def edit_course(request):
    ...#handle form rendering/submission for course model

このビューの上に追加できます:

@permission_required('course_editor')
def edit_course(request):
    ...#handle form rendering/submission for course model

そして、この権限を持つユーザーのみがその機能にアクセスできます。

権限を割り当てることができるグループ (教師グループなど) を作成することで、さらに進めることができます。次に、すべてのスタッフをこのグループに割り当てることができ、彼らはこの「course_editor」権限を継承します。

しかし、私が言ったように、この質問は特定の回答に対して少し広いので、最善の策は上記の URL でドキュメントを理解することです。

于 2012-07-04T14:39:45.267 に答える