# -*- coding: utf-8 -*- # this file is released under public domain and you can use without limitations if MULTI_USER_MODE: db = DAL('sqlite://storage.sqlite') # if not, use SQLite or other DB from gluon.tools import * auth = Auth( globals(), db) # authentication/authorization crud = Crud( globals(), db) # for CRUD helpers using auth service = Service( globals()) # for json, xml, jsonrpc, xmlrpc, amfrpc plugins = PluginManager() mail = auth.settings.mailer mail.settings.server = EMAIL_SERVER mail.settings.sender = EMAIL_SENDER mail.settings.login = EMAIL_LOGIN auth.settings.extra_fields['auth_user'] = \ [Field('is_manager', 'boolean', default=False, writable=False)] auth.define_tables() # creates all needed tables auth.settings.registration_requires_verification = False auth.settings.registration_requires_approval = True auth.settings.reset_password_requires_verification = True db.define_table('app', Field('name'), Field('owner', db.auth_user)) if not session.authorized and MULTI_USER_MODE: if auth.user and not request.function == 'user': session.authorized = True elif not request.function == 'user': redirect(URL('default', 'user/login')) def is_manager(): if not MULTI_USER_MODE: return True elif auth.user and (auth.user.id == 1 or auth.user.is_manager): return True else: return False