Как установить login_required в проекте django, я не использую встроенную аутентификацию django для входа в систему? [закрыто]
пользователь не может войти на любую страницу, введя url любой страницы нужно ли мне что-то изменить в настройках .py
?я не использую встроенную в django аутентификацию для входа в систему.
view.py для входа в каждую приборную панель,
def asset_login(request):
if request.method == 'POST':
username = request.POST.get('user_id')
password = request.POST.get('password')
try:
user = UserTable.objects.get(username=username, password=password)
if user:
if user.status == 'inactive':
messages.error(request, 'Your account is inactive.')
return redirect('asset_login')
request.session['name'] = user.name
request.session['role'] =user.role
if user.role == 'admin':
return redirect('admin_dashboard')
elif user.role == 'ciso':
return redirect('ciso_dashboard')
elif user.role == 'fnhead':
return redirect('fnhead_dashboard')
elif user.role == 'systemadmin':
return redirect('systemadmin_dashboard')
elif user.role == 'assetowner':
return redirect('assetowner_dashboard')
else:
messages.error(request, 'Unknown user position')
return redirect('asset_login') # Redirect to clear form and message
except UserTable.DoesNotExist:
messages.error(request, 'Invalid username or password')
return redirect('asset_login') # Redirect to clear form and message
return render(request, 'asset.html')
urls.py
urlpatterns = [
path('asset_login/', views.asset_login, name='asset_login'),
path('admins/', views.admin_dashboard, name='admin_dashboard'),
path('assetdb/', views.assetowner_dashboard, name='assetowner_dashboard'),
view.py для приборной панели
def admin_dashboard(request):
total_users = UserTable.objects.count()
total_assets = AssetTable.objects.count()
total_dept=Department.objects.count()
total_emp=Employee.objects.count()
name = request.session.get('name',None)
role = request.session.get('role', None)
try:
admin_privileges = adminprivileges.objects.get()
except ObjectDoesNotExist:
admin_privileges = None
context = {
'total_users': total_users,
'total_assets': total_assets,
'total_dept':total_dept,
'total_emp':total_emp,
'name':name,
'role':role,
'assetview': admin_privileges.assetview if admin_privileges else False,
'userview': admin_privileges.userview if admin_privileges else False,
'employeeview': admin_privileges.employeeview if admin_privileges else False,
'locationview': admin_privileges.locationview if admin_privileges else False,
'departmentview': admin_privileges.departmentview if admin_privileges else False,
'categoryview': admin_privileges.categoryview if admin_privileges else False,
'rolesview': admin_privileges.rolesview if admin_privileges else False,
'reportview': admin_privileges.reportview if admin_privileges else False,
'previlegeedit':admin_privileges.privilegeedit if admin_privileges else False,
}
return render(request, 'admin_dashboard.html', context)
Пользователь не может войти на любую страницу, введя url любой страницы.
нужно ли мне что-то изменить в настройках .py