def execute(pagename, request): metas = get_metas(request, pagename, ["Type"], checkAccess=False) typeValue = metas.get("Type") if len(typeValue) == 0: licenseType = "cookie" else: licenseType = typeValue[0] if licenseType == "traditional": fake = FakeXmlrpcObj() fake.request = request cookie = generateCookie(fake, str(pagename)) if isinstance(cookie, xmlrpclib.Fault): request.write(cookie.faultString) return filename = "license.key" request.headers['Content-Type'] = 'application/octet-stream', request.headers['Content-Disposition'] = 'attachment; ' + \ 'filename="%s"' % filename request.write(cookie.data) else: GetCookie(pagename, request).render()
def do_action(self): form = values_to_form(self.request.values) days = form.get('days', [u''])[0] days = wikiutil.clean_input(days) try: days = int(days) except ValueError: return False, "Invalid number: %s" % days fake = FakeXmlrpcObj() fake.request = self.request cookie = generateCookie(fake, str(self.pagename), days * SECONDS_IN_DAY) if isinstance(cookie, xmlrpclib.Fault): return False, cookie.faultString default_filename = self.pagename + ".cookie" filename = form.get('filename', [default_filename])[0] self.filename = filename.encode("ascii", "ignore") self.cookie = cookie.data return True, ""