Exemplo n.º 1
0
def add_user_to_groups(username,
                       customer_name,
                       group_ids,
                       user_name=None,
                       uri=None,
                       method=None):
    """Add a user into a vFense group
    Args:
        username (str):  Name of the user already in vFense.
        customer_name (str): The customer this user is part of.
        group_ids (list): List of group ids.

    Kwargs:
        user_name (str): The name of the user who called this function.
        uri (str): The uri that was used to call this function.
        method (str): The HTTP methos that was used to call this function.

    Basic Usage:
        >>> from vFense.group.groups import add_user_to_groups
        >>> username = '******'
        >>> customer_name = 'default'
        >>> group_ids = ['0834e656-27a5-4b13-ba56-635797d0d1fc']
        >>> add_user_to_groups(username, customer_name, group_ids)

    Returns:
        Returns the results in a dictionary
    {
        'uri': None,
        'rv_status_code': 1010,
        'http_method': None,
        'http_status': 200,
        'message': "None - groups per user [u'ee54820c-cb4e-46a1-9d11-73afe8c4c4e3'] was created",
        'data': {
            'group_name': u'FooLah',
            'user_name': 'alien',
            'group_id': '0834e656-27a5-4b13-ba56-635797d0d1fc',
            'customer_name': 'default'
        }
    }
    """
    status = add_user_to_groups.func_name + ' - '
    groups_are_valid = validate_group_ids(group_ids, customer_name)
    user_exist = retrieve_object(username, UserCollections.Users)
    customer_exist = retrieve_object(customer_name,
                                     CustomerCollections.Customers)
    results = None
    generated_ids = []
    users_group_exist = []
    generic_status_code = 0
    vfense_status_code = 0
    if groups_are_valid[0] and user_exist and customer_exist:
        data_list = []
        for group_id in group_ids:
            group_exist = get_group(group_id)
            user_in_group = (user_exist_in_group(username, group_id))
            if not user_in_group:
                data_to_add = ({
                    GroupsPerUserKeys.CustomerName:
                    customer_name,
                    GroupsPerUserKeys.UserName:
                    username,
                    GroupsPerUserKeys.GroupName:
                    group_exist[GroupKeys.GroupName],
                    GroupsPerUserKeys.GroupId:
                    group_id
                })
                data_list.append(data_to_add)

            else:
                users_group_exist.append(group_id)
        if len(data_list) == len(group_ids):
            status_code, object_count, error, generated_ids = (
                insert_group_per_user(data_list))

            if status_code == DbCodes.Inserted:
                msg = 'user %s add to groups' % (username)
                generic_status_code = GenericCodes.ObjectCreated
                vfense_status_code = GroupCodes.GroupCreated

        else:
            msg = ('user %s is already in groups %s' %
                   (username, ' and '.join(users_group_exist)))
            status_code = DbCodes.Skipped
            generic_status_code = GenericCodes.ObjectExists
            vfense_status_code = GroupFailureCodes.GroupExistForUser

    elif not groups_are_valid[0]:
        msg = ('Group Ids are invalid: %s' %
               (' and '.join(groups_are_valid[2])))
        status_code = DbCodes.Errors
        generic_status_code = GenericCodes.InvalidId
        vfense_status_code = GroupFailureCodes.InvalidGroupId

    elif not user_exist:
        msg = 'User name is invalid: %s' % (username)
        status_code = DbCodes.Errors
        generic_status_code = GenericCodes.InvalidId
        vfense_status_code = UserFailureCodes.InvalidUserName

    elif not customer_exist:
        msg = 'Customer name is invalid: %s' % (customer_name)
        status_code = DbCodes.Errors
        generic_status_code = GenericCodes.InvalidId
        vfense_status_code = CustomerFailureCodes.CustomerDoesNotExist

    results = {
        ApiResultKeys.DB_STATUS_CODE: status_code,
        ApiResultKeys.GENERIC_STATUS_CODE: generic_status_code,
        ApiResultKeys.VFENSE_STATUS_CODE: vfense_status_code,
        ApiResultKeys.GENERATED_IDS: generated_ids,
        ApiResultKeys.MESSAGE: status + msg,
        ApiResultKeys.DATA: [],
        ApiResultKeys.USERNAME: user_name,
        ApiResultKeys.URI: uri,
        ApiResultKeys.HTTP_METHOD: method
    }

    return (results)
