def user_info(request, slug): key = request.META.get('HTTP_AUTHORIZATION') try: current_user = get_user_by_token(token_key=key) except Token.DoesNotExist: current_user = None if current_user and request.method=="GET": if slug == 'me': serializer = UserSerializer(current_user) return JSONResponse(serializer.data) elif slug and slug != 'me': try: user = User.objects.get(id=str(slug)) serializer = UserSerializer(user) return JSONResponse(serializer.data) except User.DoesNotExist: return HttpResponse(status=401) else: return HttpResponse(status=401) if current_user and request.method=="POST": form = UpdateProfileForm(request.POST, instance=current_user) if form.is_valid(): user = form.save() serializer = UserSerializer(user) return JSONResponse(serializer.data) else: errors = [{k: v[0]} for k, v in form.errors.items()] return JSONResponse({'errors': errors}, status_code=412) else: return HttpResponse(status=401)
def city_list(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user: countries = Country.objects.all() serializer = CountriesSerializer(countries) return JSONResponse(serializer.data) else: return HttpResponse(status=401)
def delete_user_photo(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user: user.avatar = None user.save() return JSONResponse({"status":"ok"}) else: return HttpResponse(status=401)
def update_user_photo(request): key = request.META.get('HTTP_AUTHORIZATION') if key: try: select_user = get_user_by_token(token_key=key) form = UserPhoto(request.POST, request.FILES, instance=select_user) if form.is_valid(): user = form.save() return HttpResponse("ok") except ObjectDoesNotExist: HttpResponse(status=401) else: return HttpResponse(status=401)
def email_update(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if request.method == 'GET' and request.GET.get('token'): try: email_confirm = EmailConfirmToken.objects.get(token=request.GET.get('token')) except EmailConfirmToken.DoesNotExist: email_confirm = None raise Http404 if not email_confirm.confirmed: try: user = User.objects.get(username=email_confirm.new_email) return HttpResponse('user with this email already exist') except User.DoesNotExist: email_confirm.user.username = email_confirm.new_email email_confirm.user.email = email_confirm.new_email email_confirm.user.save() email_confirm.confirmed = 1 email_confirm.save() return HttpResponse(u'email изменен успешно') else: return HttpResponse(u'этот емейл уже подтвержден') if user and request.method == 'POST': form = UpdateEmailForm(request.POST, instance=user) if form.is_valid() and not user.social: try: user = User.objects.get(username=form.cleaned_data.get('email')) return JSONResponse({'errors': {'email': 'user with this email already exist'}}, status_code=412) except User.DoesNotExist: new_email = form.cleaned_data.get('email') token = Token().generate_key() email_confirm = EmailConfirmToken.objects.create(user=user, token=token, old_email=user.username, new_email=new_email) site_url = project_settings.SITE_URL response = render_to_string('update_email.html', locals()) subject, from_email, to = 'KMM change email', '*****@*****.**', user.username msg = EmailMultiAlternatives(subject, '', from_email, [to]) msg.attach_alternative(response, "text/html") msg.send() return JSONResponse({'status':'ok'}) else: errors = [{k: v[0]} for k, v in form.errors.items()] return JSONResponse({'errors': errors}, status_code=412) else: return HttpResponse(status=401)
def password(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user and request.method == "POST": password_form = ChangePasswordForm(user, request.POST) if password_form.is_valid(): password = password_form.save() return JSONResponse({'password': password}) else: errors = [{k: v[0]} for k, v in password_form.errors.items()] return JSONResponse({'errors': errors}, status_code=412) else: return HttpResponse(status=401)
def settings(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user and request.method == "GET": serializer = SettingsSerializer(user) return JSONResponse(serializer.data) elif user and request.method == "POST": settings_form = SettingsForm(request.POST, instance=user) if settings_form.is_valid(): settings_form.save() serializer = SettingsSerializer(user) return JSONResponse(serializer.data) else: errors = [{k: v[0]} for k, v in settings_form.errors.items()] return JSONResponse({'errors': errors}, status_code=412) else: return HttpResponse(status=401)
def pregnancy(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user: user_pregnancy, created = PregnancyInfo.objects.get_or_create(user=user) if request.method == 'POST': form = PregnancyForm(request.POST, instance=user_pregnancy) if form.is_valid(): user_pregnancy = form.save() else: errors = [{k: v[0]} for k, v in form.errors.items()] return JSONResponse({'errors': errors}, status_code=412) serializer = PregnancyInfoSerializer(user_pregnancy) return JSONResponse(serializer.data) else: return HttpResponse(status=401)