This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
-include("records.hrl").
|
||||
-export([is_admin/1, check_role/2, get_permissions/1, is_superadmin/1]).
|
||||
-export([client_ip/1]). % ← IP
|
||||
-export([log_admin_action/5]). % ← аудит действий администратора
|
||||
-export([log_admin_action/6]). % ← аудит действий администратора
|
||||
-export([ip_to_binary/1]). % ← преобразование IP
|
||||
|
||||
%% -- существующие функции -------------------------------------------------
|
||||
@@ -71,14 +71,34 @@ ip_to_binary(_) ->
|
||||
%% EntityType – тип сущности (напр. <<"admin">>, <<"banned_word">>)
|
||||
%% EntityId – идентификатор сущности
|
||||
%% Req – cowboy_req для извлечения IP
|
||||
-spec log_admin_action(binary(), binary(), binary(), term(), cowboy_req:req()) -> ok.
|
||||
log_admin_action(AdminId, Action, EntityType, EntityId, Req) ->
|
||||
%%-spec log_admin_action(binary(), binary(), binary(), term(), cowboy_req:req()) -> ok.
|
||||
%%log_admin_action(AdminId, Action, EntityType, EntityId, Req) ->
|
||||
%% case core_admin:get_by_id(AdminId) of
|
||||
%% {ok, Admin} ->
|
||||
%% Email = Admin#admin.email,
|
||||
%% Role = atom_to_binary(Admin#admin.role, utf8),
|
||||
%% Ip = ip_to_binary(cowboy_req:peer(Req)),
|
||||
%% core_admin_audit:log(AdminId, Email, Role, Action, EntityType, EntityId, Ip),
|
||||
%% ok;
|
||||
%% _ -> ok
|
||||
%% end.
|
||||
|
||||
%% @doc Логирует действие администратора.
|
||||
%% Параметры:
|
||||
%% AdminId – ID администратора, выполнившего действие
|
||||
%% Action – бинарная строка действия (напр. <<"create">>)
|
||||
%% EntityType – тип сущности (напр. <<"admin">>, <<"banned_word">>)
|
||||
%% EntityId – идентификатор сущности
|
||||
%% Reason - причина
|
||||
%% Req – cowboy_req для извлечения IP
|
||||
-spec log_admin_action(binary(), binary(), binary(), term(), binary(), cowboy_req:req()) -> ok.
|
||||
log_admin_action(AdminId, Action, EntityType, EntityId, Reason, Req) ->
|
||||
case core_admin:get_by_id(AdminId) of
|
||||
{ok, Admin} ->
|
||||
Email = Admin#admin.email,
|
||||
Role = atom_to_binary(Admin#admin.role, utf8),
|
||||
Ip = ip_to_binary(cowboy_req:peer(Req)),
|
||||
core_admin_audit:log(AdminId, Email, Role, Action, EntityType, EntityId, Ip),
|
||||
core_admin_audit:log(AdminId, Email, Role, Action, EntityType, EntityId, Ip, Reason),
|
||||
ok;
|
||||
_ -> ok
|
||||
end.
|
||||
Reference in New Issue
Block a user