fix init_default_admins

This commit is contained in:
2026-05-18 19:48:48 +03:00
parent 3abf5c94ee
commit f04043a485
2 changed files with 32 additions and 32 deletions

View File

@@ -48,6 +48,7 @@ start(_StartType, _StartArgs) ->
start_swagger_http(), % Swagger UI и спецификация (8447) start_swagger_http(), % Swagger UI и спецификация (8447)
application:ensure_all_started(prometheus), application:ensure_all_started(prometheus),
application:ensure_all_started(prometheus_cowboy), application:ensure_all_started(prometheus_cowboy),
init_default_admins(),
{ok, Pid}; {ok, Pid};
Error -> Error ->
Error Error
@@ -177,6 +178,37 @@ start_swagger_http() ->
cowboy:start_clear(swagger_http, [{port, PortSwagger}], #{env => Env, middlewares => Middlewares}), cowboy:start_clear(swagger_http, [{port, PortSwagger}], #{env => Env, middlewares => Middlewares}),
io:format("Swagger HTTP server started on port ~p~n", [PortSwagger]). io:format("Swagger HTTP server started on port ~p~n", [PortSwagger]).
%% ---------- Инициализация администраторов ----------
init_default_admins() ->
case core_admin:list_all() of
[] ->
% Суперадмин
SuperEmail = list_to_binary(os:getenv("ADMIN_SUPER_EMAIL", "superadmin@eventhub.local")),
SuperPass = list_to_binary(os:getenv("ADMIN_SUPER_PASSWORD", "123456")),
{ok, _} = core_admin:create(SuperEmail, SuperPass, superadmin),
io:format("Default superadmin created: ~s~n", [SuperEmail]),
% Админ
AdminEmail = list_to_binary(os:getenv("ADMIN_EMAIL", "admin@eventhub.local")),
AdminPass = list_to_binary(os:getenv("ADMIN_PASSWORD", "123456")),
{ok, _} = core_admin:create(AdminEmail, AdminPass, admin),
io:format("Default admin created: ~s~n", [AdminEmail]),
% Модератор
ModerEmail = list_to_binary(os:getenv("ADMIN_MODER_EMAIL", "moderator@eventhub.local")),
ModerPass = list_to_binary(os:getenv("ADMIN_MODER_PASSWORD", "123456")),
{ok, _} = core_admin:create(ModerEmail, ModerPass, moderator),
io:format("Default moderator created: ~s~n", [ModerEmail]),
% Поддержка
SupportEmail = list_to_binary(os:getenv("ADMIN_SUPPORT_EMAIL", "support@eventhub.local")),
SupportPass = list_to_binary(os:getenv("ADMIN_SUPPORT_PASSWORD", "123456")),
{ok, _} = core_admin:create(SupportEmail, SupportPass, support),
io:format("Default support created: ~s~n", [SupportEmail]);
_ ->
io:format("Admins already exist. Skipping creation.~n")
end.
get_env_int(Key, Default) -> get_env_int(Key, Default) ->
case application:get_env(eventhub, Key, Default) of case application:get_env(eventhub, Key, Default) of
Val when is_list(Val) -> list_to_integer(Val); Val when is_list(Val) -> list_to_integer(Val);

View File

@@ -63,7 +63,6 @@ handle_call(init_tables, _From, State) ->
ok = create_indices(), ok = create_indices(),
ok = stats_collector:subscribe(), ok = stats_collector:subscribe(),
ok = start_cleanup_timer(), ok = start_cleanup_timer(),
init_default_admins(),
{reply, ok, State}; {reply, ok, State};
handle_call({add_nodes, Nodes}, _From, State) -> handle_call({add_nodes, Nodes}, _From, State) ->
@@ -185,37 +184,6 @@ prune_dead_nodes() ->
catch mnesia:del_table_copy(schema, Node) catch mnesia:del_table_copy(schema, Node)
end, DeadNodes). end, DeadNodes).
%% ---------- Инициализация администраторов ----------
init_default_admins() ->
case core_admin:list_all() of
[] ->
% Суперадмин
SuperEmail = list_to_binary(os:getenv("ADMIN_SUPER_EMAIL", "superadmin@eventhub.local")),
SuperPass = list_to_binary(os:getenv("ADMIN_SUPER_PASSWORD", "123456")),
{ok, _} = core_admin:create(SuperEmail, SuperPass, superadmin),
io:format("Default superadmin created: ~s~n", [SuperEmail]),
% Админ
AdminEmail = list_to_binary(os:getenv("ADMIN_EMAIL", "admin@eventhub.local")),
AdminPass = list_to_binary(os:getenv("ADMIN_PASSWORD", "123456")),
{ok, _} = core_admin:create(AdminEmail, AdminPass, admin),
io:format("Default admin created: ~s~n", [AdminEmail]),
% Модератор
ModerEmail = list_to_binary(os:getenv("ADMIN_MODER_EMAIL", "moderator@eventhub.local")),
ModerPass = list_to_binary(os:getenv("ADMIN_MODER_PASSWORD", "123456")),
{ok, _} = core_admin:create(ModerEmail, ModerPass, moderator),
io:format("Default moderator created: ~s~n", [ModerEmail]),
% Поддержка
SupportEmail = list_to_binary(os:getenv("ADMIN_SUPPORT_EMAIL", "support@eventhub.local")),
SupportPass = list_to_binary(os:getenv("ADMIN_SUPPORT_PASSWORD", "123456")),
{ok, _} = core_admin:create(SupportEmail, SupportPass, support),
io:format("Default support created: ~s~n", [SupportEmail]);
_ ->
io:format("Admins already exist. Skipping creation.~n")
end.
%% =================================================================== %% ===================================================================
%% Создание / открытие таблиц %% Создание / открытие таблиц
%% =================================================================== %% ===================================================================