Question

Using the Genshi templating engine with CherryPy, I need to have a context-specific site navigation which displays a different menu for logged in users.

Users are identified by a CherryPy session.

What would be the best way to show a different menu for logged in users?

Was it helpful?

Solution

We check to see if the user is logged in...

import cherrypy
from genshi.template import TemplateLoader

@cherrypy.expose
def index(self):
tmpl = loader.load('index.html')

if(cherrypy.session.get('_cp_Email')):
    return tmpl.generate(title='Geddit').render('html', LoggedIn=True)
else:
    return tmpl.generate(title='Geddit').render('html', LoggedIn=False)

your template would like something like this...

            if (LoggedIn) {
              # Logged In menu
            } else {
              # not Logged In menu
            }

If they are we send a variable to the template to show Log Out instead of Login.

We're using this for Authentication...

http://tools.cherrypy.org/wiki/AuthenticationAndAccessRestrictions

Include the comments for security reasons. Hope this helps!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top