Example #1
0
# response.optimize_js = 'concat,minify,inline'
## (optional) static assets folder versioning
# response.static_version = '0.0.0'
#########################################################################
## Here is sample code if you need for
## - email capabilities
## - authentication (registration, login, logout, ... )
## - authorization (role based authorization)
## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss)
## - old style crud actions
## (more options discussed in gluon/tools.py)
#########################################################################

from gluon.tools import Auth, Service, PluginManager

auth = Auth(db)
service = Service()
plugins = PluginManager()

## configure email
#mail = auth.settings.mailer
#mail.settings.server = 'logging' if request.is_local else myconf.take('smtp.server')
#mail.settings.sender = myconf.take('smtp.sender')
#mail.settings.login = myconf.take('smtp.login')

## configure auth policy
auth.settings.registration_requires_verification = False
auth.settings.registration_requires_approval = False
auth.settings.reset_password_requires_verification = True

#########################################################################
Example #2
0
    cache.memcache = MemcacheClient(request)
    cache.ram = cache.disk = cache.memcache
    session.connect(request, response, db=MEMDB(cache.memcache.client))
else:
    # ---------------------------------------------------------------------
    # if NOT running on Google App Engine use SQLite or other DB
    # ---------------------------------------------------------------------
    db = DAL(appconfig.get('db.uri'),
             pool_size=appconfig.get('db.pool_site'),
             migrate_enabled=appconfig.get('db.migrate'),
             check_reserved=appconfig.get('db.migrate') and ['all'] or None,
             lazy_tables=appconfig.get('db.lazy'))


# host names must be a list of allowed host names (glob syntax allowed)
auth = Auth(db, host_names=appconfig.get('host.names'))

# -------------------------------------------------------------------------
# create all tables needed by auth, maybe add a list of extra fields
# -------------------------------------------------------------------------
# auth.settings.extra_fields['auth_user'] = []

auth.define_tables(username=False, signature=False)

# -------------------------------------------------------------------------
# configure email
# -------------------------------------------------------------------------
mail = auth.settings.mailer
mail.settings.server = 'logging' if request.is_local else appconfig.get('smtp.server')
mail.settings.sender = appconfig.get('smtp.sender')
mail.settings.login = appconfig.get('smtp.login')
Example #3
0
# (optional) static assets folder versioning
# -------------------------------------------------------------------------
# response.static_version = '0.0.0'

# -------------------------------------------------------------------------
# Here is sample code if you need for
# - email capabilities
# - authentication (registration, login, logout, ... )
# - authorization (role based authorization)
# - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss)
# - old style crud actions
# (more options discussed in gluon/tools.py)
# -------------------------------------------------------------------------

# host names must be a list of allowed host names (glob syntax allowed)
auth = Auth(db, host_names=configuration.get('host.names'))

# -------------------------------------------------------------------------
# create all tables needed by auth, maybe add a list of extra fields
# -------------------------------------------------------------------------
auth.settings.expiration = 3600 * 8  # seconds

