views.py 3.57 KB
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 khuloud import cognito
from django.views.decorators.csrf import csrf_exempt
import hashlib

import django


def main(request):
    if request.user.is_authenticated:
        return render(request, "main.html")
    else:
        return render(request, "login.html")

def login(request):
        if request.method == "POST":
            if not all(i in request.POST for i in ('username', 'password')):
                return render(request, "login.html", {
                    "message": "please enter id and passowrd"
                })

            un = request.POST['username']
            pw = request.POST['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 redirect('/main')
            else:
                return render(request, "login.html", {
                    "message": "check id and password"
                })
        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()
    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": 'alreay exist id!'
                })
            if User.objects.filter(email=request.POST['email']).count():
                return render(request, 'register.html', {
                    "message": 'already 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']);

            return redirect('/main')
        else:
            return render(request, 'register.html', {
                "message": 'erroe!'
            })
    else:
        return render(request, 'register.html')