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()}
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)
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)