У вас уже есть «Дерево ресурсов», создав ресурс Root
в вашем проекте.Вам просто нужно добавить узел для него posts
, который будет возвращать объект Post
с конкретным __acl__
, который содержит только идентификатор авторизованного пользователя.Затем вы можете использовать свой маршрут edit_posts
, используя traverse='/posts/{post_id}'
, чтобы перебросить дерево ресурсов к объекту Post
с __acl__
на нем.
Это не сложно, и это способ получитьПирамида сделает это за вас.
Если вы не хотите использовать аргумент permission
, вы можете выполнить авторизацию внутри самого представления, как предложил Кирк.
Также, есливам не нравится этот метод добавления __acl__
свойств и обхода для авторизации, вы можете реализовать свой собственный AuthorizationPolicy
, чтобы делать то, что вы хотите, с заданным списком принципалов и разрешением.
Суть системы аутентификации Pyramid в том, что она есть, и это здорово.Пирамида ни в коем случае не требует, чтобы вы ее использовали, а для представлений, которые ее не используют, при работе с ней не происходит никакого влияния на производительность.