Exemplo n.º 2
0
def add_user_to_groups(
    username, customer_name, group_ids,
    user_name=None, uri=None, method=None
    ):
    """Add a user into a vFense group
    Args:
        username (str):  Name of the user already in vFense.
        customer_name (str): The customer this user is part of.
        group_ids (list): List of group ids.

    Kwargs:
        user_name (str): The name of the user who called this function.
        uri (str): The uri that was used to call this function.
        method (str): The HTTP methos that was used to call this function.

    Basic Usage:
        >>> from vFense.group.groups import add_user_to_groups
        >>> username = '******'
        >>> customer_name = 'default'
        >>> group_ids = ['0834e656-27a5-4b13-ba56-635797d0d1fc']
        >>> add_user_to_groups(username, customer_name, group_ids)

    Returns:
        Returns the results in a dictionary
    {
        'uri': None,
        'rv_status_code': 1010,
        'http_method': None,
        'http_status': 200,
        'message': "None - groups per user [u'ee54820c-cb4e-46a1-9d11-73afe8c4c4e3'] was created",
        'data': {
            'group_name': u'FooLah',
            'user_name': 'alien',
            'group_id': '0834e656-27a5-4b13-ba56-635797d0d1fc',
            'customer_name': 'default'
        }
    }
    """
    status = add_user_to_groups.func_name + ' - '
    groups_are_valid = validate_group_ids(group_ids, customer_name)
    user_exist = retrieve_object(username, UserCollections.Users)
    customer_exist = retrieve_object(customer_name, CustomerCollections.Customers)
    results = None
    generated_ids = []
    users_group_exist = []
    generic_status_code = 0
    vfense_status_code = 0
    if groups_are_valid[0] and user_exist and customer_exist:
        data_list = []
        for group_id in group_ids:
            group_exist = get_group(group_id)
            user_in_group = (
                user_exist_in_group(username, group_id)
            )
            if not user_in_group:
                data_to_add = (
                    {
                        GroupsPerUserKeys.CustomerName: customer_name,
                        GroupsPerUserKeys.UserName: username,
                        GroupsPerUserKeys.GroupName: group_exist[GroupKeys.GroupName],
                        GroupsPerUserKeys.GroupId: group_id
                    }
                )
                data_list.append(data_to_add)

            else:
                users_group_exist.append(group_id)
        if len(data_list) == len(group_ids):
            status_code, object_count, error, generated_ids = (
                insert_group_per_user(data_list)
            )

            if status_code == DbCodes.Inserted:
                msg = 'user %s add to groups' % (username)
                generic_status_code = GenericCodes.ObjectCreated
                vfense_status_code = GroupCodes.GroupCreated


        else:
            msg = (
                'user %s is already in groups %s' % (
                    username, ' and '.join(users_group_exist)
                )
            )
            status_code = DbCodes.Skipped
            generic_status_code = GenericCodes.ObjectExists
            vfense_status_code = GroupFailureCodes.GroupExistForUser


    elif not groups_are_valid[0]:
        msg = (
            'Group Ids are invalid: %s' % (
                ' and '.join(groups_are_valid[2])
            )
        )
        status_code = DbCodes.Errors
        generic_status_code = GenericCodes.InvalidId
        vfense_status_code = GroupFailureCodes.InvalidGroupId

    elif not user_exist:
        msg = 'User name is invalid: %s' % (username)
        status_code = DbCodes.Errors
        generic_status_code = GenericCodes.InvalidId
        vfense_status_code = UserFailureCodes.InvalidUserName

    elif not customer_exist:
        msg = 'Customer name is invalid: %s' % (customer_name)
        status_code = DbCodes.Errors
        generic_status_code = GenericCodes.InvalidId
        vfense_status_code = CustomerFailureCodes.CustomerDoesNotExist

    results = {
        ApiResultKeys.DB_STATUS_CODE: status_code,
        ApiResultKeys.GENERIC_STATUS_CODE: generic_status_code,
        ApiResultKeys.VFENSE_STATUS_CODE: vfense_status_code,
        ApiResultKeys.GENERATED_IDS: generated_ids,
        ApiResultKeys.MESSAGE: status + msg,
        ApiResultKeys.DATA: [],
        ApiResultKeys.USERNAME: user_name,
        ApiResultKeys.URI: uri,
        ApiResultKeys.HTTP_METHOD: method
    }

    return(results)
