views.py
4.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
from django.contrib.auth.models import User
from django.contrib.auth import authenticate
from django.shortcuts import render, redirect
from django.core.exceptions import PermissionDenied
from khuloud import settings
from blog import cognito
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse, JsonResponse
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
from rest_framework.response import Response
from rest_framework import status
from cloud import views
import hashlib
import json
import django
import requests
@csrf_exempt
def main(request):
if request.user.is_authenticated:
return render(request, "main.html")
else:
return render(request, "login.html")
@csrf_exempt
def login(request):
if request.user.is_authenticated:
raise PermissionDenied
else:
if request.method == "POST":
data=request.POST
if not all(i in data for i in ('username', 'password')):
return render(request, "login.html", {
"message": "아이디와 비밀번호를 입력해 주세요"
})
un = data['username']
pw = data['password']
user = authenticate(username=un, password=pw)
if user is not None:
auth = django.contrib.auth.login(request, user)
hashcode = hashlib.md5(request.POST['password'].encode('utf-8')).hexdigest()
cog = cognito.Cognito()
cog.sign_in_admin(username=un, password=hashcode)
return JsonResponse({'user':{
'username' :un,
'password' :pw,
}}, safe=False)
else:
return render(request, "login.html", {
"message": "아이디와 비밀번호를 확인해 주세요"
})
else:
return render(request, "login.html")
def logout(request):
if request.user.is_authenticated:
django.contrib.auth.logout(request)
return redirect("/main")
def register(request):
Cog = cognito.Cognito()
reg=views.FileView()
if request.user.is_authenticated: raise PermissionDenied
if request.method == "POST":
require_keys = ('username', 'password', 'first_name', 'last_name', 'email')
if all(i in request.POST for i in require_keys):
if User.objects.filter(username=request.POST['username']).count():
return render(request, 'register.html', {
"message": 'alreadt exist username!'
})
if User.objects.filter(email=request.POST['email']).count():
return render(request, 'register.html', {
"message": 'alreadt exist email!'
})
userobj = User.objects.create_user(
username=request.POST['username'],
password=request.POST['password'],
first_name=request.POST['first_name'],
last_name=request.POST['last_name'],
email=request.POST['email']
)
hashcode = hashlib.md5(request.POST['password'].encode('utf-8')).hexdigest()
Cog.sign_up(
username=request.POST['username'],
password=hashcode,
UserAttributes=[
{
'Name' : 'email',
'Value' : request.POST['email'],
},
{
'Name' : 'family_name',
'Value': request.POST['first_name'],
},
{
'Name' : 'given_name',
'Value': request.POST['last_name'],
},
])
Cog.confirm_sign_up(username=request.POST['username']);
print(reg.create_bucket(request))
return redirect('/main')
else:
return render(request, 'register.html', {
"message": 'error.'
})
else:
return render(request, 'register.html')
def delete(request):
if request.user.is_authenticated:
if request.method == 'POST':
request.user.delete()
return redirect('/main')
else:
return rendet(request,'delete.html',{
"message": 'login required!'
})
return render(request, 'delete.html')