def getSchedulingContexts(self, request): """Set up scheduling contexts. Currently we include: - committees - plenary """ app = common.get_application() committees = [] contexts = [] # !+GENERALIZE_GROUP #!+HARDWIRING(mb, Aug-2012) unhardwire committees lookup if interfaces.IWorkspaceSchedulingSectionLayer.providedBy(request): committees[:] = app["workspace"]["scheduling"][ "committees"].values() for committee in committees: if committee.active: if capi.get_type_info(committee).workflow.has_feature( "sitting"): contexts.append(schedule.GroupSchedulingContext(committee)) for context in contexts: context.__name__ = u"schedule" if interfaces.IWorkspaceSchedulingSectionLayer.providedBy(request): contexts.append( schedule.ISchedulingContext(app["workspace"]["scheduling"])) if len(contexts): contexts[-1].__name__ = u"" return contexts
def getSchedulingContexts(self, request): """Set up scheduling contexts. Currently we include: - committees - plenary """ app = common.get_application() committees = [] contexts = [] # !+GENERALIZE_GROUP #!+HARDWIRING(mb, Aug-2012) unhardwire committees lookup if interfaces.IWorkspaceSchedulingSectionLayer.providedBy(request): committees[:] = app["workspace"]["scheduling"]["committees"].values() for committee in committees: if committee.active: if capi.get_type_info(committee).workflow.has_feature("sitting"): contexts.append(schedule.GroupSchedulingContext(committee)) for context in contexts: context.__name__ = u"schedule" if interfaces.IWorkspaceSchedulingSectionLayer.providedBy(request): contexts.append(schedule.ISchedulingContext(app["workspace"]["scheduling"])) if len(contexts): contexts[-1].__name__ = u"" return contexts
def get_group_context(context): if interfaces.IOffice.providedBy(context): return get_chamber_for_group(context) elif interfaces.IGovernment.providedBy(context): # !+LEGISLATURE, GLOBAL? return common.get_application() else: return context
def date_input_search_widget(table_id, field_id): form = DateFilterWidget(common.get_application(), common.get_request(), table_id, field_id) html = '<div id="date_input_search_widget_%(table_id)s_%(field_id)s" style="display: none;">%(html)s</div>' \ % {"table_id": table_id, "field_id": field_id, "html": form.render()} script = open("%s/templates/date-input-search-widget.js" % (_path)).read() return html, script % {"table_id": table_id, "field_id": field_id}
def get_group_privilege_extent_context(group): privilege_extent = removeSecurityProxy(group.__class__).privilege_extent if privilege_extent == "group": return group elif privilege_extent == "chamber": return get_chamber_for_group(group) elif privilege_extent == "legislature": return common.get_application() raise ValueError(group)
def handle_login(self, action, data): if IUnauthenticatedPrincipal.providedBy(self.request.principal): self.status = _(u"Invalid account credentials") else: if data.get("camefrom", None) and data.get("camefrom").strip(): camefrom = data["camefrom"].strip() else: camefrom = absoluteURL(get_application(), self.request) self.status = _("You are now logged in") self.request.response.redirect(camefrom)
def get_group_prms(document): prms = [] prms.append(IPrincipalRoleMap(common.get_application())) parent_group = getattr(document, "group", None) if parent_group: prms.append(IPrincipalRoleMap(parent_group)) assigned_groups = getattr(document, "group_assignment", list()) if assigned_groups: for group in assigned_groups: prms.append(IPrincipalRoleMap(group)) return prms
def notify_serialization_failure(template, **kw): email_settings = settings.EmailSettings(common.get_application()) recipients = [ email_settings.default_sender ] if template: body_text = template % kw else: body_text = kw.get("body") msg_event = NotificationEvent({ "recipients": recipients, "body": body_text, "subject": kw.get("subject", "Serialization Failure") }) zope.event.notify(msg_event)
def notify_serialization_failure(template, **kw): email_settings = settings.EmailSettings(common.get_application()) recipients = [email_settings.default_sender] if template: body_text = template % kw else: body_text = kw.get("body") msg_event = NotificationEvent({ "recipients": recipients, "body": body_text, "subject": kw.get("subject", "Serialization Failure") }) zope.event.notify(msg_event)
def notify_serialization_failure(template, **kw): log.debug("notify_serialization_failure / %s / %s", template, kw) # !+DISABLING to see if the observed delays when running with only the db # are actually caused by this return email_settings = settings.EmailSettings(common.get_application()) recipients = [ email_settings.default_sender ] if template: body_text = template % kw else: body_text = kw.get("body") msg_event = NotificationEvent({ "recipients": recipients, "body": body_text, "subject": kw.get("subject", "Serialization Failure") }) zope.event.notify(msg_event)
def handle_restore(self, action, data): site_url = absoluteURL(get_application(), self.request) login = data.get("login", "") email = data.get("email", "") user = None session = Session() if email: user = session.query(User).filter(User.email == email).first() elif login: user = session.query(User).filter(User.login == login).first() if user: email = user.email link = session.query(PasswordRestoreLink).filter( PasswordRestoreLink.user_id == user.user_id).first() if link: if not link.expired(): self.status = _(u"This user's link is still active!") return else: link = PasswordRestoreLink() link.hash = hashlib.sha224( user.login + SECRET_KEY + str(datetime.datetime.now())).hexdigest() link.expiration_date = datetime.datetime.now( ) + datetime.timedelta(1) link.user_id = user.user_id session.add(link) mailer = getUtility(IBungeniMailer) self.message = _(u"Restore password link: ")\ + "%s/reset_password?key=%s" % (site_url, link.hash) self.message += u"\n\n" self.message += _(u"This link will expire in 24 hours.") text = ViewPageTemplateFile("templates/mail.pt")(self) message = MIMEText(text) message.set_charset("utf-8") message["Subject"] = _(u"Bungeni password restoration") message["To"] = email mailer.send(str(message)) self.status = _(u"Email was sent!") else: self.status = _(u"User not found!")
def handle_restore(self, action, data): site_url = absoluteURL(get_application(), self.request) login = data.get("login", "") email = data.get("email", "") user = None session = Session() if email: user = session.query(User).filter(User.email==email).first() elif login: user = session.query(User).filter(User.login==login).first() if user: email = user.email link = session.query(PasswordRestoreLink).filter( PasswordRestoreLink.user_id==user.user_id).first() if link: if not link.expired(): self.status = _(u"This user's link is still active!") return else: link = PasswordRestoreLink() link.hash = hashlib.sha224( user.login + SECRET_KEY + str(datetime.datetime.now())).hexdigest() link.expiration_date = datetime.datetime.now() + datetime.timedelta(1) link.user_id = user.user_id session.add(link) mailer = getUtility(IBungeniMailer) self.message = _(u"Restore password link: ")\ + "%s/reset_password?key=%s" % (site_url, link.hash) self.message += u"\n\n" self.message += _(u"This link will expire in 24 hours.") text = ViewPageTemplateFile("templates/mail.pt")(self) message = MIMEText(text) message.set_charset("utf-8") message["Subject"] = _(u"Bungeni password restoration") message["To"] = email mailer.send(str(message)) self.status = _(u"Email was sent!") else: self.status = _(u"User not found!")
def __call__(self): if IUnauthenticatedPrincipal.providedBy(self.request.principal): self.request.response.redirect( "%s/login" % (absoluteURL(get_application(), self.request))) return super(ChangePasswordForm, self).__call__()
def __call__( self ): self.request.response.expireCookie("wc.cookiecredentials") self.request.response.expireCookie(I18N_COOKIE_NAME) site_url = absoluteURL(get_application(), self.request) self.request.response.redirect(site_url)
def settings(self): return EmailSettings(common.get_application())
def __call__(self): if IUnauthenticatedPrincipal.providedBy(self.request.principal): self.request.response.redirect("%s/login" % ( absoluteURL(get_application(), self.request))) return super(ChangePasswordForm, self).__call__()
def __call__(self): if not IUnauthenticatedPrincipal.providedBy(self.request.principal): workspace = get_application()["workspace"] self.request.response.redirect(absoluteURL(workspace, self.request)) return super(Login, self).__call__()
def __call__(self): self.request.response.expireCookie("wc.cookiecredentials") self.request.response.expireCookie(I18N_COOKIE_NAME) site_url = absoluteURL(get_application(), self.request) self.request.response.redirect(site_url)