смешанный URL-адрес и обход - PullRequest
0 голосов
/ 02 ноября 2011

Я работал над приложением, которое использует диспетчеризацию URL. Я настроил свою корневую фабрику, основываясь на замечательной информации, найденной здесь: https://github.com/mmerickel/pyramid_auth_demo (спасибо, Майкл!)

Теперь я тоже пытаюсь использовать pyramid_formalchemy. Похоже, pyramid_formalchemy использует обход для определения авторизации. Это нормально, но я застрял в одной точке ...

Для объектов обхода необходимо учитывать местоположение, что означает, что им нужно иметь имя и родительский объект. Итак, у меня есть объект User.

class User(Base):
    __name__ = 'user'
    __parent__ = ...

Я определил желаемые списки ACL в моем RootFactory. Все это настраивается, когда вызывается конструктор RootFactory. Я хотел бы установить родителей всех моих классов в RootFactory, но создать экземпляр RootFactory, который вам нужно передать запрос конструктору (особенно потому, что мои подклассы RootFactory pyramid_formalchemy.resources.Models)

Но при настройке моих занятий у меня нет запроса.

Как правильно установить parent в моих классах на RootFactory?

Спасибо.

1 Ответ

0 голосов
/ 02 ноября 2011

Я ответил на несколько похожих вопросов об обработке ACL в pyramid_formalchemy здесь:

Интерфейс администрирования Pyramid и FormAlchemy

В основном pyramid_formalchemy определяет собственную корневую фабрику для всех URL-адресов администратора. Вы можете переопределить его и определить __acl__ там (см. ModelsWithACL), который, вероятно, решит большинство ваших проблем. Из этого корня pyramid_formalchemy автоматически установит ссылки __parent__. Поэтому, если вы определите какой-то особый __acl__ для вашего объекта, который сначала будет проверен, тогда ACLAuthorizationPolicy будет смотреть на __parent__, который будет Models или ModelsWithACL объектом.

Смотри также:

http://docs.formalchemy.org/pyramid_formalchemy/#setting-permissions

...