REST - разграничение прав
Есть такой эндпоинт, создаем некую сущность.
var postdata = {
user_id: 15,
title: "Title",
text: "Text"
}
POST /entity
В приложении есть несколько ролей - администратор, пользователь.
- Пользователь может создавать сущности только для своего user_id.
- Администратор может создавать сущности с любым user_id (может
добавлять сущности любому юзеру)
Пример бєкенда
$postdata = [
// если текущий юзер админ - берем user_id из запроса, если нет, берем user_id текущего юзера
"user_id" => $currentUser->isAdmin() ? $request->user_id : $currentUser->id
"title" => $request->title,
"text" => $request->text
];
Entity::create($postdata);
Проблема в том что код становится не удобным для понимания. Ибо таких проверок может быть несколько в одном запросе. Правильный ли такой подход?
Не проще ли создать отдельные эндпоинты для юзера, и для админа? Админ может изменять все, юзер только свое. Да будет дублирование кода, но код будет проще для понимания.
Как правильнее?