سؤال

أرغب في إنشاء مدقق مسند مخصص لإعادة تشغيل قادر على الوصول إلى معلمات URL والتحقق من صحة شيء ما. لكنني أرغب في استخدام ALBER_ONLY لتعيين مدقق الإذن هذا في جميع نطاق وحدة التحكم. شيء مثل:

class MyController(BaseController):

    allow_only = All(not_anonymous(msg=l_(u'You must be logged on')),
                     my_custom_predicate(msg=l_(u'something wrong')))

    def index(self, **kw):
        return dict()

بعد ذلك ، يجب على my_custom_predicate التحقق من معلمات عنوان URL لكل طلب في كل طريقة myController ، والقيام بكل ما تفعله. المشكلة هي مجرد: كيفية السماح my_custom_predicate بالتحقق من معلمات عنوان URL ، باستخدامه بهذه الطريقة كتبت أعلاه.

هل كانت مفيدة؟

المحلول

قد تكون بحاجة إلى استخدام ControllerProtector

from repoze.what.plugins.pylonshq import ControllerProtector

allow_only = All(not_anonymous(msg=l_(u'You must be logged on')),
                     my_custom_predicate(msg=l_(u'something wrong')))

@ControllerProtector(allow_only)
class MyController(BaseController):

    def index(self, **kw):
        return dict()

انظر المستندات في http://code.gustavonarea.net/repoze.what-pylons/api.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top