Exemplo n.º 1
0
def deposite(request):
    '''
    Deposite a new rsa key.
    '''
    userConnected = request.user
    # Handle file upload
    docfile = []
    if request.method == 'POST':
        if request.POST['type'] == 'update':
            keysend = request.POST['key']
            if keysend and keysend != "":
                sshkey = None
                if SshKeys.objects.filter(user=userConnected).count() > 0:
                    sshkey = SshKeys.objects.get(user=userConnected)
                    sshkey.key = keysend
                else:
                    sshkey = SshKeys(user=userConnected, key=keysend)
    
                sshkey.save()
    
                err = Controller.revokeAllKeys(Permission.objects.filter(user=request.user), userConnected, sshkey)
                if err is None:
                    err = Controller.replicateAllKeys(Permission.objects.filter(user=request.user), userConnected, sshkey)
    
                    if err is None:
                        message = 'Please wait a minute to connect, during the replication on all server finished. Check your mails to know the access updates'
                    else:
                        message = err.message
                else:
                    message = err.message
                messages.success(request, message)
                # Redirect to the document list after POST
                return HttpResponseRedirect(reverse('deposite'))
            
            messages.success(request, "SSH key is not valid")
            return HttpResponseRedirect(reverse('deposite'))
        else:
            form = UploadSshKeyForm(request.POST, request.FILES)
            if form.is_valid():
                docfile = request.FILES['docfile']
                if docfile:
                    for line in docfile:
                        if SshKeys.objects.filter(user=userConnected).count() > 0:
                            sshkey = SshKeys.objects.get(user=userConnected)
                            sshkey.key = line
                            sshkey.save()

                            err = Controller.revokeAllKeys(Permission.objects.filter(user=request.user), userConnected, sshkey)
                            if err is None:
                                err = Controller.replicateAllKeys(Permission.objects.filter(user=request.user), userConnected, sshkey)

                                if err is None:
                                    message = 'Please wait a minute to connect, during the replication on all server finished. Check your mails to know the access updates'
                                else:
                                    message = err.message
                            else:
                                message = err.message
                            messages.success(request, message)
                        else:
                            sshkey = SshKeys(user=userConnected, key=line)
                            sshkey.save()

                            err = Controller.revokeAllKeys(Permission.objects.filter(user=request.user), userConnected, sshkey)
                            if err is None:
                                err = Controller.replicateAllKeys(Permission.objects.filter(user=request.user), userConnected, sshkey)

                                if err is None:
                                    message = 'Please wait a minute to connect, during the replication on all server finished. Check your mails to know the access updates' 
                                else:
                                    message = err.message
                            else:
                                message = err.message
                            messages.success(request, message)
                    # Redirect to the document list after POST
                    return HttpResponseRedirect(reverse('deposite'))
            messages.success(request, "SSH key is not valid")
            return HttpResponseRedirect(reverse('deposite'))
    else:
        if SshKeys.objects.filter(user=userConnected).count() > 0:
            key = SshKeys.objects.get(user=userConnected).key
        else:
            key = ''

        form = UploadSshKeyForm()

    args = utils.give_arguments(request.user, 'Depot')
    args.update({'documents': docfile, 'form': form, 'key': key})
    return render_to_response('user/deposite.html', args, context_instance=RequestContext(request))
Exemplo n.º 2
0
def deposite(request):
    '''
    Deposite a new rsa key.
    '''
    userConnected = request.user
    # Handle file upload
    docfile = []
    if request.method == 'POST':
        if request.POST['type'] == 'update':
            keysend = request.POST['key']
            if keysend and keysend != "":
                sshkey = None
                if SshKeys.objects.filter(user=userConnected).count() > 0:
                    sshkey = SshKeys.objects.get(user=userConnected)
                    sshkey.key = keysend
                else:
                    sshkey = SshKeys(user=userConnected, key=keysend)

                sshkey.save()

                err = Controller.revokeAllKeys(
                    Permission.objects.filter(user=request.user),
                    userConnected, sshkey)
                if err is None:
                    err = Controller.replicateAllKeys(
                        Permission.objects.filter(user=request.user),
                        userConnected, sshkey)

                    if err is None:
                        message = 'Please wait a minute to connect, during the replication on all server finished. Check your mails to know the access updates'
                    else:
                        message = err.message
                else:
                    message = err.message
                messages.success(request, message)
                # Redirect to the document list after POST
                return HttpResponseRedirect(reverse('deposite'))

            messages.success(request, "SSH key is not valid")
            return HttpResponseRedirect(reverse('deposite'))
        else:
            form = UploadSshKeyForm(request.POST, request.FILES)
            if form.is_valid():
                docfile = request.FILES['docfile']
                if docfile:
                    for line in docfile:
                        if SshKeys.objects.filter(
                                user=userConnected).count() > 0:
                            sshkey = SshKeys.objects.get(user=userConnected)
                            sshkey.key = line
                            sshkey.save()

                            err = Controller.revokeAllKeys(
                                Permission.objects.filter(user=request.user),
                                userConnected, sshkey)
                            if err is None:
                                err = Controller.replicateAllKeys(
                                    Permission.objects.filter(
                                        user=request.user), userConnected,
                                    sshkey)

                                if err is None:
                                    message = 'Please wait a minute to connect, during the replication on all server finished. Check your mails to know the access updates'
                                else:
                                    message = err.message
                            else:
                                message = err.message
                            messages.success(request, message)
                        else:
                            sshkey = SshKeys(user=userConnected, key=line)
                            sshkey.save()

                            err = Controller.revokeAllKeys(
                                Permission.objects.filter(user=request.user),
                                userConnected, sshkey)
                            if err is None:
                                err = Controller.replicateAllKeys(
                                    Permission.objects.filter(
                                        user=request.user), userConnected,
                                    sshkey)

                                if err is None:
                                    message = 'Please wait a minute to connect, during the replication on all server finished. Check your mails to know the access updates'
                                else:
                                    message = err.message
                            else:
                                message = err.message
                            messages.success(request, message)
                    # Redirect to the document list after POST
                    return HttpResponseRedirect(reverse('deposite'))
            messages.success(request, "SSH key is not valid")
            return HttpResponseRedirect(reverse('deposite'))
    else:
        if SshKeys.objects.filter(user=userConnected).count() > 0:
            key = SshKeys.objects.get(user=userConnected).key
        else:
            key = ''

        form = UploadSshKeyForm()

    args = utils.give_arguments(request.user, 'Depot')
    args.update({'documents': docfile, 'form': form, 'key': key})
    return render_to_response('user/deposite.html',
                              args,
                              context_instance=RequestContext(request))