107 lines
5.4 KiB
HTML
107 lines
5.4 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}首页 - 黑名单查询{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="text-center">
|
|
<h1 class="display-5">PT 圈黑名单查询系统</h1>
|
|
<p class="lead text-muted">请输入邮箱地址或用户名进行查询。本系统旨在帮助 PTer 发放邀请前识别有不良记录的用户。</p>
|
|
</div>
|
|
|
|
{% if current_user.is_authenticated %}
|
|
|
|
{# 如果用户已登录,显示查询表单和结果区域 #}
|
|
<div class="row justify-content-center mt-4">
|
|
<div class="col-lg-8">
|
|
<div class="card shadow-sm">
|
|
<div class="card-body">
|
|
<form method="POST" action="{{ url_for('main.index') }}" novalidate>
|
|
{{ form.hidden_tag() }}
|
|
<div class="input-group mb-2">
|
|
{{ form.search_term(class="form-control form-control-lg", placeholder="例如: user@example.com 或 BadUser123") }}
|
|
{{ form.submit(class="btn btn-primary btn-lg") }}
|
|
</div>
|
|
{% for error in form.search_term.errors %}
|
|
<div class="text-danger small">{{ error }}</div>
|
|
{% endfor %}
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% if searched %}
|
|
<hr class="my-4">
|
|
<div class="row justify-content-center">
|
|
<div class="col-lg-8">
|
|
<div class="card shadow-sm">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">查询结果</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% if search_result %}
|
|
<div class="alert alert-danger">
|
|
<strong>状态: </strong> 发现相关不良记录
|
|
</div>
|
|
<ul class="list-group list-group-flush">
|
|
<li class="list-group-item"><strong>违规站点:</strong> {{ search_result.pt_site }}</li>
|
|
<li class="list-group-item">
|
|
<strong>违规原因:</strong>
|
|
{% if search_result.reason_categories and search_result.reason_categories|length > 0 %}
|
|
<ul class="mb-0 mt-1">
|
|
{% for reason in search_result.reason_categories %}
|
|
<li>{{ reason | translate_reason }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% else %}
|
|
未知
|
|
{% endif %}
|
|
</li>
|
|
<li class="list-group-item"><strong>记录时间:</strong> {{ search_result.created_at.strftime('%Y-%m-%d') }}</li>
|
|
</ul>
|
|
<p class="text-muted small mt-3">为保护隐私,仅展示必要的脱敏信息。具体违规描述不对外公开。</p>
|
|
|
|
{% if current_user.is_authenticated and (current_user.uid == search_result.uid or current_user.email == search_result.email) %}
|
|
<hr>
|
|
<h6>申诉通道</h6>
|
|
{% set active_appeal = search_result.appeals.filter(Appeal.status.in_(['awaiting_admin_reply', 'awaiting_user_reply'])).first() %}
|
|
{% if active_appeal %}
|
|
<p>您已对该记录发起了申诉,请点击下方按钮查看进展。</p>
|
|
<a href="{{ url_for('main.appeal_detail', appeal_id=active_appeal.id) }}" class="btn btn-warning">查看进行中的申诉</a>
|
|
{% else %}
|
|
<p>如果您认为该记录有误,可以发起申诉,管理员将会与您沟通。</p>
|
|
<a href="{{ url_for('main.create_appeal', blacklist_id=search_result.id) }}" class="btn btn-primary">对该记录发起申诉</a>
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
<div class="alert alert-success">
|
|
<strong>状态: </strong> 未查询到相关不良记录
|
|
</div>
|
|
<p class="text-muted">请注意,未查询到记录不代表用户完全清白,也可能是其违规行为尚未被举报。</p>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
|
|
{# 如果用户未登录,显示一个提示框 #}
|
|
<div class="row justify-content-center mt-5">
|
|
<div class="col-lg-8">
|
|
<div class="alert alert-warning text-center" role="alert">
|
|
<h4 class="alert-heading">功能受限</h4>
|
|
<p>查询功能仅对注册并登录的用户开放。请登录以使用本系统的全部功能。</p>
|
|
<hr>
|
|
<p class="mb-0">
|
|
<a href="{{ url_for('auth.login') }}" class="btn btn-primary">前往登录</a>
|
|
<a href="{{ url_for('auth.register') }}" class="btn btn-outline-secondary ms-2">立即注册</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endif %}
|
|
{% endblock %} |