コード例 #1
0
ファイル: auth.py プロジェクト: jtacoma/geometriki
 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')
コード例 #2
0
ファイル: pages.py プロジェクト: jtacoma/geometriki
 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
コード例 #3
0
ファイル: pages.py プロジェクト: jtacoma/geometriki
 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')
コード例 #4
0
ファイル: auth.py プロジェクト: jtacoma/geometriki
 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')
コード例 #5
0
ファイル: correspond.py プロジェクト: jtacoma/geometriki
 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')
コード例 #6
0
ファイル: error.py プロジェクト: jtacoma/geometriki
 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')
コード例 #7
0
ファイル: pages.py プロジェクト: jtacoma/geometriki
 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')
コード例 #8
0
ファイル: pages.py プロジェクト: jtacoma/geometriki
 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')
コード例 #9
0
ファイル: pages.py プロジェクト: jtacoma/geometriki
        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.'
コード例 #10
0
ファイル: auth.py プロジェクト: jtacoma/geometriki
 def login(self):
     # Return a rendered template
     return render('/auth/login.mako')