Exemplo n.º 3
0
def add_users_to_group(
    group_id, usernames,
    user_name=None, uri=None, method=None
    ):
    """Add a multiple users to a group
    Args:
        group_id (str):  The 36 character group UUID.
        usernames (list):  Name of the users already in vFense.

    Kwargs:
        user_name (str): The name of the user who called this function.
        uri (str): The uri that was used to call this function.
        method (str): The HTTP methos that was used to call this function.

    Basic Usage:
        >>> from vFense.core.user.users import add_users_to_group
        >>> group_id = '6ce3423e-544b-4206-b3cb-2296d39956b7'
        >>> usernames = ['tester1', 'tester2']
        >>> add_users_to_group(group_id, usernames)

    Returns:
        Dictionary of the status of the operation.
        {
            'uri': None,
            'rv_status_code': 1017,
            'http_method': None,
            'http_status': 200,
            'message': "None - add_users_to_group - customer names existed 'default', 'TopPatch', 'vFense' unchanged",
            'data': []

        }
    """
    users_are_valid = validate_user_names(usernames)
    group = get_group(group_id)
    results = None
    data_list = []
    status = add_users_to_group.func_name + ' - '
    msg = ''
    status_code = 0
    generic_status_code = 0
    vfense_status_code = 0
    generated_ids = []
    data_list = []
    if users_are_valid[0] and group:
        for username in usernames:
            if not user_exist_in_group(username, group_id):
                data_to_add = (
                    {
                        GroupsPerUserKeys.GroupId: group_id,
                        GroupsPerUserKeys.GroupName: group[GroupKeys.GroupName],
                        GroupsPerUserKeys.CustomerName: group[GroupKeys.CustomerName],
                        GroupsPerUserKeys.UserName: username,
                    }
                )
                data_list.append(data_to_add)

        if len(data_list) == len(usernames):
            status_code, _, _, generated_ids = (
                insert_group_per_user(data_list)
            )

            if status_code == DbCodes.Inserted:
                msg = (
                    'user %s added to %s' % (
                       ' and '.join(usernames), group_id
                    )
                )
                generic_status_code = GenericCodes.ObjectCreated
                vfense_status_code = UserCodes.UsersAddedToGroup

        else:
            status_code = DbCodes.Unchanged
            msg = (
                'user names %s existed for group %s' %
                (' and '.join(usernames), group_id)
            )
            generic_status_code = GenericCodes.ObjectExists
            vfense_status_code = GroupFailureCodes.UsersExistForGroup

    elif not group:
        status_code = DbCodes.Errors
        msg = 'group id is invalid: %s' % (group_id)
        generic_status_code = GenericCodes.InvalidId
        vfense_status_code = GroupFailureCodes.InvalidGroupId

    elif not users_are_valid[0]:
        status_code = DbCodes.Errors
        msg = (
            'user names are invalid: %s' % (
                ' and '.join(users_are_valid[2])
            )
        )
        generic_status_code = GenericCodes.InvalidId
        vfense_status_code = UserFailureCodes.InvalidUserName

    results = {
        ApiResultKeys.DB_STATUS_CODE: status_code,
        ApiResultKeys.GENERIC_STATUS_CODE: generic_status_code,
        ApiResultKeys.VFENSE_STATUS_CODE: vfense_status_code,
        ApiResultKeys.GENERATED_IDS: generated_ids,
        ApiResultKeys.MESSAGE: status + msg,
        ApiResultKeys.DATA: [],
        ApiResultKeys.USERNAME: user_name,
        ApiResultKeys.URI: uri,
        ApiResultKeys.HTTP_METHOD: method
    }

    return(results)