def restore_object(self, attrs, instance=None): if instance: return super(OrganizationSerializer, self)\ .restore_object(attrs, instance) org = attrs.get('user.username', None) org_name = attrs.get('name', None) org_exists = False creator = None try: User.objects.get(username=org) except User.DoesNotExist: pass else: self.errors['org'] = u'Organization %s already exists.' % org org_exists = True if 'request' in self.context: creator = self.context['request'].user if org and org_name and creator and not org_exists: attrs['organization'] = org_name orgprofile = tools.create_organization_object(org, creator, attrs) return orgprofile if not org: self.errors['org'] = u'org is required!' if not org_name: self.errors['name'] = u'name is required!' return attrs
def test_optional_organization_active_status(self): """ Test that setting ORG_ON_CREATE_IS_ACTIVE changes the default Organization is_active status """ profile = tools.create_organization_object("modilabs", self.user) profile.save() self.assertFalse(profile.user.is_active)
def test_delete_organization(self): profile = tools.create_organization_object("modilabs", self.user) profile.save() profile_id = profile.pk count = OrganizationProfile.objects.all().count() cache.set('{}{}'.format(IS_ORG, profile_id), True) profile.delete() safe_delete('{}{}'.format(IS_ORG, profile_id)) self.assertIsNone(cache.get('{}{}'.format(IS_ORG, profile_id))) self.assertEqual(count - 1, OrganizationProfile.objects.all().count())
def test_create_organization_team(self): profile = tools.create_organization_object("modilabs", self.user) profile.save() organization = profile.user team_name = "dev" perms = ["is_org_owner"] tools.create_organization_team(organization, team_name, perms) team_name = "modilabs#%s" % team_name dev_team = Team.objects.get(organization=organization, name=team_name) self.assertIsInstance(dev_team, Team) self.assertIsInstance(dev_team.permissions.get(codename="is_org_owner"), Permission)
def create(self, validated_data): # get('user.username') does not work anymore: # username is in a nested dict org = validated_data.get('user', {}).get('username', None) creator = None if 'request' in self.context: creator = self.context['request'].user orgprofile = tools.create_organization_object(org, creator, validated_data) orgprofile.save() return orgprofile
def test_create_organization_team(self): profile = tools.create_organization_object("modilabs", self.user) profile.save() organization = profile.user team_name = 'dev' perms = [ 'is_org_owner', ] tools.create_organization_team(organization, team_name, perms) team_name = "modilabs#%s" % team_name dev_team = Team.objects.get(organization=organization, name=team_name) self.assertIsInstance(dev_team, Team) self.assertIsInstance( dev_team.permissions.get(codename='is_org_owner'), Permission)
def create(self, validated_data): org = validated_data.get('user') if org: org = org.get('username') org_name = validated_data.get('name', None) creator = None if 'request' in self.context: creator = self.context['request'].user validated_data['organization'] = org_name profile = tools.create_organization_object(org, creator, validated_data) profile.save() return profile
def test_create_organization_creates_team_and_perms(self): # create a user - bob profile = tools.create_organization_object("modilabs", self.user) profile.save() self.assertIsInstance(profile, OrganizationProfile) organization_profile = OrganizationProfile.objects.get( user__username="******") # check organization was created self.assertTrue(organization_profile.is_organization) self.assertTrue(hasattr(profile, 'metadata')) # check that the default team was created team_name = "modilabs#%s" % Team.OWNER_TEAM_NAME team = Team.objects.get( organization=organization_profile.user, name=team_name) self.assertIsInstance(team, Team) self.assertIn(team.group_ptr, self.user.groups.all()) self.assertTrue(self.user.has_perm('api.is_org_owner'))
def test_create_organization_creates_team_and_perms(self): # create a user - bob profile = tools.create_organization_object("modilabs", self.user) profile.save() self.assertIsInstance(profile, OrganizationProfile) organization_profile = OrganizationProfile.objects.get( user__username="******") # check organization was created self.assertTrue(organization_profile.is_organization) self.assertTrue(hasattr(profile, 'metadata')) # check that the default team was created team_name = "modilabs#%s" % Team.OWNER_TEAM_NAME team = Team.objects.get(organization=organization_profile.user, name=team_name) self.assertIsInstance(team, Team) self.assertIn(team.group_ptr, self.user.groups.all()) self.assertTrue(self.user.has_perm('api.is_org_owner'))
def _create_organization(self, org_name, user): profile = tools.create_organization_object(org_name, user) profile.save() self.organization = profile.user return self.organization