Example #1
0
    def test_B_ACL_reports(self):
        u"""
		Creates a user with Chief Operator permissions over the Applications group. 
		Then creates two reports: one in the Applications group and other in the Servers group. Then, it checks that the given user can only see the Application report
		"""

        user_name = gen_random_string(6)
        report_name_A = agent_name = gen_random_string(6)
        report_name_B = agent_name = gen_random_string(6)

        driver = self.driver
        self.login()

        #Creates a user with Chief Operator - Applications profile
        profile_list = []
        profile_list.append(("Chief Operator", "Applications", []))
        create_user(driver,
                    user_name,
                    user_name,
                    email=user_name + '@pandorafms.com',
                    profile_list=profile_list)

        #Creates report
        create_report(driver, report_name_A, "Applications")
        create_report(driver, report_name_B, "Servers")

        #Logout
        self.logout()

        #Login
        self.login(user=user_name, passwd=user_name)

        #Check that the report is visible
        click_menu_element(driver, "Custom reporting")
        driver.find_element_by_id('text-search').clear()
        driver.find_element_by_id('text-search').send_keys(report_name_A)
        driver.find_element_by_id('submit-search_submit').click()
        self.assertEqual(is_element_present(driver, By.ID, 'report_list-0'),
                         True)

        #Check that the report is not visible
        click_menu_element(driver, "Custom reporting")
        driver.find_element_by_id('text-search').clear()
        driver.find_element_by_id('text-search').send_keys(report_name_B)
        driver.find_element_by_id('submit-search_submit').click()

        time.sleep(6)

        element = driver.find_element_by_xpath(
            '//td[contains(.,"No data found.")]')
        self.assertIsInstance(element, WebElement)

        #Delete reports
        self.logout()
Example #2
0
    def test_ACL_propagation(self):
        u"""
		ACL Propagation test: Creates one group "A" with ACL propagation, then a group "B" son of "A" with no ACL propagation, and finally group "C".
		The test asserts if a user with privileges to "A" can see the agent of "B" but no agents of "C".
		"""
        group_name_A = gen_random_string(6)
        group_name_B = gen_random_string(6)
        group_name_C = gen_random_string(6)
        agent_name_A = gen_random_string(6)
        agent_name_B = gen_random_string(6)
        user_name = gen_random_string(6)

        driver = self.driver
        self.login()
        detect_and_pass_all_wizards(driver)

        create_agent_group(
            driver,
            group_name_A,
            propagate_acl=True,
            description="Group A, with propagate ACL, son of ALL")
        create_agent_group(driver,
                           group_name_B,
                           parent_group=group_name_A,
                           description="Group B, son of A")
        create_agent_group(driver,
                           group_name_C,
                           parent_group=group_name_B,
                           description="Group C, son of B")

        create_agent(driver,
                     agent_name_A,
                     description="Agent in group B",
                     group=group_name_B)

        create_agent(driver,
                     agent_name_B,
                     description="Agent in group C",
                     group=group_name_C)

        l = [("Chief Operator", group_name_A, [])]

        create_user(driver, user_name, "pandora", profile_list=l)

        self.logout()

        self.login(user=user_name)

        detect_and_pass_all_wizards(driver)

        #Is the agent listed in the agent list?
        search_agent(driver, agent_name_A, go_to_agent=False)
        element = driver.find_element_by_xpath('//a[contains(.,"' +
                                               agent_name_A + '")]')
        self.assertIsInstance(element, WebElement)

        #Is the agent accesible for the user?
        search_agent(driver, agent_name_A, go_to_agent=True)
        element = driver.find_element_by_xpath(
            '//*[@id="agent_contact_main"]/thead/tr/th')
        self.assertIsInstance(element, WebElement)

        #Is the agent invisible to the user? (It should be invisible)
        search_agent(driver, agent_name_B, go_to_agent=False)
        element = driver.find_elements_by_xpath('//a[contains(.,"' +
                                                agent_name_B + '")]')
        self.assertEqual(element, [])
Example #3
0
    def test_ACL_tag(self):
        u"""Create agent and two modules, one without tag and with tag, create a user with tag and check this user can view module with tag and user canĀ“t view module without tag"""

        agent_name = gen_random_string(6)
        module_name_A = gen_random_string(6)
        module_name_B = gen_random_string(6)
        user_name = gen_random_string(6)

        driver = self.driver
        self.login()
        detect_and_pass_all_wizards(driver)

        create_agent(driver,
                     agent_name,
                     group="Applications",
                     ip="192.168.50.50")

        #We create a module without a tag

        create_module("network_server",
                      driver,
                      agent_name=agent_name,
                      module_name=module_name_A,
                      component_group="Network Management",
                      network_component="Host Alive",
                      ip="192.168.50.50")

        #We now create a modulo with tag "critical"

        create_module("network_server",
                      driver,
                      agent_name=agent_name,
                      module_name=module_name_B,
                      component_group="Network Management",
                      network_component="Host Alive",
                      ip="192.168.50.50",
                      tag_name="critical")

        l = [("Operator (Read)", "All", ["critical"])]

        create_user(driver, user_name, "pandora", profile_list=l)

        self.logout()

        self.login(user=user_name)

        detect_and_pass_all_wizards(driver)

        search_agent(driver, agent_name)

        time.sleep(6)

        #The user should be able to see the module with Tag
        module = driver.find_element_by_xpath('//td[contains(.,"' +
                                              module_name_B + '")]')
        self.assertIsInstance(module, WebElement)

        #The user should NOT be able to see the module without tag
        modules = driver.find_elements_by_xpath('//td[contains(.,"' +
                                                module_name_A + '")]')
        self.assertEqual(modules, [])