Ejemplo n.º 1
0
    def test_post(self):
        admin = self.factory.create_admin()
        rv = self.make_request(
            "post",
            "/api/settings/organization",
            data={"auth_password_login_enabled": False},
            user=admin,
        )
        self.assertEqual(rv.json["settings"]["auth_password_login_enabled"],
                         False)
        self.assertEqual(
            self.factory.org.settings["settings"]
            ["auth_password_login_enabled"], False)

        rv = self.make_request(
            "post",
            "/api/settings/organization",
            data={"auth_password_login_enabled": True},
            user=admin,
        )
        updated_org = Organization.get_by_slug(self.factory.org.slug)
        self.assertEqual(rv.json["settings"]["auth_password_login_enabled"],
                         True)
        self.assertEqual(
            updated_org.settings["settings"]["auth_password_login_enabled"],
            True)
Ejemplo n.º 2
0
def _get_current_org():
    if 'org' in g:
        return g.org

    slug = request.view_args.get('org_slug', g.get('org_slug', 'default'))
    g.org = Organization.get_by_slug(slug)
    logging.debug("Current organization: %s (slug: %s)", g.org, slug)
    return g.org
Ejemplo n.º 3
0
def _get_current_org():
    if 'org' in g:
        return g.org

    slug = request.view_args.get('org_slug', g.get('org_slug', 'default'))
    g.org = Organization.get_by_slug(slug)
    logging.debug("Current organization: %s (slug: %s)", g.org, slug)
    return g.org
Ejemplo n.º 4
0
 def test_updates_google_apps_domains(self):
     admin = self.factory.create_admin()
     domains = ['example.com']
     rv = self.make_request('post',
                            '/api/settings/organization',
                            data={'auth_google_apps_domains': domains},
                            user=admin)
     updated_org = Organization.get_by_slug(self.factory.org.slug)
     self.assertEqual(updated_org.google_apps_domains, domains)
Ejemplo n.º 5
0
def _get_current_org():
    if 'org' in g and g.org is not None:
        return g.org

    slug = "default"

    g.org = Organization.get_by_slug(slug)
    logging.debug("Current organization: %s (slug: %s)", g.org, slug)
    return g.org
Ejemplo n.º 6
0
    def test_post(self):
        admin = self.factory.create_admin()
        rv = self.make_request('post', '/api/settings/organization', data={'auth_password_login_enabled': False}, user=admin)
        self.assertEqual(rv.json['settings']['auth_password_login_enabled'], False)
        self.assertEqual(self.factory.org.settings['settings']['auth_password_login_enabled'], False)

        rv = self.make_request('post', '/api/settings/organization', data={'auth_password_login_enabled': True}, user=admin)
        updated_org = Organization.get_by_slug(self.factory.org.slug)
        self.assertEqual(rv.json['settings']['auth_password_login_enabled'], True)
        self.assertEqual(updated_org.settings['settings']['auth_password_login_enabled'], True)
Ejemplo n.º 7
0
 def test_updates_microsoft_apps_domains(self):
     admin = self.factory.create_admin()
     domains = ["example.com"]
     rv = self.make_request(
         "post",
         "/api/settings/organization",
         data={"auth_microsoft_apps_domains": domains},
         user=admin,
     )
     updated_org = Organization.get_by_slug(self.factory.org.slug)
     self.assertEqual(updated_org.microsoft_apps_domains, domains)
Ejemplo n.º 8
0
def _get_current_org():
    if "org" in g:
        return g.org

    if request.view_args is None:
        slug = g.get("org_slug", "default")
    else:
        slug = request.view_args.get("org_slug", g.get("org_slug", "default"))

    g.org = Organization.get_by_slug(slug)
    logging.debug("Current organization: %s (slug: %s)", g.org, slug)
    return g.org
