Exemple #1
0
def update_item_group(group, item):
    try:
        email = token_email()
        data = request.json
        data['updated'] = gen_time()
        if data['item_info'] and len(
                data['item_info']) <= 64 and data['item_name'] and len(
                    data['item_name']) <= 64 and data['item_type'] and len(
                        data['item_type']) <= 64 and data['end_date'] and len(
                            data['end_date']
                        ) <= 10 and data['notify_date'] and len(
                            data['notify_date']
                        ) <= 10 and data['updated'] and len(
                            data['updated']) <= 26 and len(data) <= 6:
            response = get_record(group, 'account')
            # Check if the user has access to the group
            if email in response[0]['group_member'] or email in response[0][
                    'group_admin'] or email in response[0]['group_creator']:
                get_item = get_record(group, item)
                if get_item[0]['creator'] == email or email in response[0][
                        'group_admin'] or email in response[0]['group_creator']:
                    data['email'] = group
                    data['item'] = item
                    update_group_record(group, item, data)
                    return jsonify("Updated: {}".format(item)), 200

            return jsonify(
                "You don't have permission to update this record"), 403
        else:
            return jsonify(
                "You must fill in all of the required fields *"), 400
    except:
        return jsonify('Misunderstood Request'), 400
Exemple #2
0
def upload_file(item):
    ssm = boto3.client('ssm', region_name=region_name, verify=False)
    access_key = ssm.get_parameter(Name='/gozeit/s3/aws_access_key')
    aws_access_key = access_key['Parameter']['Value']
    secret_key = ssm.get_parameter(Name='/gozeit/s3/aws_secret_access_key',
                                   WithDecryption=True)
    aws_secret_key = secret_key['Parameter']['Value']
    email = token_email()
    item_key = gen_time()
    s3 = boto3.client('s3',
                      aws_access_key_id=aws_access_key,
                      aws_secret_access_key=aws_secret_key)

    user_settings = get_record(email, 'account')
    if 'deny_upload' in user_settings[0] and user_settings[0][
            'deny_upload'] == 'true':
        return jsonify('Gozeit has suspended your storage service.'), 405

    if 'limit_filesize' in user_settings[0]:
        limit_filesize = user_settings[0]['limit_filesize']
    else:
        limit_filesize = 1048579

    response = s3.generate_presigned_post(
        Bucket=s3_bucket,
        Key='customers/' + email + '/' + item_key + '_' + item,
        Conditions=[['content-length-range', 1,
                     int(limit_filesize)]])

    response['item'] = item_key

    return jsonify(response)
Exemple #3
0
def update_item(item):
    email = token_email()
    try:
        data = request.json
        data['updated'] = gen_time()
        if data['itemname'] and data['end_date'] and data[
                'notify_date'] and data['typename'] and data[
                    'remarks'] and data['updated'] and len(data) == 6:
            data['email'] = email
            data['item'] = item
            update_record(email, item, data)
            return jsonify("updated: {}".format(item)), 204
        return jsonify('You must fill in all of the required fields *'), 400
    except:
        return jsonify('Misunderstood Request'), 400
Exemple #4
0
def create_group():

    if (creating_group_limit()):
        return jsonify('{} Records Limit Reached'.format(
            creating_group_limit.group_limit)), 426

    email = token_email()
    try:
        data = request.json
        if data['group_name'] and len(data) == 1:
            data['email'] = str(uuid4())[:13] + '*****@*****.**'
            user_settings = get_record(email, 'account')

            if 'group_creator' not in user_settings[0]:
                user_settings[0]['group_creator'] = []
            group_creator = user_settings[0]['group_creator']

            group_creator.append(data['email'])
            user_settings[0]['group_creator'] = group_creator
            group_email = data['email']
            group_name = data['group_name']

            created = gen_time()
            item = {
                'created': created,
                'email': group_email,
                'item': 'account',
                'group_creator': [email],
                'group_name': group_name,
                'group_admin': [],
                'group_member': []
            }
            add_record(item)

            # create group_member if not exsit
            if 'group_member' not in user_settings[0]:
                user_settings[0]['group_member'] = []

            user_group_update_creator(email, user_settings[0]['group_creator'])
            return jsonify(data), 201
        return jsonify('You must fill in all of the required fields *'), 400
    except:
        return jsonify('Misunderstood Request'), 400
Exemple #5
0
def create_item_group(group):
    try:
        email = token_email()
        response = get_record(group, 'account')
        # Check if the user has access to the group

        if email in response[0]['group_member'] or email in response[0][
                'group_admin'] or email in response[0]['group_creator']:
            data = request.json
            if data['item_info'] and len(
                    data['item_info']) <= 64 and data['item_name'] and len(
                        data['item_name']) <= 64 and data['item_type'] and len(
                            data['item_type']
                        ) <= 64 and data['end_date'] and len(
                            data['end_date']
                        ) <= 10 and data['notify_date'] and len(
                            data['notify_date']) <= 10 and len(data) <= 5:

                ## Group Limit
                if (group_limit_items(group)):
                    return jsonify('{} Records Limit Reached'.format(
                        group_limit_items.group_items)), 426

                data['email'] = group

                if 'filename' in data:
                    data['item'] = data['filename'][:26]
                    data['filename'] = data['filename'][27:]
                else:
                    data['item'] = gen_time()
                    data['creator'] = email
                add_record(data)
                return jsonify(data), 201

            return jsonify(
                'You must fill in all of the required fields *'), 400
        else:
            return jsonify(
                "You don't have permission to access this group"), 403
    except:
        return jsonify('Misunderstood Request'), 400
Exemple #6
0
def group_update(group):
    try:
        email = token_email()
        data = request.json
        data['updated'] = gen_time()
        if data['group_name'] and data['updated'] and len(data) == 2:
            response = get_record(group, 'account')
            # Check if the user has access to the group
            if email in response[0]['group_admin'] or email in response[0][
                    'group_creator']:
                data['email'] = group
                update_group(group, 'account', data)
                return jsonify("Updated: {}".format(group)), 200

            return jsonify(
                "Only group admins or creator can perform this update"), 403
        else:
            return jsonify(
                "You must fill in all of the required fields *"), 400
    except:
        return jsonify('Misunderstood Request'), 400
Exemple #7
0
def add_data():
    if (user_limit()):
        return jsonify('{} Records Limit Reached'.format(
            get_item.item_limit)), 426

    email = token_email()
    try:
        data = request.json
        if data['itemname'] and data['end_date'] and data[
                'notify_date'] and data['typename'] and data[
                    'remarks'] and len(data) <= 6:
            data['email'] = email
            if 'filename' in data:
                data['item'] = data['filename'][:26]
                data['filename'] = data['filename'][27:]
            else:
                data['item'] = gen_time()
            add_record(data)
            return jsonify(data), 201
        return jsonify('You must fill in all of the required fields *'), 400
    except:
        return jsonify('Misunderstood Request'), 400