0

Я разрабатываю систему управления обучением.Django, используя/разрабатывая систему разрешений на уровне строк, когда у нас разные роли

В системе есть несколько Актеров, таких как Студент, Репетиторы, Администратор, Дин и т. Д. Теперь мне нужна система разрешений, которая может обрабатывать разные роли (учащиеся могут добавлять курсы в свою корзину, репетиторы могут использовать CRUD курс, админы также имеют доступ к финансовым частям и т. д.)

Основываясь на моих исследованиях, мне нужно иметь систему разрешений на уровне строк, которая может обрабатывать разные роли. Я видел некоторые приложения, такие как django-guardiandjang-permissionsdjango-rulez и т. Д. Но все еще путают, как создавать на их основе роли (они плохо документированы).

Может ли кто-нибудь дать мне подсказку, чтобы получить эту болезненную работу?

ответ

1

Django имеет очень приятный интерфейс API аутентификации/авторизации встроенный в

Я бы посоветовал вам прочитать последующий документ: https://docs.djangoproject.com/en/dev/topics/auth/ это дает вам основы.

Для вашего приложения наилучшим способом является настройка разрешений для объектов cetain, таких как разрешения на редактирование курсов. Затем вы можете использовать разрешенный декор для своих представлений, которые позволят вам выполнять эти действия. Например, если вы имели вид:

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».

Но, как я уже сказал, этот вопрос немного широк для конкретного ответа, так что лучше всего нащупать документ по указанному выше адресу.

+0

Спасибо за ваш ответ. Значит, вы имеете в виду, что нет необходимости в разрешении объекта (строки)? На самом деле я прочитал часть Auth в Django Doc .. – Soask

+1

нет, на мой взгляд, вы можете справиться с большинством вещей, как я изложил выше. Таким образом, вы получили доступ к объекту User из запроса. – Ctrlspc