aboutsummaryrefslogtreecommitdiffstats
path: root/jm2l/__init__.py
diff options
context:
space:
mode:
authortr4ck3ur <tr4ck3ur@style-python.fr>2015-02-13 02:29:37 +0100
committertr4ck3ur <tr4ck3ur@style-python.fr>2015-02-13 02:29:37 +0100
commitfa4a9859c57de6b7894ff4b84b75d242f2b796f5 (patch)
treec6ec352fdd634ca3e645cb2db897a127fcff299b /jm2l/__init__.py
downloadjm2l-fa4a9859c57de6b7894ff4b84b75d242f2b796f5.tar.gz
jm2l-fa4a9859c57de6b7894ff4b84b75d242f2b796f5.tar.bz2
jm2l-fa4a9859c57de6b7894ff4b84b75d242f2b796f5.tar.xz
jm2l-fa4a9859c57de6b7894ff4b84b75d242f2b796f5.zip
first drop
Diffstat (limited to 'jm2l/__init__.py')
-rw-r--r--jm2l/__init__.py112
1 files changed, 112 insertions, 0 deletions
diff --git a/jm2l/__init__.py b/jm2l/__init__.py
new file mode 100644
index 0000000..1be4a2b
--- /dev/null
+++ b/jm2l/__init__.py
@@ -0,0 +1,112 @@
+from pyramid.authentication import AuthTktAuthenticationPolicy
+from pyramid.authorization import ACLAuthorizationPolicy
+from pyramid.config import Configurator
+from pyramid.renderers import JSON, JSONP
+from pyramid.session import SignedCookieSessionFactory
+from sqlalchemy import engine_from_config
+
+from .models import DBSession, get_user
+from .security import EntryFactory, groupfinder
+import locale
+
+def main(global_config, **settings):
+ """ This function returns a Pyramid WSGI application.
+ """
+ locale.setlocale(locale.LC_ALL, "fr_FR.UTF-8")
+ engine = engine_from_config(settings, 'sqlalchemy.')
+ DBSession.configure(bind=engine)
+ my_session_factory = SignedCookieSessionFactory('itsaseekreet')
+ authentication_policy = AuthTktAuthenticationPolicy('somesecret',
+ callback=groupfinder, hashalg='sha512', debug=True)
+ authorization_policy = ACLAuthorizationPolicy()
+ config = Configurator(settings=settings,
+ root_factory='.security.RootFactory',
+ authentication_policy=authentication_policy,
+ authorization_policy=authorization_policy
+ )
+ config.add_renderer('json', JSON(indent=4))
+ config.add_renderer('jsonp', JSONP(param_name='callback'))
+ config.set_session_factory(my_session_factory)
+ config.add_request_method(get_user, 'user', reify=True)
+ config.add_static_view('static', 'static', cache_max_age=3600)
+ config.add_static_view('img', 'static/img', cache_max_age=3600)
+ config.add_static_view('upload', 'upload', cache_max_age=3600)
+
+ config.add_route('tester', '/tester')
+
+ # ICal Routes
+ config.add_route('progr_iCal', '/{year:\d+}/JM2L.ics')
+
+ # JSON Routes
+ config.add_route('users_json', '/json-users')
+ config.add_route('tiers_json', '/json-tiers')
+ config.add_route('progr_json', '/{year:\d+}/le-prog-json')
+ config.add_route('timeline_json', '/{year:\d+}/timeline-json')
+
+ # Session setting Routes
+ config.add_route('year', '/year/{year:\d+}')
+
+ # HTML Routes - Staff
+ config.add_route('list_task', '/Staff')
+ config.add_route('handle_task', '/Staff/tasks{sep:/*}{task_id:(\d+)?}')
+ config.add_route('action_task', '/Staff/{action:(\w+)}/{task_id:(\d+)}')
+
+ # HTML Routes - Public
+ config.add_route('home', '/')
+ config.add_route('presse', '/{year:\d+}/dossier-de-presse')
+ config.add_route('edit_presse', '/{year:\d+}/dossier-de-presse/edit')
+ config.add_route('programme', '/{year:\d+}/le-programme')
+ config.add_route('plan', 'nous-rejoindre')
+ config.add_route('participer', 'participer-l-evenement')
+ config.add_route('captcha', '/captcha')
+
+ ## Events
+ config.add_route('event', '/event/{year:\d+}/{event_id:([\w-]+)?}')
+ config.add_route('link_event', '/MesJM2L/{year:\d+}/{intervention:\w+}/link')
+ config.add_route('edit_event', '/MesJM2L/{year:\d+}/{intervention:\w+}{sep:/*}{event_id:([\w-]+)?}')
+
+ ## Entities
+ config.add_route('entities', '/entities') #{sep:/*}{Nature:\w+?}')
+ config.add_route('add_entity', '/entity')
+ config.add_route('show_entity', '/entity/{tiers_type:(\w+)}/{entity_id:([\w-]+)?}')
+ config.add_route('edit_entity', '/entity/{tiers_type:(\w+)}/{entity_id:([\w-]+)}/edit')
+
+ config.add_route('edit_entity_cat', '/categorie/entity')
+
+ ## Users
+ config.add_route('show_user', '/user/{user_slug:([\w-]+)?}')
+
+ # HTML Routes - Logged
+ #config.add_route('profil', 'MesJM2L')
+ config.add_route('jm2l', '/MesJM2L')
+ config.add_route('modal', '/{year:\d+}/modal/{modtype:\w+}/{id:(\d+)}')
+
+ # Handle exchanges
+ config.add_route('exchange', '/{year:\d+}/exchange/{modtype:\w+}/{id:(\d+)}/{action:\w+}')
+
+ # Handle authentication
+ config.add_route('register', '/register')
+ config.add_route('auth', '/sign/{action}')
+ config.add_route('bymail', '/sign/jm2l/{hash}')
+
+ # Handle Multimedia and Uploads
+ config.add_route('media_uploadform', '/test2')
+ config.add_route('media_view', '/image/{media_table:\w+}/{uid:\d+}/{name:.+}')
+ config.add_route('media_upload', '/uploader/{media_table:\w+}/{uid:\d+}/proceed{sep:/*}{name:.*}')
+
+ # To Trash routes
+ config.add_route('test', '/test')
+ config.add_route('test2', '/toast{sep:/*}{uid:(\d+)?}')
+
+ #config.add_route('link_user_entity', '/entity/{uid:(\d+)}/{year:\d+}/user/{user_id:(\d+)}')
+ #config.add_route('link_role_entity', '/entity/{uid:(\d+)}/{year:\d+}/role/{role_id:(\d+)}')
+
+
+ config.add_route('IntAdd', '/IntAdd/{modtype:\w+}')
+ config.add_route('IntProp', '/IntProp/{modtype:\w+}')
+
+ config.add_route('blog', '/blog/{id:\d+}/{slug}')
+ config.add_route('blog_action', '/blog/{action}',
+ factory='jm2l.security.EntryFactory')
+ config.scan()
+ return config.make_wsgi_app()