version 1.3.3: выбор сложности пароля (лёгкий/сложный)

- app.py: gen_password(mode), api_users_create принимает password_mode
- bot.py: меню выбора сложности перед созданием, gen_password(mode)
- mita-ctl.sh: запрос сложности в menu_users, _create_user с pwd_mode
- templates/index.html: селектор «Сложность пароля» в форме создания
- README: обновлена дорожная карта
This commit is contained in:
2026-06-28 15:11:17 +03:00
parent 6e74b9e539
commit e75e5ee211
5 changed files with 63 additions and 16 deletions
+20 -3
View File
@@ -530,11 +530,23 @@ for u in users: print(f' - {u[\"name\"]}')
echo ""
read -r -p " Выбор: " choice
# Запрашиваем сложность пароля один раз перед созданием
local pwd_mode="hard"
if [[ "$choice" == "1" || "$choice" == "2" ]]; then
echo ""
echo -e " ${BOLD}Сложность пароля:${NC}"
echo -e " ${BOLD}1.${NC} Лёгкий — A-Z, a-z, 0-9, -._~*+ (без спецсимволов)"
echo -e " ${BOLD}2.${NC} Сложный — со спецсимволами (по умолчанию)"
echo ""
read -r -p " Выбор [2]: " pwd_choice
[[ "$pwd_choice" == "1" ]] && pwd_mode="easy"
fi
case "$choice" in
1)
read -r -p "Имя пользователя: " uname
[[ -z "$uname" ]] && { warn "Имя не указано"; pause; return; }
_create_user "$uname"
_create_user "$uname" "$pwd_mode"
pause ;;
2)
read -r -p "Количество пользователей: " cnt
@@ -545,7 +557,7 @@ for u in users: print(f' - {u[\"name\"]}')
noun=$(shuf -n1 -e fox hawk river storm ember peak orbit tide frost spark 2>/dev/null || echo "node")
rnd=$((RANDOM % 9000 + 1000))
uname="${adj}_${noun}_${rnd}"
_create_user "$uname"
_create_user "$uname" "$pwd_mode"
done
pause ;;
3)
@@ -589,8 +601,13 @@ PYEOF
_create_user() {
local uname="$1"
local pwd_mode="$2"
local pass
pass=$(openssl rand -base64 48 | tr -d '/+=' | head -c 48)
if [[ "$pwd_mode" == "easy" ]]; then
pass=$(openssl rand -base64 48 | tr -dc 'A-Za-z0-9-._~*+' | head -c 32)
else
pass=$(openssl rand -base64 48 | tr -d '/+=' | head -c 48)
fi
# Записываем пользователя в JSON и проверяем результат явно
local py_result