codeigniter допустимые действия пользователя - PullRequest
0 голосов
/ 01 февраля 2011

Привет, как правило, контроллер codeigniter mvc принимает идентификатор в качестве параметра для функции контроллера.Например: / photo / edit / 1

Пользователь будет редактировать идентификатор изображения 1 из контроллера фотографий.Как лучше всего запретить пользователю редактировать чужое изображение ... например, редактировать id 2?Ограничение должно включать не только проверку зарегистрированного пользователя, потому что зарегистрированный пользователь все еще сможет редактировать изображение 2.

Я думал, что напишу библиотеку, которая реализует функцию разрешения,вызывается на все функции контроллера.Я бы передал идентификатор пользователя и URL-адрес в библиотечную функцию, которая содержала бы логику, чтобы проверить, может ли пользователь выполнить эту функцию или в этом случае редактировать изображение.Утомительно писать логический код для всех функций моего сайта, так как каждая из них отличается от логики.Есть ли лучший общепринятый способ?

1 Ответ

3 голосов
/ 01 февраля 2011

Обычно вы выполняете проверку в самом контроллере, поэтому, если, например, у вас есть зарегистрированный пользователь и объект фотографии из БД, просто сохраните владельца фотографии в записи БД и сравните их.

Это на самом деле не так утомительно, вы просто подтверждаете право собственности на объект перед обработкой действий над ним.

пример ...

if ($the_user->id == $the_photo->owner_id) {
    //allow their actions
}
else {
    redirect('/');   //if not, kick em out
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...