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)