Commit 3df0203c authored by ASHISH KUMAR GOYAL's avatar ASHISH KUMAR GOYAL

login logout and homepage

parent 434783db
No preview for this file type
......@@ -124,6 +124,9 @@ USE_TZ = True
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')
LOGIN_URL = '/user/login/'
LOGIN_REDIRECT_URL = '/user/'
# AUTHENTICATION_BACKENDS = ["django_auth_ldap.backend.LDAPBackend"]
# AUTH_LDAP_SERVER_URI = "ldap://ldap.iitb.ac.in"
# AUTH_LDAP_ALWAYS_UPDATE_USER = False
......
......@@ -25,9 +25,6 @@ from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
]
urlpatterns += [
path('user/', include('usermgmt.urls')),
path('', RedirectView.as_view(url='user/',permanent=True)),
]
......
......@@ -48,10 +48,10 @@
<label id='error_msg'>{{ error_msg }}</label>
</div>
<div class="form-group">
<input type="text" class="form-control form-control-user" id="ldapid" name="ldapid" aria-describedby="emailHelp" placeholder="LDAP ID ex. 193050XXX">
<input type="text" class="form-control form-control-user" id="username" name="username" aria-describedby="emailHelp" placeholder="Username">
</div>
<div class="form-group">
<input type="password" class="form-control form-control-user" id="password" name="password" placeholder=" LDAP Password..">
<input type="password" class="form-control form-control-user" id="password" name="password" placeholder="Password">
</div>
<div class="form-group">
<div class="custom-control custom-checkbox small">
......
......@@ -11,12 +11,13 @@
<title>View Requests</title>
{% load static %}
<!-- Custom fonts for this template-->
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link href="{% static 'vendor/fontawesome-free/css/all.min.css' %}" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
<!-- Custom styles for this template-->
<link href="css/sb-admin-2.min.css" rel="stylesheet">
<link href="{% static 'css/sb-admin-2.min.css' %}" rel="stylesheet">
</head>
......@@ -110,11 +111,18 @@
<!-- Topbar Navbar -->
<ul class="navbar-nav ml-auto">
<li>
<div>
{{ user.username }}
</div>
</li>
&nbsp;&nbsp;&nbsp;
<li>
<div>
<a class="nav-item" href="#" data-toggle="modal" data-target="#logoutModal">
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
Logout
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>Logout
</a>
<!-- </div> -->
</div>
</li>
</ul>
......@@ -203,28 +211,28 @@
<div class="modal-body">Select "Logout" below if you are ready to end your current session.</div>
<div class="modal-footer">
<button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
<a class="btn btn-primary" href="login.html">Logout</a>
<a class="btn btn-primary" href="{%url 'logout' %}">Logout</a>
</div>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript-->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="{% static 'vendor/jquery/jquery.min.js' %}"></script>
<script src="{% static 'vendor/bootstrap/js/bootstrap.bundle.min.js' %}"></script>
<!-- Core plugin JavaScript-->
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<script src="{% static 'vendor/jquery-easing/jquery.easing.min.js' %}"></script>
<!-- Custom scripts for all pages-->
<script src="js/sb-admin-2.min.js"></script>
<script src="{% static 'js/sb-admin-2.min.js' %}"></script>
<!-- Page level plugins -->
<script src="vendor/chart.js/Chart.min.js"></script>
<script src="{% static 'vendor/chart.js/Chart.min.js' %}"></script>
<!-- Page level custom scripts -->
<script src="js/demo/chart-area-demo.js"></script>
<script src="js/demo/chart-pie-demo.js"></script>
<script src="{% static 'js/demo/chart-area-demo.js' %}"></script>
<script src="{% static 'js/demo/chart-pie-demo.js' %}"></script>
</body>
......
......@@ -2,6 +2,13 @@
from django.urls import path
from . import views
#Add URL maps to redirect the base URL to our application
from django.views.generic import RedirectView
urlpatterns = [
path('', views.login, name='login')
path('', RedirectView.as_view(url='login/'), name='base'),
path('homepage/', views.homepage_view, name='homepage'),
path('login/', views.login_view, name='login'),
path('logout/', views.logout_view, name='logout'),
]
\ No newline at end of file
from django.shortcuts import render
# from django_auth_ldap.backend import LDAPBackend , ldap_error
from ldap3 import Server, Connection, ALL
from django.shortcuts import render,redirect
from django.http import HttpResponse, HttpRequest
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required
# Create your views here.
def login(request):
@login_required
def homepage_view(request):
#get the user object and send in context
return render(request, 'viewreq.html', context=None)
def login_view(request):
"""View function for login page of site"""
if request.method == 'GET':
#check if user is authenticated
if request.user.is_authenticated:
return redirect('homepage')
# return render(request, 'viewreq.html', context=None)
else:
return render(request, 'login.html', context=None)
elif request.method == 'POST':
# return HttpResponse('<p> Great! logged in!</p>')
ldap_server = Server("ldap://ldap.iitb.ac.in", get_info='ALL')
username = request.POST.get('ldapid')
password = request.POST.get('password')
user_dn = "uid="+username+",ou=People,dc=iitb,dc=ac,dc=in"
base_dn = "dc=iitb,dc=ac,dc=in"
search_filter = "uid="+username
conn = Connection(ldap_server, user=user_dn, password=password)
# connect.simple_bind_s(user_dn,password)
# connect.unbind_s()
if not conn.bind():
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('homepage')
else:
return render(request, 'login.html', context={'error_msg':'Invalid Username/Password.'})
# return render(request, 'viewreq.html', context=None)
def logout_view(request):
if request.user.is_authenticated:
logout(request)
return HttpResponse('<p> Successfully logged out! Please refresh to go to main page.</p>')
else:
return render(request, 'viewreq.html', context=None)
\ No newline at end of file
return redirect('base')
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment