def test_unsaved_global_profile_mapping(core_session, core_admin_ui,
                                        create_basic_pass_profile):
    """     Test case: C1660
            :param core_session: Creates core session
            :param core_admin_ui: Creates random user and login in browser.
            :param create_basic_pass_profile: Created a basic password complexity profile.
            """

    profile = create_basic_pass_profile(core_session, 1)[0]
    cps_prof_id = profile[0]['_RowKey']
    profile_name_cps = profile[0]['Name']

    # Getting the global password profile mapping profiles
    result, success = ResourceManager.get_global_pass_profile_mapping(
        core_session)
    profile_name = []
    for row in result:
        if row['TargetTypeDisplayName'] == "Unix System":
            profile_name.append(row['Name'])

    # UI navigating to Security Settings and updating the 'Unix' Type global password profile.
    ui = core_admin_ui
    ui.navigate("Settings", "Resources", "Security", "Security Settings")
    ui.expect(GridCell(profile_name[0]),
              "Unix type password profile not editable.").try_click(
                  Div("Security Settings"))
    ui.switch_context(ActiveMainContentArea())
    ui.select_option('Name', profile_name_cps)
    ui.switch_context(ConfirmModal())
    ui.button('Continue')
    ui.expect(Span("Password Profiles"),
              "Clicking Password Profiles").try_click(Div("Security Settings"))
    assert ui.check_exists(Div('Unsaved Changes')), "Fail, as 'Confirmation Modal' i.e. 'Unsaved Changes dialog' " \
                                                    "didn't pop up even after clicking another tab."
    logger.info(
        "'Unsaved Changes dialog' popped up after clicking another tab without saving the new profile"
    )

    # Clicking 'Yes' button on 'Unsaved Changes' dialog box and expecting new profile to be saved.
    ui.switch_context(ConfirmModal())
    ui.close_modal("Yes")

    # Getting all the global password profile mappings.
    result, success = ResourceManager.get_global_pass_profile_mapping(
        core_session)
    for res in result:
        if res['Name'] == profile_name_cps:
            assert res[
                'TargetType'] == 'Unix', f"Failed to update profile with id {cps_prof_id} Unix Type {result}"
    logger.info("Updated the new profile to the 'Unix' Type")
def test_delete_profile_global_profile_mapping(core_session,
                                               create_basic_pass_profile):
    """
            Test case: C1658
            :param core_session: Returns API session
            :param create_basic_pass_profile: Created a basic password complexity profile.
            """

    # Creating one password complexity profile
    profile = create_basic_pass_profile(core_session, 1)[0]
    cps_prof_id = profile[0]['_RowKey']
    profile_name_cps = profile[0]['Name']

    # Updating the 'Unix' Type with new Password Complexity profile
    result, success = ResourceManager.update_global_pass_profile_mapping(
        core_session, "Unix", cps_prof_id)
    assert success, f"failed to update global password profile mapping {result}"
    logger.info(f"Password complexity profile {profile_name_cps} not deleted")

    # Fetching the global password profile mapping.
    result, success = ResourceManager.get_global_pass_profile_mapping(
        core_session)
    profile_name = []
    for row in result:
        if row['_RowKey'] == cps_prof_id:
            profile_name.append(row['Name'])
    assert profile_name_cps == profile_name[
        0], f"profile name is not updated with the Type of global profile mapping {result}"

    resp = ResourceManager.delete_password_profile(core_session, cps_prof_id)
    assert resp is False, f"Password complexity profile {profile_name_cps} deleted"
    logger.info(f"Password complexity profile {profile_name_cps} not deleted")
Example #3
0
def test_not_apply_password_profile_global(core_session,
                                           create_basic_pass_profile):
    """
      Test case: C1647
            :param core_session: Returns API session
            :param core_admin_ui: Centrify admin Ui session
            :param create_basic_pass_profile: Created a basic password complexity profile.
            """
    unix_profile_id = None
    profile_result, profile_success = ResourceManager.get_password_prof_for_target_types(
        core_session, 'Unix')
    assert profile_success, f'failed to get all profile for target unix type.'
    for row in profile_result:
        if row['Name'] == "Unix Profile":
            unix_profile_id = row['_RowKey']

    # Setting password profile mapping to default.
    result, success = ResourceManager.update_global_pass_profile_mapping(
        core_session, "Unix", unix_profile_id)
    assert success, f"failed to update global password profile mapping {result}"

    # Creating one password complexity profile
    profile = create_basic_pass_profile(core_session, 1)[0]
    cps_prof_id = profile[0]['_RowKey']
    profile_name_cps = profile[0]['Name']
    logger.info(
        f"Created password complex profile {profile_name_cps} with Id {cps_prof_id}"
    )

    # getting and updating global password profile default value to Unix Profile
    result, success = ResourceManager.get_global_pass_profile_mapping(
        core_session)
    profile_name = []
    for row in result:
        if row['Name'] == "Unix Profile":
            profile_name.append(row['_RowKey'])
            profile_name.append(row['Name'])

    result, success = ResourceManager.update_global_pass_profile_mapping(
        core_session, "Unix", profile_name[0])
    assert success, f"failed to update global password profile mapping {result}"
    logger.info(f"Password complexity profile {profile_name_cps} not deleted")

    update_profile = []
    profile_result, profile_success = ResourceManager.get_password_prof_for_target_types(
        core_session, 'Unix')
    assert profile_success, f'failed to get all profile for target unix type.'
    for row in profile_result:
        if row['Name'] == profile_name_cps:
            update_profile.append(row['_RowKey'])

    # Setting password profile mapping to default.
    result, success = ResourceManager.update_global_pass_profile_mapping(
        core_session, "Unix", None)
    assert success is False, f"failed to update global password profile mapping {result}"

    # Getting the global password profile mapping profiles
    result, success = ResourceManager.get_global_pass_profile_mapping(
        core_session)
    profile_names = []
    for row in result:
        if row['Name'] == "Unix Profile":
            profile_names.append(row['_RowKey'])
            profile_names.append(row['TargetType'])

    # Getting the password profile by id
    cps_prof_result, cps_prof_success = ResourceManager.get_password_profile_by_id(
        core_session, profile_names[0])
    assert cps_prof_result['ProfileType'] == profile_names[1], \
        f"Global Password Profile not saved with Profile {profile_names[0]} with the result {cps_prof_result}"
    logger.info(
        f"Password profile created successfully with {cps_prof_result}")