Example #1
0
def delete_wiki(request):
    s3 = S3Storage(AWS_BUCKET_ORG_WIKI)
    response_data = {}
    if request.method == 'POST':
        key_name = request.POST['key_name'] or None
        if key_name and s3.is_file_exist(key_name):
            s3.delete_file(key_name)
            return Response(data=response_data, status=status.HTTP_200_OK)
        return Response(data=response_message(message='Invalid key name'), status=status.HTTP_400_BAD_REQUEST)
    return Response(data=response_message(code=405), status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #2
0
def delete_wiki(request):
    s3 = S3Storage(AWS_BUCKET_ORG_WIKI)
    response_data = {}
    if request.method == 'POST':
        key_name = request.POST['key_name'] or None
        if key_name and s3.is_file_exist(key_name):
            s3.delete_file(key_name)
            return Response(data=response_data, status=status.HTTP_200_OK)
        return Response(data=response_message(message='Invalid key name'),
                        status=status.HTTP_400_BAD_REQUEST)
    return Response(data=response_message(code=405),
                    status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #3
0
def create_update_permission_group(request, pk=None):
    """
    :param request: required fields: list of permission IDs-> permissions, string -> permission_name
    :return: response with HTTP status code
    """
    if request.method == "POST" or request.method == "PUT":
        response_data = {}
        permission_list = [int(i) for i in request.POST.getlist("permissions[]")]
        if pk is None:
            form = PermissionGroupForm(request.POST)
            if not form.is_valid():
                return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
            PermissionGroup.permission_groups.create_permission_group(permission_list, **form.cleaned_data)
        elif pk:
            permission_group = get_object_or_404(PermissionGroup, pk=pk)
            form = PermissionGroupForm(request.POST, instance=permission_group)
            if not form.is_valid():
                return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
            form.save()
            if permission_list:
                PermissionGroupManager.update_permissions(permission_group, permission_list)
        return Response(data=response_data, status=status.HTTP_201_CREATED)
    elif request.method == "DELETE" and pk:
        # FIXME : de-active only for now, better to delete with all relations ?
        permission_group = get_object_or_404(PermissionGroup, pk=pk)
        permission_group.is_active = False
        permission_group.save()
    return Response(data=response_message(code=405), status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #4
0
def create_update_permission_group(request, pk=None):
    """
    :param request: required fields: list of permission IDs-> permissions, string -> permission_name
    :return: response with HTTP status code
    """
    if request.method == 'POST' or request.method == 'PUT':
        response_data = {}
        permission_list = [int(i) for i in request.POST.getlist('permissions[]')]
        if pk is None:
            form = PermissionGroupForm(request.POST)
            if not form.is_valid():
                return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
            PermissionGroup.permission_groups.create_permission_group(permission_list, **form.cleaned_data)
        elif pk:
            permission_group = get_object_or_404(PermissionGroup, pk=pk)
            form = PermissionGroupForm(request.POST, instance=permission_group)
            if not form.is_valid():
                return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
            form.save()
            if permission_list:
                PermissionGroupManager.update_permissions(permission_group, permission_list)
        return Response(data=response_data, status=status.HTTP_201_CREATED)
    elif request.method == 'DELETE' and pk:
        # FIXME : de-active only for now, better to delete with all relations ?
        permission_group = get_object_or_404(PermissionGroup, pk=pk)
        permission_group.is_active = False
        permission_group.save()
    return Response(data=response_message(code=405), status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #5
0
def upload_image(request):
    # FIXME : update key path and bucket name
    s3 = S3Storage(AWS_BUCKET_ORG_WIKI)
    response_data = {}
    if request.method == 'POST':
        form = ImageFileForm(request.POST, request.FILES)
        if not form.is_valid():
            return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
        key_prefix = TEST_S3_KEY_PREFIX
        s3_key = s3.upload_image(request.FILES['file'], key_prefix)
        return Response(data={'s3_key': s3_key}, status=status.HTTP_201_CREATED)
    return Response(data=response_message(code=405), status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #6
0
def get_items(request):
    s3 = S3Storage(AWS_BUCKET_ORG_WIKI)
    response_data = {}
    if request.method == 'POST':
        form = GetKeysForm(request.data)
        if form.is_valid():
            key_prefix = form.cleaned_data['key_name'] or ''
            key_spec = form.cleaned_data['spec'] or None
            key_suffix = form.cleaned_data['suffix'] or '/'
            key_marker = form.cleaned_data['marker'] or ''
            response_data['result_list'] = s3.get_sub_keys_with_spec(key_prefix, key_spec, key_suffix, key_marker)
            return Response(data=response_data, status=status.HTTP_200_OK)
        return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
    return Response(data=response_message(code=405), status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #7
0
def upload_wiki(request):
    s3 = S3Storage(AWS_BUCKET_ORG_WIKI)
    response_data = {}
    if request.method == 'POST':
        form = WikiFileForm(request.POST)
        if form.is_valid():
            old_key_name = form.cleaned_data['old_path'] or None
            new_key_name = form.cleaned_data['new_path']
            page = form.cleaned_data['page']
            s3_key = s3.upload_wiki(page, new_key_name, old_key_name)
            if s3_key:
                return Response(data={'s3_key': s3_key}, status=status.HTTP_201_CREATED)
        return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
    return Response(data=response_message(code=405), status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #8
0
def upload_image(request):
    # FIXME : update key path and bucket name
    s3 = S3Storage(AWS_BUCKET_ORG_WIKI)
    response_data = {}
    if request.method == 'POST':
        form = ImageFileForm(request.POST, request.FILES)
        if not form.is_valid():
            return Response(data=form.errors.as_data(),
                            status=status.HTTP_400_BAD_REQUEST)
        key_prefix = TEST_S3_KEY_PREFIX
        s3_key = s3.upload_image(request.FILES['file'], key_prefix)
        return Response(data={'s3_key': s3_key},
                        status=status.HTTP_201_CREATED)
    return Response(data=response_message(code=405),
                    status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #9
0
def create_update_feature(request, pk=None):
    if request.method == "POST" or request.method == "PUT":
        response_data = {}
        if pk is None:
            form = FeatureForm(request.POST)
            if not form.is_valid():
                return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
            Feature.features.create_feature(**form.cleaned_data)
        elif pk:
            feature = get_object_or_404(Feature, pk=pk)
            form = FeatureForm(request.POST, instance=feature)
            if not form.is_valid():
                return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
            form.save()
        return Response(data=response_data, status=status.HTTP_201_CREATED)
    return Response(data=response_message(code=405), status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #10
0
def create_update_feature(request, pk=None):
    if request.method == 'POST' or request.method == 'PUT':
        response_data = {}
        if pk is None:
            form = FeatureForm(request.POST)
            if not form.is_valid():
                return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
            Feature.features.create_feature(**form.cleaned_data)
        elif pk:
            feature = get_object_or_404(Feature, pk=pk)
            form = FeatureForm(request.POST, instance=feature)
            if not form.is_valid():
                return Response(data=form.errors.as_data(), status=status.HTTP_400_BAD_REQUEST)
            form.save()
        return Response(data=response_data, status=status.HTTP_201_CREATED)
    return Response(data=response_message(code=405), status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #11
0
def get_items(request):
    s3 = S3Storage(AWS_BUCKET_ORG_WIKI)
    response_data = {}
    if request.method == 'POST':
        form = GetKeysForm(request.data)
        if form.is_valid():
            key_prefix = form.cleaned_data['key_name'] or ''
            key_spec = form.cleaned_data['spec'] or None
            key_suffix = form.cleaned_data['suffix'] or '/'
            key_marker = form.cleaned_data['marker'] or ''
            response_data['result_list'] = s3.get_sub_keys_with_spec(
                key_prefix, key_spec, key_suffix, key_marker)
            return Response(data=response_data, status=status.HTTP_200_OK)
        return Response(data=form.errors.as_data(),
                        status=status.HTTP_400_BAD_REQUEST)
    return Response(data=response_message(code=405),
                    status=status.HTTP_405_METHOD_NOT_ALLOWED)
Example #12
0
def upload_wiki(request):
    s3 = S3Storage(AWS_BUCKET_ORG_WIKI)
    response_data = {}
    if request.method == 'POST':
        form = WikiFileForm(request.POST)
        if form.is_valid():
            old_key_name = form.cleaned_data['old_path'] or None
            new_key_name = form.cleaned_data['new_path']
            page = form.cleaned_data['page']
            s3_key = s3.upload_wiki(page, new_key_name, old_key_name)
            if s3_key:
                return Response(data={'s3_key': s3_key},
                                status=status.HTTP_201_CREATED)
        return Response(data=form.errors.as_data(),
                        status=status.HTTP_400_BAD_REQUEST)
    return Response(data=response_message(code=405),
                    status=status.HTTP_405_METHOD_NOT_ALLOWED)