Ejemplo n.º 1
0
    def delete(self, request, workspace_id, last_user=''):
        user = get_user_authentication(request)

        user_workspaces = UserWorkSpace.objects.select_related('workspace')
        try:
            user_workspace = user_workspaces.get(user__id=user.id, workspace__id=workspace_id)
        except UserWorkSpace.DoesNotExist:
            raise Http404

        workspace = user_workspace.workspace
        if workspace.creator != user or user_workspace.manager != '':
            return HttpResponseForbidden()

        # Check if the user does not have any other workspace
        workspaces = WorkSpace.objects.filter(users__id=user.id).exclude(pk=workspace_id)

        if workspaces.count() == 0:
            msg = _("workspace cannot be deleted")

            raise TracedServerError(None, {'workspace': workspace_id}, request, msg)

        # Remove the workspace
        PublishedWorkSpace.objects.filter(workspace=workspace).update(workspace=None)
        igadgets = IGadget.objects.filter(tab__workspace=workspace)
        for igadget in igadgets:
            deleteIGadget(igadget, user)
        workspace.delete()

        # Set a new active workspace (first workspace by default)
        activeWorkspace = workspaces[0]
        setActiveWorkspace(user, activeWorkspace)

        return HttpResponse('ok')
Ejemplo n.º 2
0
def deleteGadget(user, short_name, vendor, version):

    result = {'removedIGadgets': []}

    # Remove all igadget that matches this Gadget Resource
    try:

        gadget = Gadget.objects.get(name=short_name, vendor=vendor, version=version)
        igadgets = IGadget.objects.filter(gadget=gadget)
        for igadget in igadgets:
            result['removedIGadgets'].append(igadget.id)
            deleteIGadget(igadget, user)

        gadget.delete()

    except Gadget.DoesNotExist:
        pass

    try:
        uri = "/gadgets/" + vendor + '/' + short_name + '/' + version + '/xhtml'
        xhtml = XHTML.objects.get(uri=uri)
        xhtml.delete()
    except XHTML.DoesNotExist:
        pass

    return result
Ejemplo n.º 3
0
def deleteTab(tab, user):
    #Deleting igadgets
    igadgets = IGadget.objects.filter(tab=tab)
    for igadget in igadgets:
        deleteIGadget(igadget, user)

    # Deleting tab
    tab.delete()
Ejemplo n.º 4
0
    def delete(self, request, workspace_id, tab_id, igadget_id):
        user = get_user_authentication(request)

        # Gets Igadget, if it does not exist, a http 404 error is returned
        igadget = get_object_or_404(IGadget, tab__workspace__users__id=user.id, tab__workspace__pk=workspace_id, tab__pk=tab_id, pk=igadget_id)

        deleteIGadget(igadget, user)

        return HttpResponse('ok')
Ejemplo n.º 5
0
        try:
            user = getTargetUser(request.user, user_name)
        except Exception, e:
            json = json_encode({"message": str(e), "result": "error"})
            return HttpResponseServerError(json, mimetype='application/json; charset=UTF-8')

        gadget = Gadget.objects.get(id=gadget_id)

        #userWorkspaces =  UserWorkSpace.objects.filter(user=request.user)
        #userTabs = Tab.objects.filter(workspace__in=userWorkspaces)
        #igadgets = IGadget.objects.filter(gadget=gadget, tab__in=userTabs)
        igadgets = IGadget.objects.filter(gadget=gadget, tab__workspace__users__id=user.id)
        values = []
        for ig in igadgets:
            values.append(ig.id)
            deleteIGadget(ig, user)

        return HttpResponse(json_encode({"result": "ok", "deleted_igadgets": values}),
                            mimetype='application/json; charset=UTF-8')


class IGadgetEntry(Resource):

    @basicauth_or_logged_in()
    @transaction.commit_on_success
    def delete(self, request, igadget_id, user_name=None):

        # Get the target user, either the user stored in the request or the parameter of the URL
        try:
            user = getTargetUser(request.user, user_name)
        except Exception, e: