def base_configure(global_config, **settings): for key, value in conf_defaults.items(): settings.setdefault(key, value) _resolve_dotted(settings) engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) authentication_policy = AuthTktAuthenticationPolicy(settings['leirirekkari.secret'], callback=groupfinder) authorization_policy = ACLAuthorizationPolicy() config = Configurator(settings=settings, root_factory=Root) config.set_request_property(get_user, 'user', reify=True) config.set_authentication_policy(authentication_policy) config.set_authorization_policy(authorization_policy) config.set_default_permission('view') # config.add_static_view('static', 'static', cache_max_age=3600) config.add_static_view(name=settings['leirirekkari.static_name'], path=settings['leirirekkari.static_path'], cache_max_age=3600) config.add_forbidden_view(forbidden) config.add_notfound_view(notfound, append_slash=True) config.add_translation_dirs('leirirekkari:locale/') config.set_locale_negotiator(leirirekkari_locale_negotiator) config.add_subscriber('leirirekkari.subscribers.add_localizer', 'pyramid.events.NewRequest') config.add_subscriber('leirirekkari.subscribers.add_renderer_globals', 'pyramid.events.BeforeRender') config.add_subscriber('leirirekkari.subscribers.breadcrumb_subscriber', 'pyramid.events.NewRequest') config.include('pyramid_mailer') session_factory = settings['leirirekkari.session_factory'][0](**settings) config.set_session_factory(session_factory) # Include modules listed in 'leirirekkari.base_includes': for module in settings['leirirekkari.base_includes']: config.include(module) config.commit() config.scan() return config
def main(argv=sys.argv): if len(argv) != 2: usage(argv) config_uri = argv[1] setup_logging(config_uri) settings = get_appsettings(config_uri) engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) Base.metadata.create_all(engine) with transaction.manager: sudo_user = User('superadmin', '') sudo_user.set_password('password') sudo_user.needs_password_change = True sudo_user.language = 'fi_FI' DBSession.add(sudo_user) DBSession.flush() sudo_group = Group('superadmin') sudo_group.set_leader_id(sudo_user.id) DBSession.add(sudo_group) DBSession.flush() sudo_user.groups = [sudo_group] DBSession.add(sudo_user) DBSession.flush() for setting_key, setting_value in initial_settings.items(): tmp_setting = Setting(setting_key, setting_value, True) DBSession.add(tmp_setting) DBSession.flush() for permission in sorted(permissions_list): tmp_privilege = Privilege(permission) DBSession.add(tmp_privilege) DBSession.flush() print '' print 'login variables: superadmin / password' print ''