Заменить страницу регистрации на информационную заглушку
This commit is contained in:
@@ -1,60 +1,25 @@
|
|||||||
import React, { useState } from "react";
|
import React from "react";
|
||||||
import { Link, useNavigate } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import { api } from "../api.js";
|
|
||||||
|
|
||||||
|
// Регистрация в панели закрыта — пользователей создаёт администратор через
|
||||||
|
// CLI (`python -m app.manage_users create ...`) или через /admin/users.
|
||||||
|
// Этот маршрут оставлен как информационная заглушка: если кто-то зайдёт
|
||||||
|
// по старой ссылке или опечатается в URL — он увидит понятное сообщение.
|
||||||
export default function Register() {
|
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 (
|
return (
|
||||||
<div className="auth-wrap">
|
<div className="auth-wrap">
|
||||||
<h1 className="page-title">Регистрация</h1>
|
<h1 className="page-title">Регистрация недоступна</h1>
|
||||||
<p className="page-sub">Первый зарегистрированный пользователь получает права администратора</p>
|
<p className="page-sub">
|
||||||
{error && <div className="error-box">{error}</div>}
|
Публичная регистрация в этой панели отключена из соображений безопасности.
|
||||||
{done ? (
|
</p>
|
||||||
<div className="card">Готово, переходим на страницу входа…</div>
|
<div className="card">
|
||||||
) : (
|
<p>
|
||||||
<form onSubmit={onSubmit} className="card">
|
Учётные записи создаёт администратор. Если вам нужен доступ к панели,
|
||||||
<div className="field">
|
обратитесь к администратору — он создаст аккаунт и пришлёт данные для входа.
|
||||||
<label>Email</label>
|
</p>
|
||||||
<input value={email} onChange={(e) => setEmail(e.target.value)} type="email" required />
|
|
||||||
</div>
|
</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>
|
|
||||||
)}
|
|
||||||
<p className="page-sub" style={{ marginTop: 16 }}>
|
<p className="page-sub" style={{ marginTop: 16 }}>
|
||||||
Уже есть аккаунт? <Link to="/login">Войти</Link>
|
<Link to="/login">Перейти на страницу входа</Link>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user