def test_default_team_hides_objects(self): import django_teams.models django_teams.models.CurrentUser = User.objects.get(pk=1) Team.objects.all().delete() Ownership.objects.all().delete() TeamStatus.objects.all().delete() team1 = Team(name="Team Mtn Dew") team1.save() team1.add_user(django_teams.models.CurrentUser, team_role=20) team2 = Team(name="Team ROFLCAT") team2.save() team2.add_user(django_teams.models.CurrentUser, team_role=20) site1 = Site.objects.get(pk=2) Ownership.grant_ownership(team1, site1) site2 = Site.objects.get(pk=3) Ownership.grant_ownership(team2, site2) django_teams.models.CurrentTeam = team2 override_manager(Site) site_test = Site.objects.get(pk=3) self.assertEqual(site_test, site2) self.assertEqual(Site.objects.all().count(), 1) self.assertEqual(Site.objects.all()[0].id, 3) self.assertEqual(Site.objects.all()[0], site2) django_teams.models.CurrentUser = None django_teams.models.CurrentTeam = None
def test_can_get_list_of_object_types(self): team = Team(name="Team Awesome") team.save() user = User.objects.get(pk=1) Ownership.grant_ownership(team, user) self.assertIn(User, team.owned_object_types())
def test_restricted_related_managers(self): # If we override the user, we should have no access to any groups import django_teams.models django_teams.models.CurrentUser = User.objects.get(pk=1) team1 = Team(name="Team Mtn Dew") team1.save() team1.add_user(django_teams.models.CurrentUser, team_role=20) Ownership.grant_ownership(team1, django_teams.models.CurrentUser) override_manager(User) self.assertEqual(User.objects.all().count(), 1) self.assertEqual(django_teams.models.CurrentUser.groups.all().count(), 0)
def test_can_get_list_of_object_types(self): team = Team(name="Team Awesome") team.save() user = User.objects.get(pk=1) Ownership.grant_ownership(team, user) owned_object_types = [] ownership_set = Ownership.objects.select_related('team').filter( team=team) for ownership in ownership_set.iterator(): if ownership.content_type.model_class() not in owned_object_types: owned_object_types += [ownership.content_type.model_class()] self.assertIn(User, owned_object_types)
def test_can_get_owned_objects(self): team = Team(name="Team Awesome") team.save() user = User.objects.get(pk=1) Ownership.grant_ownership(team, user) contenttype = ContentType.objects.get_for_model(User) owned_objects = [] ownership_set = Ownership.objects.select_related( 'team', 'content_type').filter(team=team, content_type=contenttype) for ownership in ownership_set.iterator(): owned_objects += [ownership.content_object] self.assertIn(user, owned_objects)
def test_can_gain_access(self): import django_teams.models django_teams.models.CurrentUser = User.objects.get(pk=1) self.assertEqual(Site.objects.all().count(), 3) site = Site.objects.get(pk=1) override_manager(Site) # Try granting the user access to one site team = Team(name="Team awesome") team.save() team.add_user(django_teams.models.CurrentUser, team_role=20) Ownership.grant_ownership(team, site) self.assertEqual(Site.objects.all().count(), 1)
def post(self, request, *args, **kwargs): project_id = self.kwargs['project_pk'] team_approval = Ownership() # Create an ownership object team_approval.content_type = ContentType.objects.get(app_label="project_share", model="project") team_approval.object_id = project_id if Project.objects.get(pk=project_id).classroom == None: team_approval = None return super(ApprovalCreate, self).post(request, *args, **kwargs) team_approval.team = Project.objects.get(pk=project_id).classroom team_approval.approved = False team_approval.save() return super(ApprovalCreate, self).post(request, *args, **kwargs)
def post(self, request, *args, **kwargs): """Create an ownership object.""" project_id = self.kwargs['project_pk'] team_approval = Ownership() team_approval.content_type = ContentType.objects.get(app_label="project_share", model="project") team_approval.object_id = project_id if Project.objects.get(pk=project_id).classroom is None: team_approval = None return super(ApprovalCreate, self).post(request, *args, **kwargs) team_approval.team = Project.objects.get(pk=project_id).classroom team_approval.approved = False team_approval.save() return super(ApprovalCreate, self).post(request, *args, **kwargs)
def test_can_get_approved_objects(self): team = Team(name="Team Awesome") team.save() ownership1 = Ownership(team=team, approved=True, object_id=1, content_type_id=1) ownership1.save() ownership2 = Ownership(team=team, approved=True, object_id=2, content_type_id=2) ownership2.save() ownership3 = Ownership(team=team, approved=False, object_id=3, content_type_id=3) ownership3.save() approved_objects = team.approved_objects() self.assertIn(ownership1, approved_objects) self.assertIn(ownership2, approved_objects) self.assertNotIn(ownership3, approved_objects)