Ejemplo n.º 9
0
def _get_current_org():
    if 'org' in g:
        return g.org

    slug = request.view_args.get('org_slug', g.get('org_slug', 'default'))

    # slug 翻译过来就是:标称, 单位的意思。在 django 中,slug 指有效 URL 的一部分,能使 URL 更加清晰易懂。比如有这样一篇文章,标题是 "13岁的孩子",
    # 它的 URL 地址是 "/posts/13-sui-de-hai-zi",后面这一部分便是 slug。

    g.org = Organization.get_by_slug(slug)
    logging.debug("Current organization: %s (slug: %s)", g.org, slug)
    return g.org
Ejemplo n.º 10
0
    def test_post(self):
        admin = self.factory.create_admin()
        rv = self.make_request('post',
                               '/api/settings/organization',
                               data={'auth_password_login_enabled': False},
                               user=admin)
        self.assertEqual(rv.json['settings']['auth_password_login_enabled'],
                         False)
        self.assertEqual(
            self.factory.org.settings['settings']
            ['auth_password_login_enabled'], False)

        rv = self.make_request('post',
                               '/api/settings/organization',
                               data={'auth_password_login_enabled': True},
                               user=admin)
        updated_org = Organization.get_by_slug(self.factory.org.slug)
        self.assertEqual(rv.json['settings']['auth_password_login_enabled'],
                         True)
        self.assertEqual(
            updated_org.settings['settings']['auth_password_login_enabled'],
            True)
from playhouse.migrate import PostgresqlMigrator, migrate

if __name__ == '__main__':
    migrator = PostgresqlMigrator(db.database)
    with db.database.transaction():

        if not NotificationDestination.table_exists():
            NotificationDestination.create_table()
            
            # Update alert subscription fields
            migrate(
                migrator.add_column('alert_subscriptions', 'destination_id', AlertSubscription.destination)
            )

            try:
                org = Organization.get_by_slug('default')
                user = User.select().where(User.org==org, peewee.SQL("%s = ANY(groups)", org.admin_group.id)).get()
            except Exception:
                print "!!! Warning: failed finding default organization or admin user, won't migrate Webhook/HipChat alert subscriptions."
                exit()

            if settings.WEBHOOK_ENDPOINT:
                # Have all existing alerts send to webhook if already configured
                schema = get_configuration_schema_for_destination_type('webhook')
                conf = {'url': settings.WEBHOOK_ENDPOINT}
                if settings.WEBHOOK_USERNAME:
                    conf['username'] = settings.WEBHOOK_USERNAME
                    conf['password'] = settings.WEBHOOK_PASSWORD
                options = ConfigurationContainer(conf, schema)

                webhook = NotificationDestination.create(
Ejemplo n.º 12
0
WEBHOOK_PASSWORD = os.environ.get('REDASH_WEBHOOK_PASSWORD', None)

if __name__ == '__main__':
    migrator = PostgresqlMigrator(db.database)
    with db.database.transaction():

        if not NotificationDestination.table_exists():
            NotificationDestination.create_table()
            
            # Update alert subscription fields
            migrate(
                migrator.add_column('alert_subscriptions', 'destination_id', AlertSubscription.destination)
            )

            try:
                org = Organization.get_by_slug('default')
                user = User.select().where(User.org==org, peewee.SQL("%s = ANY(groups)", org.admin_group.id)).get()
            except Exception:
                print("!!! Warning: failed finding default organization or admin user, won't migrate Webhook/HipChat alert subscriptions.")
                exit()

            if WEBHOOK_ENDPOINT:
                # Have all existing alerts send to webhook if already configured
                schema = get_configuration_schema_for_destination_type('webhook')
                conf = {'url': WEBHOOK_ENDPOINT}
                if WEBHOOK_USERNAME:
                    conf['username'] = WEBHOOK_USERNAME
                    conf['password'] = WEBHOOK_PASSWORD
                options = ConfigurationContainer(conf, schema)

                webhook = NotificationDestination.create(
Ejemplo n.º 13
0
 def test_updates_google_apps_domains(self):
     admin = self.factory.create_admin()
     domains = ['example.com']
     rv = self.make_request('post', '/api/settings/organization', data={'auth_google_apps_domains': domains}, user=admin)
     updated_org = Organization.get_by_slug(self.factory.org.slug)
     self.assertEqual(updated_org.google_apps_domains, domains)