43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from django.shortcuts import render, redirect
|
|
from django.contrib.auth import login, logout
|
|
from .forms import PhoneLoginForm
|
|
from django.contrib import messages
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
def login_view(request):
|
|
if request.user.is_authenticated:
|
|
return redirect('dashboard')
|
|
|
|
if request.method == "POST":
|
|
form = PhoneLoginForm(request.POST)
|
|
if form.is_valid():
|
|
user = form.get_user()
|
|
login(request, user)
|
|
return redirect('dashboard')
|
|
else:
|
|
messages.error(request, "Invalid phone number or password")
|
|
else:
|
|
form = PhoneLoginForm()
|
|
|
|
return render(request, "auth/login.html", {"form": form})
|
|
|
|
|
|
def logout_view(request):
|
|
logout(request)
|
|
return redirect('login')
|
|
|
|
@login_required
|
|
def dashboard(request):
|
|
if request.user.role == "businessman":
|
|
return redirect("businessman_dashboard")
|
|
elif request.user.role == "manager":
|
|
return redirect("manager_dashboard")
|
|
elif request.user.role == "employee":
|
|
return redirect("employee_dashboard")
|
|
else:
|
|
return redirect("login")
|
|
|
|
|
|
def csrf_failure(request, reason=""):
|
|
logout(request)
|
|
return redirect("login") |