diff options
Diffstat (limited to 'apps/accounts/views.py')
| -rw-r--r-- | apps/accounts/views.py | 44 | 
1 files changed, 44 insertions, 0 deletions
diff --git a/apps/accounts/views.py b/apps/accounts/views.py new file mode 100644 index 0000000..2027982 --- /dev/null +++ b/apps/accounts/views.py @@ -0,0 +1,44 @@ +from django.shortcuts import render, redirect +from django.contrib.auth import authenticate, login, logout +from django.contrib.auth.forms import UserCreationForm + + +def login_view(request): +    if request.method == "POST": +        username = request.POST['username'] +        password = request.POST['password'] +        user = authenticate(request, username=username, password=password) +        if user: +            login(request, user) +            return redirect('index') +    else: +        pass + +    return render(request, 'accounts/login.html', {'form': None}) + + +def register_view(request): +    form = None + +    if request.method == 'POST': +        form = UserCreationForm(request.POST) +        if form.is_valid(): +            form.save() + +            username = request.POST.get('username') +            password = request.POST.get('password1') +            user = authenticate(request, username=username, password=password) +            if user: +                login(request, user) +                return redirect('index') + +    return render(request, 'accounts/register.html', {'form': form}) + + +def logout_view(request): +    if request.method == 'POST': +        if request.user.is_authenticated: +            logout(request) + +    return redirect('index') +  | 
