#!/bin/sh # E2 живая проверка на CT108: создание пользователя РЦУ-админом, аудит, скоуп set -e TOKEN=$(curl -s -m 15 -X POST localhost:8000/api/v1/auth/login \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data 'username=admin&password=pass123' \ | python3 -c 'import sys,json; print(json.load(sys.stdin)["access_token"])') echo "=== список подразделений (пусто — РЦУ внесёт):" curl -s -m 15 localhost:8000/api/v1/admin/users/units -H "Authorization: Bearer $TOKEN" | head -c 120 echo echo "=== создание пользователя Г(Р)ОЧС (без юнита, юнит внесут потом):" curl -s -m 15 -X POST localhost:8000/api/v1/admin/users \ -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \ -d '{"username":"grochss_test","email":"grochss@test.by","password":"temppass123","role_name":"operator"}' | head -c 200 echo echo "=== новый пользователь входит (must_change_password=true):" T2=$(curl -s -m 15 -X POST localhost:8000/api/v1/auth/login \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data 'username=grochss_test&password=temppass123' \ | python3 -c 'import sys,json; print(json.load(sys.stdin)["access_token"])') curl -s -m 15 localhost:8000/api/v1/auth/me -H "Authorization: Bearer $T2" | python3 -c 'import sys,json; d=json.load(sys.stdin); print("must_change_password:", d["must_change_password"], "| permissions:", d["permissions"])' echo "=== аудит содержит user_create:" curl -s -m 15 "localhost:8000/api/v1/admin/users/audit?limit=5" -H "Authorization: Bearer $TOKEN" | python3 -c 'import sys,json; d=json.load(sys.stdin); print("events:", [e["event_type"] for e in d["items"]], "| retention:", d["retention_days"], "дней")'