def test_returns_only_queries_in_given_groups(self): ds1 = self.factory.create_data_source() ds2 = self.factory.create_data_source() group1 = models.Group(name="g1", org=ds1.org, permissions=['create', 'view']) group2 = models.Group(name="g2", org=ds1.org, permissions=['create', 'view']) q1 = self.factory.create_query(data_source=ds1) q2 = self.factory.create_query(data_source=ds2) db.session.add_all([ ds1, ds2, group1, group2, q1, q2, models.DataSourceGroup(group=group1, data_source=ds1), models.DataSourceGroup(group=group2, data_source=ds2) ]) db.session.flush() self.assertIn(q1, list(models.Query.all_queries([group1.id]))) self.assertNotIn(q2, list(models.Query.all_queries([group1.id]))) self.assertIn(q1, list(models.Query.all_queries([group1.id, group2.id]))) self.assertIn(q2, list(models.Query.all_queries([group1.id, group2.id])))
def create_root(email, name, google_auth=False, password=None, organization="default"): """ Create root user. """ print("Creating root user (%s, %s) in organization %s..." % (email, name, organization)) print("Login with Google Auth: %r\n" % google_auth) user = models.User.query.filter(models.User.email == email).first() if user is not None: print("User [%s] is already exists." % email) exit(1) slug = "default" default_org = models.Organization.query.filter( models.Organization.slug == slug).first() if default_org is None: default_org = models.Organization(name=organization, slug=slug, settings={}) admin_group = models.Group( name="admin", permissions=["admin", "super_admin"], org=default_org, type=models.Group.BUILTIN_GROUP, ) default_group = models.Group( name="default", permissions=models.Group.DEFAULT_PERMISSIONS, org=default_org, type=models.Group.BUILTIN_GROUP, ) models.db.session.add_all([default_org, admin_group, default_group]) models.db.session.commit() user = models.User( org=default_org, email=email, name=name, group_ids=[admin_group.id, default_group.id], ) if not google_auth: user.hash_password(password) try: models.db.session.add(user) models.db.session.commit() except Exception as e: print("Failed creating root user: %s" % e) exit(1)
def test_returns_groups_with_specified_names(self): org1 = self.factory.create_org() org2 = self.factory.create_org() matching_group1 = models.Group(id=999, name="g1", org=org1) matching_group2 = models.Group(id=888, name="g2", org=org1) non_matching_group = models.Group(id=777, name="g1", org=org2) groups = models.Group.find_by_name(org1, ["g1", "g2"]) self.assertIn(matching_group1, groups) self.assertIn(matching_group2, groups) self.assertNotIn(non_matching_group, groups)
def post(self): json = request.get_json(force=True) g = models.Group(name=json['name'], tables=json["tables"], permissions=json["permissions"]) g.save() return g.to_dict()
def post(self): name = request.json['name'] group = models.Group(name=name, org=self.current_org) models.db.session.add(group) models.db.session.commit() self.record_event({ 'action': 'create', 'object_id': group.id, 'object_type': 'group' }) return group.to_dict()
def post(self): name = request.json["name"] group = models.Group(name=name, org=self.current_org) models.db.session.add(group) models.db.session.commit() self.record_event({ "action": "create", "object_id": group.id, "object_type": "group" }) return group.to_dict()
def create(name, permissions=None, organization='default'): print("Creating group (%s)..." % (name)) org = models.Organization.get_by_slug(organization) permissions = extract_permissions_string(permissions) print("permissions: [%s]" % ",".join(permissions)) try: models.db.session.add( models.Group(name=name, org=org, permissions=permissions)) models.db.session.commit() except Exception as e: print("Failed create group: %s" % e) exit(1)
def post(self): name = request.json['name'] isAdmin = request.json['isAdmin'] permission = models.Group.DEFAULT_PERMISSIONS if isAdmin == True: permission = models.Group.REGULAR_ADMIN_PERMISSIONS group = models.Group(name=name, permissions=permission, org=self.current_org, type=models.Group.REGULAR_GROUP) models.db.session.add(group) models.db.session.commit() self.record_event({ 'action': 'create', 'object_id': group.id, 'object_type': 'group' }) return group.to_dict()
def test_search_respects_groups(self): other_group = models.Group(org=self.factory.org, name="Other Group") db.session.add(other_group) ds = self.factory.create_data_source(group=other_group) q1 = self.factory.create_query(description="Testing search", data_source=ds) q2 = self.factory.create_query(description="Testing searching") q3 = self.factory.create_query(description="Testing sea rch") queries = list(models.Query.search("Testing", [self.factory.default_group.id])) self.assertNotIn(q1, queries) self.assertIn(q2, queries) self.assertIn(q3, queries) queries = list(models.Query.search("Testing", [other_group.id, self.factory.default_group.id])) self.assertIn(q1, queries) self.assertIn(q2, queries) self.assertIn(q3, queries) queries = list(models.Query.search("Testing", [other_group.id])) self.assertIn(q1, queries) self.assertNotIn(q2, queries) self.assertNotIn(q3, queries)
def test_returns_no_groups(self): org1 = self.factory.create_org() models.Group(id=999, name="g1", org=org1) self.assertEqual([], models.Group.find_by_name(org1, ["non-existing"]))