|
@@ -3,6 +3,9 @@ from .form import UserLoginForm, UserRegisterForm
|
|
|
from django.contrib.auth import authenticate, login, logout
|
|
|
from django.http import HttpResponse
|
|
|
from .models import Profile, Devices
|
|
|
+from django.contrib.auth.models import User
|
|
|
+from django.contrib.auth.decorators import login_required
|
|
|
+from .form import ProfileForm
|
|
|
import random
|
|
|
import datetime
|
|
|
import json
|
|
@@ -35,15 +38,15 @@ def user_login(request):
|
|
|
# 登录
|
|
|
user = device.user
|
|
|
login(request, user)
|
|
|
- response = {'result': 'login successfully', 'token': device.token}
|
|
|
+ response = ['login successfully', device.token]
|
|
|
return HttpResponse(json.dumps(response))
|
|
|
# return redirect("chat:index")
|
|
|
else:
|
|
|
- response = {'result': 'token time out'}
|
|
|
+ response = ['token time out']
|
|
|
return HttpResponse(json.dumps(response))
|
|
|
# 已过期的token并且已经被删除
|
|
|
except Devices.DoesNotExist:
|
|
|
- response = {'result': 'detected new device, please login'}
|
|
|
+ response = ['detected new device, please login']
|
|
|
return HttpResponse(json.dumps(response))
|
|
|
else:
|
|
|
# 检测账号密码是否匹配数据库中的一个用户
|
|
@@ -65,13 +68,13 @@ def user_login(request):
|
|
|
# 新建一个该user的设备
|
|
|
device = create_new_device(user)
|
|
|
login(request, user)
|
|
|
- response = {'result': 'login successfully', 'token': device.token}
|
|
|
+ response = ['login successfully', device.token]
|
|
|
return HttpResponse(json.dumps(response))
|
|
|
else:
|
|
|
- response = {'result': 'wrong account or password'}
|
|
|
+ response = ['wrong account or password']
|
|
|
return HttpResponse(json.dumps(response))
|
|
|
else:
|
|
|
- response = {'result', 'illegal input'}
|
|
|
+ response = ['illegal input']
|
|
|
return HttpResponse(json.dumps(response))
|
|
|
# 用于测试,登录界面
|
|
|
# elif request.method == 'GET':
|
|
@@ -80,7 +83,7 @@ def user_login(request):
|
|
|
# return render(request, 'login.html', context)
|
|
|
else:
|
|
|
# 请求方法错误,请使用POST
|
|
|
- response = {'result', 'illegal method, please use post'}
|
|
|
+ response = ['illegal method, please use post']
|
|
|
return HttpResponse(json.dumps(response))
|
|
|
|
|
|
|
|
@@ -109,7 +112,7 @@ def generate_random_str(random_length=16):
|
|
|
|
|
|
def user_logout(request):
|
|
|
logout(request)
|
|
|
- response = {'result', 'logout successfully'}
|
|
|
+ response = ['logout successfully']
|
|
|
return HttpResponse(json.dumps(response))
|
|
|
|
|
|
|
|
@@ -123,10 +126,10 @@ def user_register(request):
|
|
|
new_user.set_password(user_register_form.cleaned_data['password'])
|
|
|
# 保存
|
|
|
new_user.save()
|
|
|
- response = {'result': 'reg successfully'}
|
|
|
+ response = ['reg successfully']
|
|
|
return HttpResponse(json.dumps(response))
|
|
|
else:
|
|
|
- response = {'result', 'illegal input'}
|
|
|
+ response = ['illegal input']
|
|
|
return HttpResponse(json.dumps(response))
|
|
|
# 用于测试
|
|
|
# elif request.method == 'GET':
|
|
@@ -134,5 +137,37 @@ def user_register(request):
|
|
|
# context = {'form': user_register_form}
|
|
|
# return render(request, 'register.html', context)
|
|
|
else:
|
|
|
- response = {'result', 'illegal method, please use post'}
|
|
|
+ response = ['illegal method, please use post']
|
|
|
+ return HttpResponse(json.dumps(response))
|
|
|
+
|
|
|
+
|
|
|
+@login_required(login_url='/account/login/')
|
|
|
+def profile_detail(request, r_username):
|
|
|
+ user = User.objects.get(username=r_username)
|
|
|
+ profile = Profile.objects.get(user__exact=user)
|
|
|
+ if request.method == 'POST':
|
|
|
+ # 判断此用户是否正在修改自身账号信息
|
|
|
+ if request.user != user:
|
|
|
+ response = ['You do not have permission to do this']
|
|
|
+ return HttpResponse(json.dumps(response))
|
|
|
+ profile_form = ProfileForm(request.POST, request.FILES)
|
|
|
+ if profile_form.is_valid():
|
|
|
+ # 填入信息
|
|
|
+ profile_cd = profile_form.cleaned_data
|
|
|
+ profile.phone = profile_cd['phone']
|
|
|
+ profile.bio = profile_cd['bio']
|
|
|
+ profile.avatar = profile_cd["avatar"]
|
|
|
+ profile.save()
|
|
|
+ response = ['edit successfully']
|
|
|
+ return HttpResponse(json.dumps(response))
|
|
|
+ else:
|
|
|
+ response = ['illegal input']
|
|
|
+ return HttpResponse(json.dumps(response))
|
|
|
+ # 用于测试
|
|
|
+ # elif request.method == 'GET':
|
|
|
+ # profile_form = ProfileForm()
|
|
|
+ # context = {'profile_form': profile_form, 'profile': profile, 'user': user}
|
|
|
+ # return render(request, 'edit.html', context)
|
|
|
+ else:
|
|
|
+ response = ['illegal method, please use post']
|
|
|
return HttpResponse(json.dumps(response))
|