привіт, як правило, контролер mvc codeigniter приймає ідентифікатор як параметр для функції контролера. Наприклад: / фото / редагування / 1
Користувач змінить ідентифікатор зображення 1 із фотографіїконтролер. Яка найкраща практика заборонити користувачеві редагувати чуже зображення… наприклад, редагувати ідентифікатор 2? Обмеження повинно включати не лише перевірку зареєстрованого користувача, оскільки зареєстрований користувач все одно зможе редагувати зображення 2.
Я думав, що напишу цю бібліотекуреалізує функцію дозволу, яка викликається для всіх функцій контролера. Я передав би ідентифікатор користувача та URL-адресу функції бібліотеки, яка містила б логіку, щоб перевірити, чи може користувач виконати цю функцію або в цьому випадку відредагувати зображення.
Проблема, яку я бачу, полягає в тому ... буде нудно писати логічний код для всіх функцій мого сайту, оскільки кожна з них відрізняється логікою. Чи існує кращий загально практикується спосіб?
Відповіді:
3 для відповіді № 1Як правило, ви проводите перевірку вконтролера, тому якщо, наприклад, у вас є зареєстрований користувач і об'єкт фотографії з бази даних, просто збережіть власника фотографії у записі бази даних і порівняйте їх.
Насправді не все так нудно, ви просто перевіряєте право власності на об’єкт перед обробкою дій над ним.
приклад ...
if ($the_user->id == $the_photo->owner_id) {
//allow their actions
}
else {
redirect("/"); //if not, kick em out
}