Exemplo n.º 1
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    
    LdapCache.configure(settings['pyvac.ldap.yaml'])
    ldap = LdapCache()

    engine = create_engine('pyvac', settings, scoped=False)
    populate(engine, ldap)
    dispose_engine('pyvac')
Exemplo n.º 2
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    
    LdapCache.configure(settings['pyvac.ldap.yaml'])
    ldap = LdapCache()

    engine = create_engine('pyvac', settings, scoped=False)
    populate(engine, ldap)
    dispose_engine('pyvac')
Exemplo n.º 3
0
def configure_workers(sender=None, conf=None, **kwargs):
    # The Worker (child process of the celeryd) must have
    # it's own SQL Connection (A unix forking operation preserve fd)
    with open(sys.argv[1]) as fdesc:
        conf = yaml.load(fdesc, YAMLLoader)
    # XXX Register the database
    create_engine('pyvac', conf.get('databases').get('pyvac'), scoped=True)
    if conf.get('ldap'):
        LdapCache.configure(conf.get('ldap').get('conf'))
    SmtpCache.configure(conf.get('smtp'))

    # initialize configuration singleton
    ConfCache.configure(conf)
Exemplo n.º 4
0
def includeme(config):
    """
    Pyramid includeme file for the :class:`pyramid.config.Configurator`
    """

    ldap = False
    settings = config.registry.settings
    if 'pyvac.celery.yaml' in settings:
        configure(settings['pyvac.celery.yaml'])

    if 'pyvac.use_ldap' in settings:
        ldap = asbool(settings['pyvac.use_ldap'])
        if ldap:
            LdapCache.configure(settings['pyvac.ldap.yaml'])

    # call includeme for models configuration
    config.include('pyvac.models')

    # call includeme for request views configuration
    config.include('pyvac.views.request')

    # call includeme for account views configuration
    config.include('pyvac.views.account')

    # call includeme for credentials views configuration
    config.include('pyvac.views.credentials')

    # Jinja configuration
    # We don't use jinja2 filename, .html instead
    config.add_renderer('.html', renderer_factory)
    # helpers
    config.add_subscriber(add_urlhelpers, IBeforeRender)
    # i18n
    config.add_translation_dirs('locale/')
    config.set_locale_negotiator(locale_negotiator)

    # Javascript + Media
    config.add_static_view('static', 'static', cache_max_age=3600)

    config.add_route(
        u'login',
        u'/login',
    )
    config.add_view(u'pyvac.views.credentials.Login',
                    route_name=u'login',
                    renderer=u'templates/login.html')

    config.add_route(u'logout', u'/logout')
    config.add_view(u'pyvac.views.credentials.Logout',
                    route_name=u'logout',
                    permission=u'user_view')

    config.add_route('sudo', '/sudo')
    config.add_view(u'pyvac.views.credentials.Sudo',
                    route_name=u'sudo',
                    permission=u'sudo_view',
                    renderer='templates/sudo.html')

    # Home page
    config.add_route(u'index', u'/')
    config.add_view(u'pyvac.views.Index', route_name=u'index')

    config.add_route('home', '/home')
    config.add_view(u'pyvac.views.Home',
                    route_name=u'home',
                    renderer='templates/home.html',
                    permission=u'user_view')

    # Forbidden
    config.add_view(u'pyvac.views.base.forbidden_view', context=Forbidden)
    # Internal error
    config.add_view(u'pyvac.views.base.exception_view', context=Exception)

    # Forgot password
    config.add_route(
        u'reset_password',
        u'/reset',
    )
    config.add_view(u'pyvac.views.credentials.ResetPassword',
                    route_name=u'reset_password',
                    renderer=u'templates/password/reset.html')
    # Change password
    config.add_route(u'change_password', u'/password/{passhash}')
    config.add_view(u'pyvac.views.credentials.ChangePassword',
                    route_name=u'change_password',
                    renderer=u'templates/password/change.html')

    # Request submit
    config.add_route('request_send',
                     u'/pyvac/request_send',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.request.Send',
                    route_name=u'request_send',
                    renderer='json',
                    permission=u'user_view')

    # Manager view
    config.add_route(u'list_request', u'/pyvac/request')
    config.add_view(u'pyvac.views.request.List',
                    route_name=u'list_request',
                    renderer=u'templates/request/list.html',
                    permission=u'user_view')

    config.add_route('request_accept',
                     u'/pyvac/request_accept',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.request.Accept',
                    route_name=u'request_accept',
                    renderer='json',
                    permission=u'manager_view')

    config.add_route('request_refuse',
                     u'/pyvac/request_refuse',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.request.Refuse',
                    route_name=u'request_refuse',
                    renderer='json',
                    permission=u'manager_view')

    config.add_route('request_cancel',
                     u'/pyvac/request_cancel',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.request.Cancel',
                    route_name=u'request_cancel',
                    renderer='json',
                    permission=u'user_view')

    # Pool history
    config.add_route('pool_history',
                     u'/pyvac/pool_history/{user_id}',
                     request_method=u'GET')
    config.add_view(u'pyvac.views.request.PoolHistory',
                    route_name=u'pool_history',
                    renderer=u'templates/request/pool_history.html',
                    permission=u'user_view')

    config.add_route('request_history',
                     u'/pyvac/request_history/{req_id}',
                     request_method=u'GET')
    config.add_view(u'pyvac.views.request.History',
                    route_name=u'request_history',
                    renderer=u'templates/request/history.html',
                    permission=u'user_view')

    # Admin  view
    config.add_route(u'list_account', u'/pyvac/account')
    config.add_view(u'pyvac.views.account.List',
                    route_name=u'list_account',
                    renderer=u'templates/account/list.html',
                    permission=u'admin_view')

    config.add_route(u'list_user_pool', u'/pyvac/pool_users')
    config.add_view(u'pyvac.views.account.ListPool',
                    route_name=u'list_user_pool',
                    renderer=u'templates/account/pool.html',
                    permission=u'admin_view')

    config.add_route(u'create_account', u'/pyvac/account/new')
    config.add_view(u'pyvac.views.account.Create',
                    route_name=u'create_account',
                    renderer=u'templates/account/create.html',
                    permission=u'admin_view')

    config.add_route(u'edit_account', u'/pyvac/account/{user_id}')
    config.add_view(u'pyvac.views.account.Edit',
                    route_name=u'edit_account',
                    renderer=u'templates/account/edit.html',
                    permission=u'user_view')

    config.add_route(u'delete_account', u'/pyvac/delete/account/{user_id}')
    config.add_view(u'pyvac.views.account.Delete',
                    route_name=u'delete_account',
                    renderer=u'templates/account/delete.html',
                    permission=u'admin_view')

    # who's who
    config.add_route(
        u'whoswho',
        u'/who',
    )
    config.add_view(u'pyvac.views.account.Whoswho',
                    route_name=u'whoswho',
                    renderer=u'templates/whoswho.html')

    config.add_route(u'export_request', u'/pyvac/export')
    config.add_view(u'pyvac.views.request.Export',
                    route_name=u'export_request',
                    renderer=u'templates/request/export.html',
                    permission=u'admin_view')

    config.add_route(u'request_export',
                     u'/pyvac/exported',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.request.Exported',
                    route_name=u'request_export',
                    renderer=u'templates/request/exported.html',
                    permission=u'admin_view')

    config.add_route(u'prevision_request', u'/pyvac/prevision')
    config.add_view(u'pyvac.views.request.Prevision',
                    route_name=u'prevision_request',
                    renderer=u'templates/request/prevision.html',
                    permission=u'admin_view')

    if ldap:
        config.add_route(u'squad_overview', u'/pyvac/squad_overview')
        config.add_view(u'pyvac.views.request.SquadOverview',
                        route_name=u'squad_overview',
                        renderer=u'templates/request/squad_overview.html',
                        permission=u'manager_view')

        config.add_route(u'chapter_overview', u'/pyvac/chapter_overview')
        config.add_view(u'pyvac.views.request.ChapterOverview',
                        route_name=u'chapter_overview',
                        renderer=u'templates/request/chapter_overview.html',
                        permission=u'manager_view')

    config.add_route(u'manager_overview', u'/pyvac/manager_overview')
    config.add_view(u'pyvac.views.request.ManagerOverview',
                    route_name=u'manager_overview',
                    renderer=u'templates/request/manager_overview.html',
                    permission=u'manager_view')

    # Pool managment
    config.add_route(u'list_pools', u'/pyvac/pool')
    config.add_view(u'pyvac.views.pool.List',
                    route_name=u'list_pools',
                    renderer=u'templates/pool/list.html',
                    permission=u'admin_view')

    config.add_route(u'create_pool', u'/pyvac/pool/new')
    config.add_view(u'pyvac.views.pool.Create',
                    route_name=u'create_pool',
                    renderer=u'templates/pool/create.html',
                    permission=u'admin_view')

    config.add_route(u'edit_pool', u'/pyvac/pool/{pool_id}')
    config.add_view(u'pyvac.views.pool.Edit',
                    route_name=u'edit_pool',
                    renderer=u'templates/pool/edit.html',
                    permission=u'user_view')

    config.add_route(u'delete_pool', u'/pyvac/delete/pool/{pool_id}')
    config.add_view(u'pyvac.views.pool.Delete',
                    route_name=u'delete_pool',
                    renderer=u'templates/pool/delete.html',
                    permission=u'admin_view')

    # Holiday request
    config.add_route('list_holiday',
                     u'/pyvac/list_holiday',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.holiday.List',
                    route_name=u'list_holiday',
                    renderer='json',
                    permission=u'user_view')

    # Retrieve today vacations
    config.add_route('request_off', u'/pyvac/off', request_method=u'GET')
    config.add_view(u'pyvac.views.request.Off',
                    route_name=u'request_off',
                    renderer='json')

    # Retrieve today vacations (HTML)
    config.add_route(u'request_off_html', u'/pyvac/off.html')
    config.add_view(u'pyvac.views.base.ViewBase',
                    route_name=u'request_off_html',
                    renderer=u'templates/off.html')
