Beispiel #1
0
    def extractCredentials(self, request):
        """Extracts credentials from a session if they exist."""
        if not IHTTPRequest.providedBy(request):
            return None

        sessionData = ISession(request)[
            'zope.app.authentication.browserplugins']
        login = request.get(self.loginfield, None)
        password = request.get(self.passwordfield, None)
        if login and password:
            credentials = SessionCredentials(login, password)
            sessionData['credentials'] = credentials
        credentials = sessionData.get('credentials', None)
        if not credentials:
            return None
        return {'login': credentials.getLogin(),
                'password': credentials.getPassword()}
Beispiel #2
0
    def update(self):
        remember = self.request.form.get('worldcookery.remember')
        if remember is not None:
            intid = getUtility(IIntIds).queryId(self.context)
            if intid is None:
                raise UserError(_(u"This object cannot be remembered."))
            session = ISession(self.request)[KEY]
            remembered = session.setdefault('remembered', PersistentList())
            if intid in remembered:
                raise UserError(_(u"This object is already remembered."))
            remembered.append(intid)

        forget = self.request.form.get('worldcookery.forget')
        if forget is not None:
            forget = int(forget)
            session = ISession(self.request)[KEY]
            remembered = session.get('remembered', [])
            if forget not in remembered:
                raise UserError(_(u"Cannot forget an object that was "
                                  u"not remembered."))
            remembered.remove(forget)
Beispiel #3
0
 def getRememberedItems(self):
     intids = getUtility(IIntIds)
     session = ISession(self.request)[KEY]
     remembered = session.get('remembered', [])
     return ({'id': intid, 'object': intids.queryObject(intid)}
             for intid in remembered)