# 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 #########################################################################
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')
# (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"),
## 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
# 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'
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
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))
# 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')