def description(self, namespace): ns = Namespace.byName(namespace) result = [] for ln_link in ns.LNs: result.append(u'LN "%s" "%s"' % (ln_link.name, ln_link.url)) for ns_link in ns.NSs: result.append(u'NS "%s" "%s"' % (ns_link.name, ns_link.url)) return u"\n".join(result)
def enter_name(self, namespace, password, url): ns = Namespace.byName(namespace) if ns.password != password: incorrect_password_routine() return {"namespace": namespace, "password": password, "namespace_url": turbogears.url("/namespace", namespace=namespace, password=password), "url": url}
def namespace(self, namespace, password="", linkkey=None, linkurl=None, deltype=None, # "LN", "NS", or "PATTERN" delname=None): """Render namespace page. Aquire namespace, check password. Register links, delete links. """ a_nsname = namespace a_nsname_linkkey = linkkey a_nsurl_linkurl = linkurl try: a_mns = Namespace.byName(a_nsname) except SQLObjectNotFound: a_mns = Namespace(name=a_nsname, password=password) set_namespace_ln(a_mns, "this", nsname_to_nsurl(a_nsname)) if a_mns.password != password: incorrect_password_routine() if ((a_nsname_linkkey is not None) and (a_nsurl_linkurl is not None)): set_namespace_ns(a_mns, a_nsname_linkkey, a_nsurl_linkurl) turbogears.flash("Link registered.") if (deltype is not None) and (delname is not None): for entry in {"LN": a_mns.LNs, "NS": a_mns.NSs, "PATTERN": a_mns.PATTERNs}.get(deltype, a_mns.LNs): if entry.name == delname: entry.destroySelf() turbogears.flash("%s deleted" % entry.name) store_name_url = cherrypy.request.base + \ turbogears.url("/enter_name") bookmarklet_url = "javascript:o=location.href;" \ "location.href='%s?namespace=%s&password=%s" \ "&url='+escape(o)" % (store_name_url, a_nsname, password) return {"namespace": a_nsname, "password": password, "description_url": nsname_to_nsurl(a_nsname), "bookmarklet_url": bookmarklet_url}
def submit_name(self, namespace, password, name, url, confirm=None): a_nsname = namespace a_lnname = name a_lnurl = url a_mnamespace = Namespace.byName(a_nsname) if a_mnamespace.password != password: incorrect_password_routine() a_lnurl_lower = a_lnurl.lower() if ("password" in a_lnurl_lower) \ or ("&pw=" in a_lnurl_lower) \ or ("?pw=" in a_lnurl_lower): if confirm is None: return {"namespace": a_nsname, "password": password, "name": name, "url": url} set_namespace_ln(a_mnamespace, a_lnname, a_lnurl) raise cherrypy.HTTPRedirect(a_lnurl)
def changepassword(self, namespace, oldpassword, newpassword, repeat): ns = Namespace.byName(namespace) if ns.password != oldpassword: msg = INCORRECT_PASSWORD_MSG elif newpassword != repeat: msg = "The new password didn't match it's repeat." else: hub.begin() ns.password = newpassword hub.commit() hub.end() msg = "Password changed!" turbogears.flash(msg) url = turbogears.url("/namespace", namespace=namespace, password=ns.password) raise cherrypy.HTTPRedirect(url)