Created
December 26, 2008 19:55
-
-
Save batok/40116 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""Main Controller""" | |
from dic23.lib.base import BaseController | |
from tg import expose, flash, require | |
from pylons.i18n import ugettext as _ | |
#from tg import redirect, validate | |
from dic23.model import DBSession, metadata | |
from catwalk.tg2 import Catwalk | |
from repoze.what import predicates | |
from dic23.controllers.secc import Secc | |
from sprox.formbase import AddRecordForm | |
from formencode import Schema | |
from formencode.validators import FieldsMatch | |
from tw.forms import PasswordField, TextField | |
from dic23.model import User | |
from pylons import c | |
form_validator = Schema(chained_validators=(FieldsMatch('password', 'verify_password', messages={'invalidNoMatch': 'Passwords do not match'}),)) | |
class RegistrationForm(AddRecordForm): | |
__model__ = User | |
__require_fields__ = ['password', 'user_name', 'email_address'] | |
__omit_fields__ = ['_password', 'groups', 'created', 'user_id'] | |
__field_order__ = ['user_name', 'email_address', 'display_name', 'password', 'verify_password'] | |
__base_validator__ = form_validator | |
email_address = TextField | |
display_name = TextField | |
verify_password = PasswordField('verify_password') | |
registration_form = RegistrationForm(DBSession) | |
class SecuredCatwalk(Catwalk): | |
allow_only = predicates.has_permission('manage', | |
msg=_('Only for people with the "manage" permission')) | |
class RootController(BaseController): | |
admin = SecuredCatwalk(DBSession, metadata) | |
secc = Secc() | |
@expose('dic23.templates.index') | |
def index(self): | |
return dict(page='index') | |
@expose('dic23.templates.about') | |
def about(self): | |
return dict(page='about') | |
@expose('dic23.templates.authentication') | |
def auth(self): | |
return dict(page='auth') | |
@expose('dic23.templates.index') | |
@require(predicates.has_permission('manage', msg=_('Only for managers'))) | |
def manage_permission_only(self, **kw): | |
return dict(page='managers stuff') | |
@expose('dic23.templates.index') | |
@require(predicates.is_user('editor', msg=_('Only for the editor'))) | |
def editor_user_only(self, **kw): | |
return dict(page='editor stuff') | |
@expose('dic23.templates.login') | |
def login(self, **kw): | |
came_from = kw.get('came_from', '/') | |
return dict(page='login', header=lambda *arg: None, | |
footer=lambda *arg: None, came_from=came_from) | |
@expose('dic23.templates.adduser') | |
@require(predicates.has_permission('manage', msg=_('Only for managers'))) | |
def adduser(self, **kw): | |
c.foo = registration_form | |
return dict(page='managers stuff') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment