43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
|
# -*- 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
|