This commit is contained in:
2021-01-15 15:42:30 +00:00
parent b0df14e7ae
commit f6b9e2f741
43 changed files with 793 additions and 628 deletions

View File

@@ -2,4 +2,4 @@ from django.apps import AppConfig
class AuthenticationsConfig(AppConfig):
name = 'authentications'
name = "authentications"

View File

@@ -11,25 +11,25 @@ def authentication(username, password):
return None
# username format
new_username = 'uid={username},ou=user,dc=fet,dc=htu,dc=tuwien,dc=ac,dc=at'
new_username = "uid={username},ou=user,dc=fet,dc=htu,dc=tuwien,dc=ac,dc=at"
userdn = new_username.format(username=username)
server_uri = 'ldap://gagarin.fet.htu.tuwien.ac.at'
server_uri = "ldap://gagarin.fet.htu.tuwien.ac.at"
server = ldap3.Server(server_uri, port=389, use_ssl=True)
has_user = False
try:
conn = ldap3.Connection(server, user=userdn, password=password, auto_bind=True)
conn.search('dc=fet,dc=htu,dc=tuwien,dc=ac,dc=at', '(objectclass=person)')
conn.search("dc=fet,dc=htu,dc=tuwien,dc=ac,dc=at", "(objectclass=person)")
for user in sorted(conn.entries):
if ("DN: uid=" + str(username.lower())) in str(user):
has_user = True
except LDAPBindError as e:
logger.info('Username does not exist. Error: {}'.format(e))
logger.info("Username does not exist. Error: {}".format(e))
username = None
except Exception as e:
logger.info('Connection to server lost. Error: {}'.format(e))
logger.info("Connection to server lost. Error: {}".format(e))
username = None
if not has_user:

View File

@@ -4,7 +4,7 @@ from django.shortcuts import redirect
def unauthenticated_user(view_func):
def wrapper_func(request, *args, **kwargs):
if request.user.is_authenticated:
return redirect('home')
return redirect("home")
else:
return view_func(request, *args, **kwargs)
@@ -16,7 +16,7 @@ def authenticated_user(view_func):
if request.user.is_authenticated:
return view_func(request, *args, **kwargs)
else:
return redirect('login')
return redirect("login")
return wrapper_func

View File

@@ -3,4 +3,4 @@ from django import forms
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(label='Passwort', widget=forms.PasswordInput())
password = forms.CharField(label="Passwort", widget=forms.PasswordInput())

View File

@@ -3,6 +3,6 @@ from . import views
urlpatterns = [
path('login/', views.loginPage, name="login"),
path('logout/', views.logoutUser, name="logout"),
path("login/", views.loginPage, name="login"),
path("logout/", views.logoutUser, name="logout"),
]

View File

@@ -12,9 +12,9 @@ from .forms import LoginForm
@unauthenticated_user
def loginPage(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("password")
auth_user = authentication(username, password)
@@ -27,25 +27,25 @@ def loginPage(request):
login(request, user)
try:
return redirect(request.GET.get('next'))
return redirect(request.GET.get("next"))
except:
return redirect('home')
return redirect("home")
else:
messages.info(request, 'username or password is incorrect')
messages.info(request, "username or password is incorrect")
form = LoginForm()
context = {
"form": form,
}
return render(request, 'authentications/login.html', context)
return render(request, "authentications/login.html", context)
@authenticated_user
def logoutUser(request):
logout(request)
response = redirect('home')
response = redirect("home")
response = del_ep_cookie(request, response)
return response