auth.settings.extra_fields['auth_user'] = [
    Field("principal_info", type="boolean"),
    Field("people_info", type="boolean"),
    Field("further_info", type="boolean"),
    Field("kids_info", type="boolean"),
    Field("contact_info", type="boolean"),
    Field("medical_docs", type="boolean"),
    Field("genetics_counseling_records", type="boolean"),
    Field("special_counseling_records", type="boolean"),
Example #4
0
## by default give a view/generic.extension to all actions from localhost
## none otherwise. a pattern can be 'controller/function.extension'
response.generic_patterns = ['*'] if request.is_local else []

#########################################################################
## Here is sample code if you need for
## - email capabilities
## - authentication (registration, login, logout, ... )
## - authorization (role based authorization)
## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss)
## - old style crud actions
## (more options discussed in gluon/tools.py)
#########################################################################

from gluon.tools import Auth, Crud, Service, PluginManager, prettydate
auth = Auth(db, hmac_key=Auth.get_or_create_key())
crud, service, plugins = Crud(db), Service(), PluginManager()

## create all tables needed by auth if not custom tables
auth.define_tables()

## configure email
mail = auth.settings.mailer
mail.settings.server = 'logging' or 'smtp.gmail.com:587'
mail.settings.sender = '*****@*****.**'
mail.settings.login = '******'

## configure auth policy
auth.settings.registration_requires_verification = False
auth.settings.registration_requires_approval = False
auth.settings.reset_password_requires_verification = True
Example #5
0
File: db.py Project: tazjel/rad2py
# none otherwise. a pattern can be 'controller/function.extension'
response.generic_patterns = ['*'] if request.is_local else []

#########################################################################
## Here is sample code if you need for
## - email capabilities
## - authentication (registration, login, logout, ... )
## - authorization (role based authorization)
## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss)
## - crud actions
## (more options discussed in gluon/tools.py)
#########################################################################

from gluon.tools import Mail, Auth, Crud, Service, PluginManager, prettydate
mail = Mail()  # mailer
auth = Auth(db)  # authentication/authorization
crud = Crud(db)  # for CRUD helpers using auth
service = Service()  # for json, xml, jsonrpc, xmlrpc, amfrpc
plugins = PluginManager()  # for configuring plugins

mail.settings.server = 'logging' or 'smtp.gmail.com:587'  # your SMTP server
mail.settings.sender = '*****@*****.**'  # your email
mail.settings.login = '******'  # your credentials or None

auth.settings.hmac_key = 'sha512:89b9d005-19d8-47d3-b182-271fd9c7db8e'  # before define_tables()
auth.define_tables()  # creates all needed tables
auth.settings.mailer = mail  # for user email verification
auth.settings.registration_requires_verification = False
auth.settings.registration_requires_approval = False
auth.messages.verify_email = 'Click on the link http://' + request.env.http_host + URL(
    'default', 'user', args=['verify_email']) + '/%(key)s to verify your email'
Example #6
0
def construct_permissions():
    """Automatically construct permissions hierarchy"""
    # logger = logzero.setup_logger(logfile="web2py.log",
    #                                       formatter=logging.Formatter(
    #                                           '%(asctime)s - %(levelname)-7s - %(funcName)s - %(message)s'),
    #                                       disableStderrLogger=True)
    # logger.info("Constructing permissions system...")
    print("Constructing permissions system...")
    #
    # logger.info("Linking to db...")
    db = current.db
    auth = Auth(db)
    try:
        # logger.info("Creating user groups...")
        groupid_vbadmin = auth.add_group("VectorbiteAdmin", "Administrator group, has all permissions.")
        groupid_vdview = auth.add_group("VD Viewer", "Can view VecDyn.")
        groupid_vtview = auth.add_group("VT Viewer", "Can view VecTraits.")
        groupid_vdupload = auth.add_group("VD Uploader", "Can view and upload to VecDyn.")
        groupid_vtupload = auth.add_group("VT Uploader", "Can view and upload to VecTraits.")
        groupid_vdcurate = auth.add_group("VD Curator", "Can view, upload to, and curate VecDyn.")
        groupid_vtcurate = auth.add_group("VT Curator", "Can view, upload to, and curate VecTraits.")
        groupid_viewall = auth.add_group("View All", "Can view both databases.")

        # logger.info("Creating permissions...")
        # logger.debug("Adding permissions for Admin...")
        auth.add_permission(groupid_vbadmin, "view", "vecdyn")
        auth.add_permission(groupid_vbadmin, "upload", "vecdyn")
        auth.add_permission(groupid_vbadmin, "curate", "vecdyn")
        auth.add_permission(groupid_vbadmin, "view", "vectraits")
        auth.add_permission(groupid_vbadmin, "upload", "vectraits")
        auth.add_permission(groupid_vbadmin, "curate", "vectraits")

        # logger.debug("Adding permissions for View accounts...")
        auth.add_permission(groupid_vdview, "view", "vecdyn")

        auth.add_permission(groupid_vtview, "view", "vectraits")

        # logger.debug("Adding permissions for Upload accounts...")
        auth.add_permission(groupid_vdupload, "view", "vecdyn")
        auth.add_permission(groupid_vdupload, "upload", "vecdyn")

        auth.add_permission(groupid_vtupload, "view", "vectraits")
        auth.add_permission(groupid_vtupload, "upload", "vectraits")

        # logger.debug("Adding permissions for Curator accounts...")
        auth.add_permission(groupid_vdcurate, "view", "vecdyn")
        auth.add_permission(groupid_vdcurate, "upload", "vecdyn")
        auth.add_permission(groupid_vdcurate, "curate", "vecdyn")

        auth.add_permission(groupid_vtcurate, "view", "vectraits")
        auth.add_permission(groupid_vtcurate, "upload", "vectraits")
        auth.add_permission(groupid_vtcurate, "curate", "vectraits")

        # logger.debug("Adding permissions for Viewall account...")
        auth.add_permission(groupid_viewall, "view", "vecdyn")
        auth.add_permission(groupid_viewall, "view", "vectraits")

        # logger.info("Permission complete, comitting db...")
        db.commit()
    except Exception:
        # logger.exception("Encountered exception when constructing permissions system. Rolling back.")
        print("Encountered exception when constructing permissions system. Rolling back.")
        db.rollback()
    # logger.info("Permissions system created")
    return True
Example #7
0
 def define_table(self):
     fakeauth = Auth(DAL(None))
     self.fields.extend([fakeauth.signature])
     self.entity = self.db.define_table(
         self.tablename, *self.fields,
         **dict(migrate=self.migrate, format=self.format))
Example #8
0
File: db.py Project: jtkorb/cams
# response.static_version = '0.0.0'

# -------------------------------------------------------------------------
# Here is sample code if you need for
# - email capabilities
# - authentication (registration, login, logout, ... )
# - authorization (role based authorization)
# - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss)
# - old style crud actions
# (more options discussed in gluon/tools.py)
# -------------------------------------------------------------------------

from gluon.tools import Auth, Service, PluginManager

# host names must be a list of allowed host names (glob syntax allowed)
auth = Auth(db, host_names=myconf.get('host.names'))
service = Service()
plugins = PluginManager()

# -------------------------------------------------------------------------
# create all tables needed by auth if not custom tables
# -------------------------------------------------------------------------
auth.define_tables(username=False, signature=False)

# -------------------------------------------------------------------------
# configure email
# -------------------------------------------------------------------------
mail = auth.settings.mailer
mail.settings.server = 'logging' if request.is_local else myconf.get('smtp.server')
mail.settings.sender = myconf.get('smtp.sender')
mail.settings.login = myconf.get('smtp.login')