Иногда нужно чтобы анонимный пользователь мог выполнять
действия с ролью Manager.
В случае использования Python Scripts такая возможность
реализуется использованием proxy- роли. Для метода класса
вида это может быть выполнено следующим образом:
from AccessControl.SecurityManagement
import newSecurityManager, noSecurityManager
...
user = self.context.getWrappedOwner()
newSecurityManager(self.request, user)
self.doProtectedMethod()
noSecurityManager()
В результате выполнения кода создается временный
пользователь с правами администратора. Созание такого
пользователя внутри метода класса позволяет анонимному
пользователю (при наличии соответствующих
методов и интерфейса доступа) действовать как
администратор.
Комментариев нет:
Отправить комментарий