Ролевая модель и аудит Часть 2. Финал. #6
This commit is contained in:
@@ -11,6 +11,7 @@ start(_StartType, _StartArgs) ->
|
||||
ok = infra_mnesia:init_tables(),
|
||||
ok = infra_mnesia:wait_for_tables(),
|
||||
connect_nodes(),
|
||||
init_default_superadmin(),
|
||||
start_http(), % Пользовательский API (8080)
|
||||
start_admin_http(), % Административный API (8445)
|
||||
application:ensure_all_started(prometheus),
|
||||
@@ -89,7 +90,12 @@ start_admin_http() ->
|
||||
{"/v1/admin/subscriptions", admin_handler_subscriptions, []},
|
||||
{"/v1/admin/subscriptions/:id", admin_handler_subscriptions, []},
|
||||
% ================== МОДЕРАЦИЯ (общий маршрут) ==================
|
||||
{"/v1/admin/:target_type/:id", admin_handler_moderation, []}
|
||||
{"/v1/admin/:target_type/:id", admin_handler_moderation, []},
|
||||
% ================== Управление ролями (только для superadmin) ==================
|
||||
{"/v1/admin/me", admin_handler_me, []},
|
||||
{"/v1/admin/admins", admin_handler_admins, []},
|
||||
{"/v1/admin/admins/:id", admin_handler_admins, []},
|
||||
{"/v1/admin/audit", admin_handler_audit, []}
|
||||
]}
|
||||
]),
|
||||
|
||||
@@ -123,4 +129,19 @@ connect_nodes() ->
|
||||
ignored -> ok
|
||||
end
|
||||
end, Nodes)
|
||||
end.
|
||||
|
||||
init_default_superadmin() ->
|
||||
case core_admin:list_all() of
|
||||
[] ->
|
||||
AdminEmail = os:getenv("ADMIN_EMAIL", "admin@eventhub.local"),
|
||||
AdminPassword = os:getenv("ADMIN_PASSWORD", "123456"),
|
||||
{ok, _Admin} = core_admin:create(
|
||||
list_to_binary(AdminEmail),
|
||||
list_to_binary(AdminPassword),
|
||||
superadmin
|
||||
),
|
||||
io:format("Default superadmin created: ~s~n", [AdminEmail]);
|
||||
_ ->
|
||||
io:format("Superadmin already exists. Skipping creation.~n")
|
||||
end.
|
||||
Reference in New Issue
Block a user