Example #1
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """
    engine = engine_from_config(settings, "sqlalchemy.")
    DBSession.configure(bind=engine)
    warnings.filterwarnings("ignore", ".*use_labels*.", category=exc.SAWarning)

    session_factory = UnencryptedCookieSessionFactoryConfig("changelater")
    authorization_policy = ACLAuthorizationPolicy()
    authentication_policy = AuthTktAuthenticationPolicy("894983832", callback=groupfinder)
    config = Configurator(
        settings=settings,
        authentication_policy=authentication_policy,
        authorization_policy=authorization_policy,
        request_factory=RequestExtension,
        root_factory=RootACL,
        session_factory=session_factory,
    )

    config.add_static_view("themes", "courtrecords:themes", cache_max_age=3600)

    # Public Stuff
    config.add_route("home", "/")
    config.add_route("about", "/about")
    config.add_route("contact", "/contact")
    config.add_route("login", "/login")
    config.add_route("logout", "/logout")
    config.add_route("register", "/register")
    config.add_route("search", "/search")
    config.add_route("get_results", "/search/get")
    config.add_route("basket", "/basket")
    config.add_route("invoice", "/invoice/{hash}")
    config.add_route("record", "/record/{id}")

    # Management Stuff
    config.add_route("manage", "/manage")
    config.add_route("manage_users", "/manage/users")
    config.add_route("manage_orders", "/manage/orders")
    config.add_route("manage_order", "/manage/orders/{id}")
    config.add_route("manage_list_data", "/manage/data/{table}")
    config.add_route("manage_getlist_data", "/manage/data/{table}/list")
    config.add_route("manage_add_data", "/manage/data/{table}/add")
    config.add_route("manage_edit_data", "/manage/data/{table}/edit/{id}")
    config.add_route("manage_delete_data", "/manage/data/{table}/delete/{id}")
    config.add_route("manage_entities", "/manage/entities")
    config.add_route("manage_entities_get", "/manage/entities/get")
    config.add_route("manage_cases", "/manage/cases")
    config.add_route("manage_cases_get", "/manage/cases/get")
    config.add_route("manage_records_next", "/manage/records/next")
    config.add_route("manage_records_previous", "/manage/records/previous")
    config.add_route("manage_records", "/manage/records/{case_id}")
    config.add_route("manage_importer", "/manage/importer")
    config.add_route("manage_search", "/manage/search")
    config.add_route("manage_search_quick", "/manage/search/quick")
    config.add_route("manage_utilities", "/manage/utilities")

    # System Stuff
    config.add_route("cronjob_anonymize", "/cronjob/anonymize")

    # Basic Authentication Tests
    config.add_route("test_anon", "/test/anonymous")
    config.add_route("test_auth", "/test/authenticated")
    config.add_route("test_edit", "/test/editor")
    config.add_route("test_admin", "/test/administrator")

    config.include("pyramid_mailer")
    config.scan()
    return config.make_wsgi_app()