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) )
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))
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."))
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