У меня есть приложение Laravel 4 с опросом ресурсов
// routes.php
Route::resource('polls', 'PollController');
Я не хочу, чтобы кто-либо мог перечислить все опросы, за исключением случаев, когда пользователь аутентифицирован и является администратором. Это было мое решение:
// PollController.php
public function index() {
if (Auth::check() && Auth::user()->admin) {
return View::make('polls.index', Poll::all());
}
return View::make('polls.create', []);
}
Этот код прекрасно работает, но не очень чисто код. На этот раз я делаю это «проверкой администратора» в нескольких местах. Также не похоже, что это следует практике «Функция должна делать только 1 вещь».
Мне было интересно, есть ли более чистый способ обработки случаев, когда ответ меняется в зависимости от того, вошел ли пользователь в систему и является ли он администратором?