def tearDown(self):
     """
     :return:
     """
     model_fixture.tear_down()
     HACS_ACCESS_CONTROL_LOCAL.__release_local__()
     super(TestSecurityManager, self).tearDown()
 def tearDown(self):
     """
     :return:
     """
     model_fixture.tear_down()
     HACS_ACCESS_CONTROL_LOCAL.__release_local__()
     super(TestSecurityManager, self).tearDown()
예제 #3
0
 def tearDown(self):
     """
     :return:
     """
     model_fixture.tear_down()
     super(TestHacsContainerModel, self).tearDown()
     HACS_ACCESS_CONTROL_LOCAL.__release_local__()
    def tearDown(self):
        super(TestDynamicRouteMiddleware, self).tearDown()
        for root, dirs, files in os.walk(settings.HACS_GENERATED_URLCONF_DIR):
            for file_name in files:
                if file_name.startswith('hacs'):
                    os.unlink(os.path.join(root, file_name))

        HACS_SITE_CACHE.clear()
        HACS_ACCESS_CONTROL_LOCAL.__release_local__()
def release_system_user():
    """
    :return:
    """
    current_user = getattr(HACS_ACCESS_CONTROL_LOCAL, 'current_user', None)
    assert isinstance(current_user, SystemUser), "System User is not attached yet!"
    backup_user = getattr(HACS_ACCESS_CONTROL_LOCAL, 'current_user_backup', None)
    HACS_ACCESS_CONTROL_LOCAL.__release_local__()
    if backup_user is not None:
        setattr(HACS_ACCESS_CONTROL_LOCAL, 'current_user', backup_user)
    def tearDown(self):

        super(TestFirewallMiddlewareFromBrowser, self).tearDown()
        # I don't know if bellow method required or automatically cleared after tear down
        self.cache.clear()
        for root, dirs, files in os.walk(settings.HACS_GENERATED_URLCONF_DIR):
            for file_name in files:
                if file_name.startswith('hacs'):
                    os.unlink(os.path.join(root, file_name))
        HACS_ACCESS_CONTROL_LOCAL.__release_local__()
def release_system_user():
    """
    :return:
    """
    current_user = getattr(HACS_ACCESS_CONTROL_LOCAL, 'current_user', None)
    assert isinstance(current_user,
                      SystemUser), "System User is not attached yet!"
    backup_user = getattr(HACS_ACCESS_CONTROL_LOCAL, 'current_user_backup',
                          None)
    HACS_ACCESS_CONTROL_LOCAL.__release_local__()
    if backup_user is not None:
        setattr(HACS_ACCESS_CONTROL_LOCAL, 'current_user', backup_user)
예제 #8
0
 def tearDown(self):
     """
     :return:
     """
     super(TestHelpersException, self).tearDown()
     HACS_ACCESS_CONTROL_LOCAL.__release_local__()
    def tearDown(self):

        super(TestMiddlewareFunctionException, self).tearDown()
        HACS_SITE_CACHE.clear()
        HACS_ACCESS_CONTROL_LOCAL.__release_local__()
 def tearDown(self):
     """"""
     model_fixture.tear_down()
     super(TestJsonBUsecase, self).tearDown()
     HACS_ACCESS_CONTROL_LOCAL.__release_local__()
예제 #11
0
 def tearDown(self):
     """"""
     model_fixture.tear_down()
     super(TestHacsQuerySet, self).tearDown()
     HACS_ACCESS_CONTROL_LOCAL.__release_local__()
