Ролевая модель и аудит Часть 1.

This commit is contained in:
2026-04-28 19:12:02 +03:00
parent 7ea4efd7d9
commit b2cea7896d
32 changed files with 369 additions and 320 deletions
+4 -10
View File
@@ -36,7 +36,7 @@ create_review(UserId, TargetType, TargetId, Rating, Comment) ->
get_review(UserId, ReviewId) ->
case core_review:get_by_id(ReviewId) of
{ok, Review} ->
case is_admin(UserId) orelse Review#review.status =:= visible of
case admin_utils:is_admin(UserId) orelse Review#review.status =:= visible of
true -> {ok, Review};
false -> {error, access_denied}
end;
@@ -48,7 +48,7 @@ get_review(UserId, ReviewId) ->
list_reviews(UserId, TargetType, TargetId) ->
case core_review:list_by_target(TargetType, TargetId) of
{ok, Reviews} ->
case is_admin(UserId) of
case admin_utils:is_admin(UserId) of
true -> {ok, Reviews};
false -> {ok, [R || R <- Reviews, R#review.status =:= visible]}
end;
@@ -95,7 +95,7 @@ update_review(UserId, ReviewId, Updates) ->
delete_review(UserId, ReviewId) ->
case core_review:get_by_id(ReviewId) of
{ok, Review} ->
case Review#review.user_id =:= UserId orelse is_admin(UserId) of
case Review#review.user_id =:= UserId orelse admin_utils:is_admin(UserId) of
true ->
TargetType = Review#review.target_type,
TargetId = Review#review.target_id,
@@ -159,7 +159,7 @@ can_review(UserId, TargetType, TargetId) ->
%% Проверка, может ли пользователь модерировать отзыв (скрыть/раскрыть)
can_moderate_review(UserId, ReviewId) ->
case is_admin(UserId) of
case admin_utils:is_admin(UserId) of
true ->
true;
false ->
@@ -200,12 +200,6 @@ target_exists(calendar, CalendarId) ->
end;
target_exists(_, _) -> false.
is_admin(UserId) ->
case core_user:get_by_id(UserId) of
{ok, User} -> User#user.role =:= admin;
_ -> false
end.
update_target_rating(event, EventId) ->
{Avg, Count} = core_review:get_average_rating(event, EventId),
io:format("Updating event ~p rating: avg=~p, count=~p~n", [EventId, Avg, Count]),