def process(self): consumer = openid.consumer.consumer.Consumer(session, None) return_to = request.url info = consumer.complete(request.params, return_to) display_identifier = info.getDisplayIdentifier() if info.status == openid.consumer.consumer.FAILURE and display_identifier: c.errors.append(display_identifier + ' : ' + info.message) return render('/auth/login.mako') elif info.status == openid.consumer.consumer.SUCCESS: session['user'] = display_identifier session['messages'].append('Logged in as ' + display_identifier) target = session.get('post_login_redirect', '/') if target: session['post_login_redirect'] = '' session.save() redirect(target) elif info.status == openid.consumer.consumer.CANCEL: c.errors.append('Cancelled.') return render('/auth/login.mako') elif info.status == openid.consumer.consumer.SETUP_NEEDED: c.errors.append('Setup needed: ' + info.setup_url) return render('/auth/login.mako') else: c.errors.append('Verification failed.') return render('/auth/login.mako')
def show(self, id, format='html'): """GET /pages/id: Show a specific item""" # url('page', id=ID) page = get_page(id) # for html format, show page even if it does not exist: if format=='html': c.page = page return render('/pages/show.mako') # otherwise, if page does not exist, it is a 404: if not page.exists() and not session.get('user', ''): abort(404) if format=='js': response.content_type = 'text/javascript' script = page.get_javascript() return script elif format=='json': response.content_type = 'application/json' json = page.get_json_content() return json elif format=='play': c.page = page c.text = request.GET.get('text', '') return render('/pages/play.mako') elif format=='txt': response.content_type = 'text/plain' return page.get_raw_content() elif format=='words-js': response.content_type = 'text/javascript' json = page.get_words_js() return json elif format=='yaml': response.content_type = 'text/plain' json = page.get_json_content() return json
def edit(self, id, format='html'): """GET /pages/id/edit: Form to edit an existing item""" # url('edit_page', id=ID) self._authorize() c.page = get_page(id) c.timestamp = c.page.get_timestamp() return render('/pages/edit.mako')
def verify(self): form_openid = unicode(request.params.get('openid_url')) consumer = openid.consumer.consumer.Consumer(session, None) try: oid_request = consumer.begin(form_openid) except openid.consumer.consumer.DiscoveryFailure, exception: c.errors.append(exception[0]) return render('/auth/login.mako')
def index(self): """Here we simply display a basic page to begin the correspondence process. """ c.pages_for_select = self._pages_for_select() c.pages = [] c.keys_for_select = self._keys_for_select() c.input_keys = [] c.output_keys = [] return render('/correspond/index.mako')
def document(self): """Render the error document""" resp = request.environ.get('pylons.original_response') code = cgi.escape(request.GET.get('code', '')) message = cgi.escape(request.GET.get('message', '')) if resp: code = code or cgi.escape(str(resp.status_int)) message = literal(resp.status) or message if not code: raise Exception('No status code was found.') c.code = code c.message = message return render('/derived/error/document.mako')
def new(self, format='html', id=''): """GET /pages/new: Form to create a new item""" # url('new_page') self._authorize() c.page = get_page(id) return render('/pages/new.mako')
def index(self, format='html'): """GET /pages: All items in the collection""" # url('pages') c.all_pages = get_page_list() return render('/pages/index.mako')
schema = PageUpdateForm() try: form_result = schema.to_python(dict(request.params)) except formencode.Invalid, error: error_message = unicode(error) return error_message page = get_page(id) page.content = form_result.get('content') preview = form_result.get('preview') if page.get_timestamp() and form_result.get('timestamp') != page.get_timestamp(): c.errors.append('This page was modified while you were editing it: your changes cannot be saved.') preview = True if preview: c.page = page c.timestamp = form_result.get('timestamp') return render('/pages/edit.mako') else: page.save() redirect(url(controller='pages', action='show', id=id)) def delete(self, id): """DELETE /pages/id: Delete an existing item""" # Forms posted to this method should contain a hidden field: # <input type="hidden" name="_method" value="DELETE" /> # Or using helpers: # h.form(url('page', id=ID), # method='delete') # url('page', id=ID) self._authorize() return 'Sorry, this is not implemented yet.'
def login(self): # Return a rendered template return render('/auth/login.mako')