actualmente estoy realizando un blog en el cual los usuarios se registran, se loguean y crean posts, para este fin se trabaja con dos filtros para detectar el estado de la sesión del usuario, uno para cuando hayan iniciado y otro para cuando no lo hayan hecho
en routes.php
Código PHP:
Ver original
//filtro para comprobar si el usuario no ha iniciado sesión, en ese caso //redirige al login Route::filter('noAuth', function() { //si no ha iniciado sesión if(Auth::guest()){ return Redirect::to('login'); } }); //filtro para comprobar si el usuario ha iniciado sesión, en ese caso //redirige al dashboard Route::filter('auth', function() { //si ha iniciado sesión if(Auth::check()){ return Redirect::to('dashboard'); } });
en la vista con el siguiente codigo solo aparece el CRUD si el usuario que creo el post es igual al que inicio sesion, pero si armo la url puedo ingresar a las acciones(puedo modificar, eliminar registros) y no seria segura la aplicacion.
Código PHP:
Ver original
@foreach($posts as $post) <div class="panel radius callout"> <p>Autor: {{ $post->username }}</p> <p>Título: {{ $post->title }}</p> <p>Post: {{ $post->body }}</p> @if(Auth::check()) @if(Auth::user()->username == $post->username ) @endif @endif </div> @endforeach
necesito que solo el usuario que creo el post lo puede modificar o eliminar.
como puedo lograr esto con laravel?