예제 #12
0
    def test_delete(self):
        """
        :return:
        """
        news_item_cls = model_fixture.models.get('news_item_cls')
        date_folder_cls = model_fixture.models.get('date_folder_cls')
        news_item_1 = news_item_cls.objects.get_by_natural_key('news-one')
        news_item_1_copy = copy.copy(news_item_1)
        news_item_2 = news_item_cls.objects.get_by_natural_key(
            'news-two-with-local-roles')
        news_item_2_copy = copy.copy(news_item_2)
        date_folder1 = date_folder_cls.objects.get_by_natural_key('2016-10-10')
        date_folder1_copy = copy.copy(date_folder1)
        contributor2 = get_user_model().objects.get_by_natural_key(
            '*****@*****.**')
        # As we have one record
        self.assertGreater(news_item_cls.objects.count(), 0)
        self.assertGreater(date_folder_cls.objects.count(), 0)

        # Test delete security guard
        HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.memberuser
        try:
            news_item_1_copy.delete()
            raise AssertionError(
                "Code should not come here as member user don't have permission to delete any content"
            )
        except PermissionDenied:
            pass

        HACS_ACCESS_CONTROL_LOCAL.current_user = contributor2
        try:
            news_item_1_copy.delete()
            raise AssertionError(
                "Code should not come here as contributor user also don't has permission to "
                "delete any content")
        except PermissionDenied:
            pass

        HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.contributoruser
        try:
            news_item_1_copy.delete()
            # re-insert for further test
            attach_system_user()
            news_item_1.save()
            release_system_user()

            news_item_1_copy = copy.copy(news_item_1)
        except PermissionDenied:
            raise AssertionError(
                "Code should not come here as although contributor user don't has permission to "
                "delete any content but this certain contributor owner of this content"
            )

        HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.editoruser
        try:
            news_item_1_copy.delete()
            # re-insert for further test
            attach_system_user()
            news_item_1.save()
            release_system_user()

            news_item_1_copy = copy.copy(news_item_1)
        except PermissionDenied:
            raise AssertionError(
                "Code should not come here as editor user has permission to "
                "delete any content")

        HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.superuser
        try:
            news_item_1_copy.delete()
            # re-insert for further test

            attach_system_user()
            news_item_1.save()
            release_system_user()

            news_item_1_copy = copy.copy(news_item_1)
        except PermissionDenied:
            raise AssertionError(
                "Code should not come here as super user can perform any action"
            )

        # Test with local roles
        # Contributor user has local role Editor on news_item2
        HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.contributoruser
        try:
            news_item_2_copy.delete()

            attach_system_user()
            news_item_2.save()
            release_system_user()

            news_item_2_copy = copy.copy(news_item_2)
        except PermissionDenied:
            raise AssertionError(
                "Code should not come here, because contributor user has local role editor"
            )

        # Test By changing workflow state
        HACS_ACCESS_CONTROL_LOCAL.current_user = model_fixture.editoruser
        try:
            date_folder1_copy.delete()

            attach_system_user()
            date_folder1.save()
            release_system_user()

        except PermissionDenied:
            raise AssertionError(
                "Code should not come here, as editor user should have permission to delete."
            )
        date_folder1.state = 'published'

        attach_system_user()
        date_folder1.save()
        release_system_user()

        date_folder1_copy = copy.copy(date_folder1)

        try:
            date_folder1_copy.delete()
            raise AssertionError(
                "Code should not come here, as state changed to published, not"
                " `hacs.ManagePortal` permission holder can delete")
        except PermissionDenied:
            pass

        date_folder1_copy.owner = model_fixture.editoruser

        attach_system_user()
        date_folder1_copy.save()
        release_system_user()

        try:
            date_folder1_copy.delete()

            attach_system_user()
            date_folder1.save()
            release_system_user()
            date_folder1_copy = copy.copy(date_folder1)
        except PermissionDenied:
            raise AssertionError(
                "Code should not come here, as owner changed to editor user,"
                "can delete")

        # Testing Children removed before parent container moved
        HACS_ACCESS_CONTROL_LOCAL.__release_local__()
        news_folder_cls = model_fixture.models.get('news_folder_cls')
        news_folder = news_folder_cls.objects.all().first()
        news_folder.delete()

        # No records should be, as cascade applied
        self.assertEqual(news_item_cls.objects.count(), 0)
        self.assertEqual(date_folder_cls.objects.count(), 0)