Exemplo n.º 5
0
def includeme(config):
    """
    Pyramid includeme file for the :class:`pyramid.config.Configurator`
    """

    settings = config.registry.settings
    if 'pyvac.celery.yaml' in settings:
        configure(settings['pyvac.celery.yaml'])

    if 'pyvac.use_ldap' in settings:
        ldap = asbool(settings['pyvac.use_ldap'])
        if ldap:
            LdapCache.configure(settings['pyvac.ldap.yaml'])

    # Jinja configuration
    # We don't use jinja2 filename, .html instead
    config.add_renderer('.html', renderer_factory)
    # helpers
    config.add_subscriber(add_urlhelpers, IBeforeRender)
    # i18n
    config.add_translation_dirs('locale/')
    config.set_locale_negotiator(locale_negotiator)

    # Javascript + Media
    config.add_static_view('static', 'static', cache_max_age=3600)

    config.add_route(u'login', u'/login',)
    config.add_view(u'pyvac.views.credentials.Login',
                    route_name=u'login',
                    renderer=u'templates/login.html')

    config.add_route(u'logout', u'/logout')
    config.add_view(u'pyvac.views.credentials.Logout',
                    route_name=u'logout',
                    permission=u'user_view')

    config.add_route('sudo', '/sudo')
    config.add_view(u'pyvac.views.credentials.Sudo',
                    route_name=u'sudo',
                    permission=u'sudo_view',
                    renderer='templates/sudo.html')

    # Home page
    config.add_route(u'index', u'/')
    config.add_view(u'pyvac.views.Index',
                    route_name=u'index')

    config.add_route('home', '/home')
    config.add_view(u'pyvac.views.Home',
                    route_name=u'home',
                    renderer='templates/home.html',
                    permission=u'user_view')

    # Forbidden
    config.add_view(u'pyvac.views.base.forbidden_view',
                    context=Forbidden)
    # Internal error
    config.add_view(u'pyvac.views.base.exception_view',
                    context=Exception)

    # Forgot password
    config.add_route(u'reset_password', u'/reset',)
    config.add_view(u'pyvac.views.credentials.ResetPassword',
                    route_name=u'reset_password',
                    renderer=u'templates/password/reset.html')
    # Change password
    config.add_route(u'change_password', u'/password/{passhash}')
    config.add_view(u'pyvac.views.credentials.ChangePassword',
                    route_name=u'change_password',
                    renderer=u'templates/password/change.html')

    # Request submit
    config.add_route('request_send', u'/pyvac/request_send',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.request.Send',
                    route_name=u'request_send',
                    renderer='json',
                    permission=u'user_view')

    # Manager view
    config.add_route(u'list_request', u'/pyvac/request')
    config.add_view(u'pyvac.views.request.List',
                    route_name=u'list_request',
                    renderer=u'templates/request/list.html',
                    permission=u'user_view')

    config.add_route('request_accept', u'/pyvac/request_accept',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.request.Accept',
                    route_name=u'request_accept',
                    renderer='json',
                    permission=u'manager_view')

    config.add_route('request_refuse', u'/pyvac/request_refuse',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.request.Refuse',
                    route_name=u'request_refuse',
                    renderer='json',
                    permission=u'manager_view')

    config.add_route('request_cancel', u'/pyvac/request_cancel',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.request.Cancel',
                    route_name=u'request_cancel',
                    renderer='json',
                    permission=u'user_view')

    # Pool history
    config.add_route('pool_history', u'/pyvac/pool_history/{user_id}',
                     request_method=u'GET')
    config.add_view(u'pyvac.views.request.PoolHistory',
                    route_name=u'pool_history',
                    renderer=u'templates/request/pool_history.html',
                    permission=u'user_view')

    # Admin  view
    config.add_route(u'list_account', u'/pyvac/account')
    config.add_view(u'pyvac.views.account.List',
                    route_name=u'list_account',
                    renderer=u'templates/account/list.html',
                    permission=u'admin_view')

    config.add_route(u'create_account', u'/pyvac/account/new')
    config.add_view(u'pyvac.views.account.Create',
                    route_name=u'create_account',
                    renderer=u'templates/account/create.html',
                    permission=u'admin_view')

    config.add_route(u'edit_account', u'/pyvac/account/{user_id}')
    config.add_view(u'pyvac.views.account.Edit',
                    route_name=u'edit_account',
                    renderer=u'templates/account/edit.html',
                    permission=u'user_view')

    config.add_route(u'delete_account', u'/pyvac/delete/account/{user_id}')
    config.add_view(u'pyvac.views.account.Delete',
                    route_name=u'delete_account',
                    renderer=u'templates/account/delete.html',
                    permission=u'admin_view')

    config.add_route(u'export_request', u'/pyvac/export')
    config.add_view(u'pyvac.views.request.Export',
                    route_name=u'export_request',
                    renderer=u'templates/request/export.html',
                    permission=u'admin_view')

    config.add_route(u'request_export', u'/pyvac/exported',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.request.Exported',
                    route_name=u'request_export',
                    renderer=u'templates/request/exported.html',
                    permission=u'admin_view')

    config.add_route(u'prevision_request', u'/pyvac/prevision')
    config.add_view(u'pyvac.views.request.Prevision',
                    route_name=u'prevision_request',
                    renderer=u'templates/request/prevision.html',
                    permission=u'admin_view')

    # Holiday request
    config.add_route('list_holiday', u'/pyvac/list_holiday',
                     request_method=u'POST')
    config.add_view(u'pyvac.views.holiday.List',
                    route_name=u'list_holiday',
                    renderer='json',
                    permission=u'user_view')

    # Retrieve today vacations
    config.add_route('request_off', u'/pyvac/off',
                     request_method=u'GET')
    config.add_view(u'pyvac.views.request.Off',
                    route_name=u'request_off',
                    renderer='json')