38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
"""
|
|
Dashboard routes for the SMTP server web UI.
|
|
|
|
This module provides the main dashboard view and overview functionality.
|
|
"""
|
|
|
|
from flask import render_template
|
|
from email_server.models import Session, Domain, User, DKIMKey, EmailLog, AuthLog
|
|
from email_server.tool_box import get_logger
|
|
from .routes import email_bp
|
|
|
|
logger = get_logger()
|
|
|
|
# Dashboard and Main Routes
|
|
@email_bp.route('/')
|
|
def dashboard():
|
|
"""Main dashboard showing overview of the email server."""
|
|
session = Session()
|
|
try:
|
|
# Get counts
|
|
domain_count = session.query(Domain).filter_by(is_active=True).count()
|
|
user_count = session.query(User).filter_by(is_active=True).count()
|
|
dkim_count = session.query(DKIMKey).filter_by(is_active=True).count()
|
|
|
|
# Get recent email logs
|
|
recent_emails = session.query(EmailLog).order_by(EmailLog.created_at.desc()).limit(10).all()
|
|
|
|
# Get recent auth logs
|
|
recent_auths = session.query(AuthLog).order_by(AuthLog.created_at.desc()).limit(10).all()
|
|
|
|
return render_template('dashboard.html',
|
|
domain_count=domain_count,
|
|
user_count=user_count,
|
|
dkim_count=dkim_count,
|
|
recent_emails=recent_emails,
|
|
recent_auths=recent_auths)
|
|
finally:
|
|
session.close() |