update docs

This commit is contained in:
long2ice
2021-05-07 19:20:09 +08:00
parent 4ec6e3732c
commit 660c483498
7 changed files with 153 additions and 202 deletions

View File

@@ -33,14 +33,12 @@ class FastAPIAdmin(FastAPI):
self,
redis: Redis,
logo_url: str = None,
login_logo_url: str = None,
default_locale: str = "en_US",
admin_path: str = "/admin",
template_folders: Optional[List[str]] = None,
providers: Optional[List[Provider]] = None,
):
self.redis = redis
self.login_logo_url = login_logo_url
i18n.set_locale(default_locale)
self.admin_path = admin_path
self.logo_url = logo_url

View File

@@ -34,18 +34,27 @@ class UsernamePasswordProvider(Provider):
logout_path="/logout",
template="login.html",
login_title="Login to your account",
login_logo_url: str = None,
):
self.login_path = login_path
self.logout_path = logout_path
self.template = template
self.admin_model = admin_model
self.login_title = login_title
self.login_logo_url = login_logo_url
async def login_view(
self,
request: Request,
):
return templates.TemplateResponse(self.template, context={"request": request})
return templates.TemplateResponse(
self.template,
context={
"request": request,
"login_logo_url": self.login_logo_url,
"login_title": self.login_title,
},
)
async def register(self, app: "FastAPIAdmin"):
await super(UsernamePasswordProvider, self).register(app)

View File

@@ -1,93 +1,93 @@
{% extends "base.html" %} {% block outer_body %}
<body class="border-primary d-flex flex-column">
<div class="page page-center">
<div class="container-tight py-4">
<div class="text-center mb-4">
<a href="."
><img
src="https://preview.tabler.io/static/logo.svg"
height="36"
alt=""
/></a>
</div>
{% if error %}
<div
class="alert alert-important alert-danger alert-dismissible"
role="alert"
>
<div class="d-flex">
<div>
<i class="ti ti-alert-circle"></i>
</div>
<div>{{ error }}</div>
</div>
<a
class="btn-close btn-close-white"
data-bs-dismiss="alert"
aria-label="close"
></a>
</div>
{% endif %}
<form
class="card card-md"
action="{{ request.app.admin_path }}{{ request.app.login_provider.login_path }}"
method="post"
autocomplete="off"
>
<div class="card-body">
<h2 class="card-title text-center mb-4">
{{ request.app.login_provider.login_title }}
</h2>
<div class="mb-3">
<label class="form-label">{{ _('username') }}</label>
<input
name="username"
type="text"
class="form-control"
placeholder="{{ _('login_username_placeholder') }}"
/>
</div>
<div class="mb-2">
<label class="form-label">
{{ _('password') }}
<span class="form-label-description"> </span>
</label>
<div class="input-group input-group-flat">
<input
placeholder="{{ _('login_password_placeholder') }}"
name="password"
type="password"
class="form-control"
autocomplete="off"
/>
<span class="input-group-text"> </span>
<body class="border-primary d-flex flex-column">
<div class="page page-center">
<div class="container-tight py-4">
<div class="text-center mb-4">
<a href="."
><img
src="{{ login_logo_url }}"
height="36"
alt=""
/></a>
</div>
</div>
<div class="mb-2">
<label class="form-check">
<input
type="checkbox"
name="remember_me"
class="form-check-input"
/>
<span class="form-check-label">{{ _('remember_me') }}</span>
</label>
</div>
<div class="form-footer">
<button type="submit" class="btn btn-primary w-100">
{{ _('sign_in') }}
</button>
</div>
{% if error %}
<div
class="alert alert-important alert-danger alert-dismissible"
role="alert"
>
<div class="d-flex">
<div>
<i class="ti ti-alert-circle"></i>
</div>
<div>{{ error }}</div>
</div>
<a
class="btn-close btn-close-white"
data-bs-dismiss="alert"
aria-label="close"
></a>
</div>
{% endif %}
<form
class="card card-md"
action="{{ request.app.admin_path }}{{ request.app.login_provider.login_path }}"
method="post"
autocomplete="off"
>
<div class="card-body">
<h2 class="card-title text-center mb-4">
{{ login_title }}
</h2>
<div class="mb-3">
<label class="form-label">{{ _('username') }}</label>
<input
name="username"
type="text"
class="form-control"
placeholder="{{ _('login_username_placeholder') }}"
/>
</div>
<div class="mb-2">
<label class="form-label">
{{ _('password') }}
<span class="form-label-description"> </span>
</label>
<div class="input-group input-group-flat">
<input
placeholder="{{ _('login_password_placeholder') }}"
name="password"
type="password"
class="form-control"
autocomplete="off"
/>
<span class="input-group-text"> </span>
</div>
</div>
<div class="mb-2">
<label class="form-check">
<input
type="checkbox"
name="remember_me"
class="form-check-input"
/>
<span class="form-check-label">{{ _('remember_me') }}</span>
</label>
</div>
<div class="form-footer">
<button type="submit" class="btn btn-primary w-100">
{{ _('sign_in') }}
</button>
</div>
</div>
</form>
</div>
</form>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@rc/dist/js.cookie.min.js"></script>
<script>
let on = Cookies.get("remember_me");
if (on !== "") {
$('input[name="remember_me"]').attr("checked", true);
}
</script>
</body>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@rc/dist/js.cookie.min.js"></script>
<script>
let on = Cookies.get("remember_me");
if (on !== "") {
$('input[name="remember_me"]').attr("checked", true);
}
</script>
</body>
{% endblock %}