1616from django .core .paginator import Paginator , EmptyPage , PageNotAnInteger
1717from django .views .decorators .csrf import csrf_exempt
1818from django .contrib .auth .decorators import login_required
19+ from django .contrib .auth import authenticate , login , logout
1920
2021try :
2122 import yara
@@ -150,6 +151,35 @@ def session_creation(request, mem_image, session_id):
150151##
151152# Page Views
152153##
154+ # Login Page
155+ def login_page (request ):
156+ try :
157+ user_name = request .POST ['username' ]
158+ password = request .POST ['password' ]
159+ if user_name and password :
160+ user = authenticate (username = user_name , password = password )
161+ if user is not None :
162+ if user .is_active :
163+ login (request , user )
164+ return redirect ('/' )
165+ else :
166+ message = "This account is currently disabled. Please check with your admin."
167+ return main_page (request , error_line = message )
168+ else :
169+ message = "User does not exist or incorrect password."
170+ return main_page (request , error_line = message )
171+ except Exception as error :
172+ logger .error (error )
173+ message = "Unable to login to the Web Panel"
174+ return main_page (request , error_line = message )
175+
176+
177+ # Logout Page
178+ def logout_page (request ):
179+ logout (request )
180+ return redirect ('/' )
181+
182+
153183def main_page (request , error_line = None ):
154184 """
155185 Returns the main vol page
@@ -169,7 +199,9 @@ def main_page(request, error_line=None):
169199
170200
171201 if config ['auth' ]['enable' ].lower () == 'true' and not request .user .is_authenticated :
172- return HttpResponse ('Auth Required.' )
202+ return render (request , 'index.html' , {'reqauth' : True ,
203+ 'error_line' : error_line
204+ })
173205
174206
175207 # Set Pagination
@@ -208,7 +240,8 @@ def main_page(request, error_line=None):
208240 'session_counts' : [session_count , first_session , last_session ],
209241 'profile_list' : profile_list ,
210242 'plugin_dirs' : plugin_dirs ,
211- 'error_line' : error_line
243+ 'error_line' : error_line ,
244+ 'reqauth' : False
212245 })
213246
214247def session_page (request , session_id ):
0 commit comments