Заменить страницу регистрации на информационную заглушку
This commit is contained in:
@@ -1,60 +1,25 @@
|
||||
import React, { useState } from "react";
|
||||
import { Link, useNavigate } from "react-router-dom";
|
||||
import { api } from "../api.js";
|
||||
import React from "react";
|
||||
import { Link } from "react-router-dom";
|
||||
|
||||
// Регистрация в панели закрыта — пользователей создаёт администратор через
|
||||
// CLI (`python -m app.manage_users create ...`) или через /admin/users.
|
||||
// Этот маршрут оставлен как информационная заглушка: если кто-то зайдёт
|
||||
// по старой ссылке или опечатается в URL — он увидит понятное сообщение.
|
||||
export default function Register() {
|
||||
const [email, setEmail] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
const [error, setError] = useState("");
|
||||
const [done, setDone] = useState(false);
|
||||
const [busy, setBusy] = useState(false);
|
||||
const navigate = useNavigate();
|
||||
|
||||
async function onSubmit(e) {
|
||||
e.preventDefault();
|
||||
setError("");
|
||||
setBusy(true);
|
||||
try {
|
||||
await api.register(email, password);
|
||||
setDone(true);
|
||||
setTimeout(() => navigate("/login"), 1200);
|
||||
} catch (err) {
|
||||
setError(err.message);
|
||||
} finally {
|
||||
setBusy(false);
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="auth-wrap">
|
||||
<h1 className="page-title">Регистрация</h1>
|
||||
<p className="page-sub">Первый зарегистрированный пользователь получает права администратора</p>
|
||||
{error && <div className="error-box">{error}</div>}
|
||||
{done ? (
|
||||
<div className="card">Готово, переходим на страницу входа…</div>
|
||||
) : (
|
||||
<form onSubmit={onSubmit} className="card">
|
||||
<div className="field">
|
||||
<label>Email</label>
|
||||
<input value={email} onChange={(e) => setEmail(e.target.value)} type="email" required />
|
||||
</div>
|
||||
<div className="field">
|
||||
<label>Пароль</label>
|
||||
<input
|
||||
value={password}
|
||||
onChange={(e) => setPassword(e.target.value)}
|
||||
type="password"
|
||||
minLength={6}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
<button className="btn btn-primary" type="submit" disabled={busy} style={{ width: "100%" }}>
|
||||
{busy ? "Создаём…" : "Создать аккаунт"}
|
||||
</button>
|
||||
</form>
|
||||
)}
|
||||
<h1 className="page-title">Регистрация недоступна</h1>
|
||||
<p className="page-sub">
|
||||
Публичная регистрация в этой панели отключена из соображений безопасности.
|
||||
</p>
|
||||
<div className="card">
|
||||
<p>
|
||||
Учётные записи создаёт администратор. Если вам нужен доступ к панели,
|
||||
обратитесь к администратору — он создаст аккаунт и пришлёт данные для входа.
|
||||
</p>
|
||||
</div>
|
||||
<p className="page-sub" style={{ marginTop: 16 }}>
|
||||
Уже есть аккаунт? <Link to="/login">Войти</Link>
|
||||
<Link to="/login">Перейти на страницу входа</Link>
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user