Exemple #1
0
def user_settings(request):
    if request.GET.get('index_delete') == 'true':
        rest_user = RestUser(username=request.user.username)
        
        index_delete_result = rest_user.get(path='deleteIndex/')
        if index_delete_result and 'messages' in index_delete_result:
            for msg in index_delete_result['messages']:
                messages.add_message(request, messages.INFO, _(msg))
    
    form = UserSettingsForm(request.user, request.POST or None)
    if form.is_valid():
        result = form.save()
        
        if result and 'errorMessage' in result:
            messages.add_message(request, messages.ERROR, _(result['errorMessage']))
        if result and 'messages' in result:
            for msg in result['messages']:
                if msg == "Account password has been changed" and result['type'] == 'success':
                    request.session['key_ring'] = request.POST['new_password1']
                messages.add_message(request, messages.INFO, _(msg))
        
        if 'index_deactivated' in result and result['index_deactivated'] == True:
            url = reverse('user-settings')
            return HttpResponseRedirect(url + "?index_deactivated=true")
        return redirect('user-settings')
    
    
    return render_to_response(
        'www/access/user_settings.html',
        {
            "form": form,
        },
        context_instance=RequestContext(request)
    )
Exemple #2
0
def zip_files(request):
    rest_user = RestUser(username=request.user.username)
    user = rest_user.get()
    user_id = int(user['userId'])
    try: 
    	file_list = [f for f in sorted(os.listdir(settings.ZIP_ARCHIVES_PATH % user_id)) if re.match(settings.ZIP_ARCHIVES_MATCH_PATTERN, f)]
    except:
	file_list=[]
    return render_to_response('www/zip_file_list.html', {
        'file_list': file_list,
    }, context_instance=RequestContext(request))
Exemple #3
0
 def clean_email(self):
     email = self.cleaned_data["email"]
     try:
         # check if remote api knows user
         remote_user = RestUser(email)
         result = remote_user.get()
     
         if 'errorType' in result and result['errorType'] == 'org.backmeup.model.exceptions.UnknownUserException':
             # remote api doesn't know user, thus check with local db
             old_user = User.objects.get(username=email)
             # seems like the user exists (no exception) in "our" db, but not
             # according to the rest api. thus the user is deleted.
             old_user.delete()
             return email
     except User.DoesNotExist:
         return email
     
     raise forms.ValidationError(_("A user with that email already exists."))
Exemple #4
0
def zip_download(request):
    """
    Send a file through Django without loading the whole file into
    memory at once. The FileWrapper will turn the file object into an
    iterator for chunks of 8KB.
    
    (performance might be improved by using apache mod_xsendfile.)
    """
    rest_user = RestUser(username=request.user.username)
    user = rest_user.get()
    user_id = int(user['userId'])
    
    filename = settings.ZIP_ARCHIVES_PATH % user_id
    filename = filename + request.GET['f']
    wrapper = FileWrapper(file(filename))
    response = HttpResponse(wrapper, content_type='application/zip')
    response['Content-Disposition'] = 'attachment; filename=' + request.GET['f']
    response['Content-Length'] = os.path.getsize(filename)
    return response