hoeny pad admin

This commit is contained in:
Parsa Nazer
2025-02-18 22:23:45 +03:30
parent 7617431f2b
commit 4e825711d3
2 changed files with 203 additions and 80 deletions
+66 -27
View File
@@ -16,7 +16,7 @@ import json
def dashboard_callback(request, context):
print(context)
pending_count = OrderModel.objects.filter(status='ADMIN_PENDING').count()
open_tickets_count = Ticket.objects.filter(status__in=['open', 'in_progress']).count()
context.update(random_data())
@@ -213,35 +213,74 @@ from django.contrib import messages
from django.shortcuts import redirect
from django.views.generic import RedirectView, TemplateView
from unfold.views import UnfoldModelAdminViewMixin
class FakeAdminLoginView(LoginView):
template_name = "admin/fake_login.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
print(self.get_form())
context.update({
**admin_site.each_context(self.request),
"title": "Log in",
from django.views import View
from django.shortcuts import render, redirect, get_object_or_404
# class FakeAdminLoginView(View):
# template_name = "admin/fake_login.html"
# def get_context_data(self, **kwargs):
# context = super().get_context_data(**kwargs)
# context.update({
# **admin_site.each_context(self.request),
# "title": "Log in",
# "site_header": admin_site.site_header,
# "form": self.get_form(),
# })
# return context
# def post(self):
# # Log the honeypot attempt
# username = form.cleaned_data.get("username")
# ip = self.request.META.get("REMOTE_ADDR")
# print(f"Honeypot triggered! IP: {ip}, Username: {username}")
# # Add error message and redirect back to fake login
# messages.error(self.request, "Please enter a correct شماره تماس and password. Note that both fields may be case-sensitive.")
# return redirect('/admin')
from django.views import View
from django.contrib import messages
from django.shortcuts import render, redirect
from django.contrib.admin.sites import site as admin_site
class FakeAdminLoginView(View):
def get_unfold_context(self, request):
"""Replicates Unfold's template context"""
return {
"site_title": admin_site.site_title,
"site_header": admin_site.site_header,
"form": self.get_form(),
})
"unfold": {
"title": admin_site.site_title,
"navigation": [],
"theme": "light", # Match your Unfold config
"color_scheme": "light", # Match your Unfold config
}
}
def get_context(self, request):
"""Combine Unfold context with default admin context"""
context = admin_site.each_context(request)
context.update(self.get_unfold_context(request))
return context
def form_valid(self, form):
# Log the honeypot attempt
username = form.cleaned_data.get("username")
ip = self.request.META.get("REMOTE_ADDR")
print(f"Honeypot triggered! IP: {ip}, Username: {username}")
def get(self, request):
# Log empty attempt (optional)
ip = request.META.get("REMOTE_ADDR")
print(f"Honeypot page accessed from IP: {ip}")
# Add error message and redirect back to fake login
messages.error(self.request, "Please enter a correct شماره تماس and password. Note that both fields may be case-sensitive.")
return redirect('/admin')
return render(request, 'admin/fake_login.html', self.get_context(request))
def form_invalid(self, form):
# Log the honeypot attempt
username = form.cleaned_data.get("username")
ip = self.request.META.get("REMOTE_ADDR")
print(f"Honeypot triggered! IP: {ip}, Username: {username}")
def post(self, request):
username = request.POST.get("username")
password = request.POST.get("password") # Never actually used
ip = request.META.get("REMOTE_ADDR")
# Add error message and redirect back to fake login
messages.error(self.request, "Please enter a correct شماره تماس and password. Note that both fields may be case-sensitive.")
return redirect('/admin')
print(f"Honeypot triggered! IP: {ip}, Username: {username}")
messages.error(request, "Please correct the error below.")
messages.error(request, "Please enter the correct شماره تماس and password for a staff account. Note that both fields may be case-sensitive.")
# Redirect back to fake login page with context
return render(request, 'admin/fake_login.html', self.get_context(request))