diff --git a/django_adminlte_2/templatetags/sidebar_menu.py b/django_adminlte_2/templatetags/sidebar_menu.py index 76f146fdda4d5d9e26e105dfabd6f2422679295f..490b03ac39b94b5cf6106e6045451a261d4e5301 100644 --- a/django_adminlte_2/templatetags/sidebar_menu.py +++ b/django_adminlte_2/templatetags/sidebar_menu.py @@ -278,7 +278,7 @@ def is_allowed_node(user, node): ) # Check whitelist when in strict mode assuming no properties have been set on the node. - if not has_property and STRICT_POLICY and check_for_strict_whitelisted_node(node): + if not has_property and STRICT_POLICY and (check_for_strict_whitelisted_node(node) or user.is_superuser): allowed = True return allowed diff --git a/tests/test_templatetags_sidebar_menu.py b/tests/test_templatetags_sidebar_menu.py index 246c3b9d7ce53a805f2f781ce4a2756d4de56cd1..75c47fdb2dd37aeba1f400b5d975a2c15a23b43a 100644 --- a/tests/test_templatetags_sidebar_menu.py +++ b/tests/test_templatetags_sidebar_menu.py @@ -698,6 +698,10 @@ class TemplateTagSidebarMenuTestCase(TestCase): # The tests do not test a combination of node options. # EX: no test for login required and required perms as requiring perms implicitly means user logged in. + # ************************************************************************** + # Anonymous User + # ************************************************************************** + # Anonymous - login off - strict off def test_is_allowed_node_is_true_when_user_anonymous_login_off_strict_off_node_off(self): @@ -935,7 +939,7 @@ class TemplateTagSidebarMenuTestCase(TestCase): 'route': 'django_adminlte_2:demo-css', 'text': 'Demo CSS', 'icon': 'fa fa-file', - 'one_of_permission': ['auth.add_group'], + 'one_of_permissions': ['auth.add_group'], } allowed = sidebar_menu.is_allowed_node(self.anonymoususer, node) @@ -1147,7 +1151,7 @@ class TemplateTagSidebarMenuTestCase(TestCase): @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) def test_is_allowed_node_is_false_when_user_anonymous_login_on_strict_on_node_off_strict_wl_on(self): - """test_is_allowed_node_is_true_when_user_anonymous_login_on_strict_on_node_off_strict_wl_on""" + """test_is_allowed_node_is_false_when_user_anonymous_login_on_strict_on_node_off_strict_wl_on""" self._setup_anonymoususer() node = { 'route': 'django_adminlte_2:demo-css', @@ -1283,22 +1287,1772 @@ class TemplateTagSidebarMenuTestCase(TestCase): self.assertFalse(allowed) + # ************************************************************************** + # Staff User - No Perms + # ************************************************************************** + + # Logged In No Perm - login off - strict off + + def test_is_allowed_node_is_true_when_user_staff_login_off_strict_off_node_off(self): + """test_is_allowed_node_is_true_when_user_staff_login_off_strict_off_node_off""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + def test_is_allowed_node_is_true_when_user_staff_login_off_strict_off_node_login(self): + """test_is_allowed_node_is_true_when_user_staff_login_off_strict_off_node_login""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + def test_is_allowed_node_is_false_when_user_staff_login_off_strict_off_node_perm(self): + """test_is_allowed_node_is_false_when_user_staff_login_off_strict_off_node_perm""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + def test_is_allowed_node_is_false_when_user_staff_login_off_strict_off_node_one_perm(self): + """test_is_allowed_node_is_false_when_user_staff_login_off_strict_off_node_one_perm""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + # Logged In No Perm - login on - strict off + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_off_node_off(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_off_node_off""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_off_node_login(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_off_node_login""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_off_node_perm(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_off_node_perm""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_off_node_one_perm(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_off_node_one_perm""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + # Logged In No Perm - login on - strict off - login whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_off_node_off_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_off_node_off_login_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_off_node_login_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_off_node_login_login_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_off_node_perm_login_wl_on(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_off_node_perm_login_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_off_node_one_perm_login_wl_on(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_off_node_perm_login_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + # Logged In No Perm - login off - strict on + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_false_when_user_staff_login_off_strict_on_node_off(self): + """test_is_allowed_node_is_false_when_user_staff_login_off_strict_on_node_off""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_login_off_strict_on_node_login(self): + """test_is_allowed_node_is_true_when_user_staff_login_off_strict_on_node_login""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_false_when_user_staff_login_off_strict_on_node_perm(self): + """test_is_allowed_node_is_false_when_user_staff_login_off_strict_on_node_perm""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_false_when_user_staff_login_off_strict_on_node_one_perm(self): + """test_is_allowed_node_is_false_when_user_staff_login_off_strict_on_node_one_perm""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + # Logged In No Perm - login off - strict on - strict whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_login_off_strict_on_node_off_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_login_off_strict_on_node_off_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_login_off_strict_on_node_login_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_login_off_strict_on_node_login_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + self.assertTrue(allowed) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_false_when_user_staff_login_off_strict_on_node_perm_strict_wl_on(self): + """test_is_allowed_node_is_false_when_user_staff_login_off_strict_on_node_perm_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + self.assertFalse(allowed) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_false_when_user_staff_login_off_strict_on_node_one_perm_strict_wl_on(self): + """test_is_allowed_node_is_false_when_user_staff_login_off_strict_on_node_one_perm_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + self.assertFalse(allowed) + # Logged In No Perm - login on - strict on + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_off(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_off""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + self.assertTrue(allowed) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_login(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_login""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_perm(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_perm""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_one_perm(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_one_perm""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + # Logged In No Perm - login on - strict on - login whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_off_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_off_login_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_login_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_login_login_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_perm_login_wl_on(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_perm_login_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_one_perm_login_wl_on(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_one_perm_login_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + # Logged In No Perm - login on - strict on - strict whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_off_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_off_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_login_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_login_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_perm_strict_wl_on(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_perm_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_one_perm_strict_wl_on(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_one_perm_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + # Logged In No Perm - login on - strict on - login whitelist on - strict whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_off_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_off_login_wl_on_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_login_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_login_on_strict_on_node_login_login_wl_on_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_perm_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_perm_login_wl_on_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_one_perm_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_false_when_user_staff_login_on_strict_on_node_one_perm_login_wl_on_strict_wl_on""" + self._setup_staffuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + # ************************************************************************** + # Staff User - All Perms + # ************************************************************************** + + # Logged In All Perm - login off - strict off + + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_off_node_off(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_off_node_off""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_off_node_login(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_off_node_login""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_off_node_perm(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_off_node_perm""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_off_node_one_perm(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_off_node_one_perm""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + # Logged In All Perm - login on - strict off + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_off(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_off""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_login(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_login""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_perm(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_perm""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_one_perm(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_one_perm""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + # Logged In All Perm - login on - strict off - login whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_off_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_off_login_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_login_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_login_login_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_perm_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_perm_login_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_one_perm_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_off_node_perm_login_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + # Logged In All Perm - login off - strict on + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_false_when_user_staff_perm_login_off_strict_on_node_off(self): + """test_is_allowed_node_is_false_when_user_staff_perm_login_off_strict_on_node_off""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertFalse(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_login(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_login""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_perm(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_perm""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_one_perm(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_one_perm""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + # Logged In All Perm - login off - strict on - strict whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_off_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_off_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_login_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_login_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_perm_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_perm_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_one_perm_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_off_strict_on_node_one_perm_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + # Logged In All Perm - login on - strict on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_off(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_off""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_login(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_login""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_perm(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_perm""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_one_perm(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_one_perm""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + # Logged In All Perm - login on - strict on - login whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_off_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_off_login_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_login_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_login_login_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_perm_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_perm_login_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_one_perm_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_one_perm_login_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + # Logged In All Perm - login on - strict on - strict whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_off_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_off_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_login_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_login_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_perm_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_perm_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_one_perm_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_one_perm_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + # Logged In All Perm - login on - strict on - login whitelist on - strict whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_off_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_off_login_wl_on_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_login_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_login_login_wl_on_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_perm_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_perm_login_wl_on_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_one_perm_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_staff_perm_login_on_strict_on_node_one_perm_login_wl_on_strict_wl_on""" + self._setup_staffuser(['add_group']) + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.staffuser, node) + + self.assertTrue(allowed) + + # ************************************************************************** + # Superuser + # ************************************************************************** + + # Superuser - login off - strict off + + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_off_node_off(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_off_node_off""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_off_node_login(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_off_node_login""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_off_node_perm(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_off_node_perm""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_off_node_one_perm(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_off_node_one_perm""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + # Superuser - login on - strict off + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_off(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_off""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_login(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_login""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_perm(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_perm""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_one_perm(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_one_perm""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + # Superuser - login on - strict off - login whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_off_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_off_login_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_login_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_login_login_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_perm_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_perm_login_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_one_perm_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_off_node_perm_login_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + # Superuser - login off - strict on + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_off(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_off""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_login(self): + """test_is_allowed_node_is_true_when_user_superuserlogin_off_strict_on_node_login""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_perm(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_perm""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_one_perm(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_one_perm""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + # Superuser - login off - strict on - strict whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_off_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_off_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_login_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_login_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_perm_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_perm_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_one_perm_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_off_strict_on_node_one_perm_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + # Superuser - login on - strict on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuserlogin_on_strict_on_node_off(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_off""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_login(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_login""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_perm(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_perm""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_one_perm(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_one_perm""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + # Superuser - login on - strict on - login whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_off_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_off_login_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_login_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_login_login_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_perm_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_perm_login_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_one_perm_login_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_one_perm_login_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + # Superuser - login on - strict on - strict whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_off_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_off_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_login_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_login_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_perm_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_perm_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_one_perm_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_one_perm_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + # Superuser - login on - strict on - login whitelist on - strict whitelist on + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_off_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_off_login_wl_on_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_login_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_login_login_wl_on_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'login_required': True, + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_perm_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_perm_login_wl_on_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) + + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_REQUIRED', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.LOGIN_EXEMPT_WHITELIST', ['django_adminlte_2:demo-css']) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY', True) + @patch('django_adminlte_2.templatetags.sidebar_menu.STRICT_POLICY_WHITELIST', ['django_adminlte_2:demo-css']) + def test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_one_perm_login_wl_on_strict_wl_on(self): + """test_is_allowed_node_is_true_when_user_superuser_login_on_strict_on_node_one_perm_login_wl_on_strict_wl_on""" + self._setup_superuser() + node = { + 'route': 'django_adminlte_2:demo-css', + 'text': 'Demo CSS', + 'icon': 'fa fa-file', + 'one_of_permissions': ['auth.add_group'], + } + + allowed = sidebar_menu.is_allowed_node(self.superuser, node) + + self.assertTrue(allowed) # *********************** # NOTE: Old tests below