def get_group_by_name(group_name, customer_name, fields_to_pluck=None): """Retrieve a group by its name from the database Args: group_name (str): Name of group. customer_name (str): name of the customer, that the group belongs to. Kwargs: fields_to_pluck (list): List of fields you want to retrieve. Basic Usage: >>> from vFense.group.groups import get_group_by_name >>> group_name = 'Administrator' >>> customer_name = 'default' >>> get_group_by_name(group_name, customer_name) Returns: Returns a Dict of the properties of a customer { u'group_name': u'Administrator', u'customer_name': u'default', u'id': u'8757b79c-7321-4446-8882-65457f28c78b', u'Permissions': [ u'administrator' ] } """ data = fetch_group_by_name(group_name, customer_name) return(data)
def get_group_by_name(group_name, customer_name, fields_to_pluck=None): """Retrieve a group by its name from the database Args: group_name (str): Name of group. customer_name (str): name of the customer, that the group belongs to. Kwargs: fields_to_pluck (list): List of fields you want to retrieve. Basic Usage: >>> from vFense.group.groups import get_group_by_name >>> group_name = 'Administrator' >>> customer_name = 'default' >>> get_group_by_name(group_name, customer_name) Returns: Returns a Dict of the properties of a customer { u'group_name': u'Administrator', u'customer_name': u'default', u'id': u'8757b79c-7321-4446-8882-65457f28c78b', u'Permissions': [ u'administrator' ] } """ data = fetch_group_by_name(group_name, customer_name) return (data)
def remove_groups_from_user( username, group_ids=None, user_name=None, uri=None, method=None ): """Remove a group from a user Args: username(str): Name of the user Kwargs: group_ids(list): List of group_ids. 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.group.groups remove_groups_from_user >>> username = '******' >>> group_ids = ['0834e656-27a5-4b13-ba56-635797d0d1fc', '8757b79c-7321-4446-8882-65457f28c78b'] >>> remove_groups_from_user(username, group_ids) Returns: Returns the results in a dictionary { 'rv_status_code': 1004, 'message': 'None - remove_groups_from_user - group ids: 0834e656-27a5-4b13-ba56-635797d0d1fc, 8757b79c-7321-4446-8882-65457f28c78b does not exist', 'http_method': None, 'uri': None, 'http_status': 409 } """ status = remove_groups_from_user.func_name + ' - ' user_does_not_exist_in_group = False admin_user = False admin_group_id = None admin_group_id_exists_in_group_ids = False if username == DefaultUsers.ADMIN: admin_user = True admin_group_id = ( fetch_group_by_name( DefaultGroups.ADMIN, DefaultCustomers.DEFAULT, GroupKeys.GroupId )[GroupKeys.GroupId] ) try: if not group_ids: group_ids = ( map(lambda x: x[GroupsPerUserKeys.GroupId], get_groups_for_user(username, GroupsPerUserKeys.GroupId) ) ) if group_ids: if not admin_group_id in group_ids: msg = 'group ids: ' + 'and '.join(group_ids) for gid in group_ids: user_in_group = user_exist_in_group(username, gid) if not user_in_group: user_does_not_exist_in_group = True else: admin_group_id_exists_in_group_ids = True msg = ( 'Cannot remove the %s group from the %s user' % (DefaultGroups.ADMIN, DefaultUsers.ADMIN) ) else: user_does_not_exist_in_group = True if (not user_does_not_exist_in_group and not admin_group_id_exists_in_group_ids): status_code, count, errors, generated_ids = ( delete_groups_from_user(username, group_ids) ) if status_code == DbCodes.Deleted: generic_status_code = GenericCodes.ObjectDeleted vfense_status_code = GroupCodes.GroupsRemovedFromUser elif status_code == DbCodes.Unchanged: generic_status_code = GenericCodes.ObjectUnchanged vfense_status_code = GroupCodes.GroupUnchanged elif status_code == DbCodes.Skipped: generic_status_code = GenericCodes.InvalidId vfense_status_code = GroupFailureCodes.InvalidGroupId elif admin_group_id_exists_in_group_ids: status_code = DbCodes.Skipped generic_status_code = GenericCodes.InvalidId vfense_status_code = GroupFailureCodes.CantRemoveAdminFromGroup else: msg = ( 'groups %s do not exist for user %s' % (' and '.join(group_ids), username) ) status_code = DbCodes.Skipped generic_status_code = GenericCodes.InvalidId vfense_status_code = GroupFailureCodes.GroupDoesNotExistForUser results = { ApiResultKeys.DB_STATUS_CODE: status_code, ApiResultKeys.GENERIC_STATUS_CODE: generic_status_code, ApiResultKeys.VFENSE_STATUS_CODE: vfense_status_code, ApiResultKeys.MESSAGE: status + msg, ApiResultKeys.DATA: [], ApiResultKeys.USERNAME: user_name, ApiResultKeys.URI: uri, ApiResultKeys.HTTP_METHOD: method } except Exception as e: logger.exception(e) status_code = DbCodes.Errors generic_status_code = GenericFailureCodes.FailedToDeleteObject vfense_status_code = GroupFailureCodes.FailedToRemoveGroupFromUser results = { ApiResultKeys.DB_STATUS_CODE: status_code, ApiResultKeys.GENERIC_STATUS_CODE: generic_status_code, ApiResultKeys.VFENSE_STATUS_CODE: vfense_status_code, ApiResultKeys.MESSAGE: status + msg, ApiResultKeys.DATA: [], ApiResultKeys.USERNAME: user_name, ApiResultKeys.URI: uri, ApiResultKeys.HTTP_METHOD: method } return(results)
def remove_groups_from_user(username, group_ids=None, user_name=None, uri=None, method=None): """Remove a group from a user Args: username(str): Name of the user Kwargs: group_ids(list): List of group_ids. 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.group.groups remove_groups_from_user >>> username = '******' >>> group_ids = ['0834e656-27a5-4b13-ba56-635797d0d1fc', '8757b79c-7321-4446-8882-65457f28c78b'] >>> remove_groups_from_user(username, group_ids) Returns: Returns the results in a dictionary { 'rv_status_code': 1004, 'message': 'None - remove_groups_from_user - group ids: 0834e656-27a5-4b13-ba56-635797d0d1fc, 8757b79c-7321-4446-8882-65457f28c78b does not exist', 'http_method': None, 'uri': None, 'http_status': 409 } """ status = remove_groups_from_user.func_name + ' - ' user_does_not_exist_in_group = False admin_user = False admin_group_id = None admin_group_id_exists_in_group_ids = False if username == DefaultUsers.ADMIN: admin_user = True admin_group_id = (fetch_group_by_name( DefaultGroups.ADMIN, DefaultCustomers.DEFAULT, GroupKeys.GroupId)[GroupKeys.GroupId]) try: if not group_ids: group_ids = (map( lambda x: x[GroupsPerUserKeys.GroupId], get_groups_for_user(username, GroupsPerUserKeys.GroupId))) if group_ids: if not admin_group_id in group_ids: msg = 'group ids: ' + 'and '.join(group_ids) for gid in group_ids: user_in_group = user_exist_in_group(username, gid) if not user_in_group: user_does_not_exist_in_group = True else: admin_group_id_exists_in_group_ids = True msg = ('Cannot remove the %s group from the %s user' % (DefaultGroups.ADMIN, DefaultUsers.ADMIN)) else: user_does_not_exist_in_group = True if (not user_does_not_exist_in_group and not admin_group_id_exists_in_group_ids): status_code, count, errors, generated_ids = ( delete_groups_from_user(username, group_ids)) if status_code == DbCodes.Deleted: generic_status_code = GenericCodes.ObjectDeleted vfense_status_code = GroupCodes.GroupsRemovedFromUser elif status_code == DbCodes.Unchanged: generic_status_code = GenericCodes.ObjectUnchanged vfense_status_code = GroupCodes.GroupUnchanged elif status_code == DbCodes.Skipped: generic_status_code = GenericCodes.InvalidId vfense_status_code = GroupFailureCodes.InvalidGroupId elif admin_group_id_exists_in_group_ids: status_code = DbCodes.Skipped generic_status_code = GenericCodes.InvalidId vfense_status_code = GroupFailureCodes.CantRemoveAdminFromGroup else: msg = ('groups %s do not exist for user %s' % (' and '.join(group_ids), username)) status_code = DbCodes.Skipped generic_status_code = GenericCodes.InvalidId vfense_status_code = GroupFailureCodes.GroupDoesNotExistForUser results = { ApiResultKeys.DB_STATUS_CODE: status_code, ApiResultKeys.GENERIC_STATUS_CODE: generic_status_code, ApiResultKeys.VFENSE_STATUS_CODE: vfense_status_code, ApiResultKeys.MESSAGE: status + msg, ApiResultKeys.DATA: [], ApiResultKeys.USERNAME: user_name, ApiResultKeys.URI: uri, ApiResultKeys.HTTP_METHOD: method } except Exception as e: logger.exception(e) status_code = DbCodes.Errors generic_status_code = GenericFailureCodes.FailedToDeleteObject vfense_status_code = GroupFailureCodes.FailedToRemoveGroupFromUser results = { ApiResultKeys.DB_STATUS_CODE: status_code, ApiResultKeys.GENERIC_STATUS_CODE: generic_status_code, ApiResultKeys.VFENSE_STATUS_CODE: vfense_status_code, ApiResultKeys.MESSAGE: status + msg, ApiResultKeys.DATA: [], ApiResultKeys.USERNAME: user_name, ApiResultKeys.URI: uri, ApiResultKeys.HTTP_METHOD: method } return (results)