bonjour ,

j'ai quelques hésitations concernant l'ajax et le restful et je trouve pas vraiment de réponse dans la doc.

Pour l'ajax , imaginons j'ai un système dans ce style ( y'a peut-être des erreurs de syntaxe c'est pour l'exemple ) :
pour les routes :

Route::get('/' , PostController@index
);

Route::delete('/delete/{id}',['uses'=>'PostsController@destroy,'before'=>'csrf|admin']);

et que dans ma vue index j'ai un formulaire de ce genre

{{ Form::open(['url'=>'delete/'.$post->id']) }}
        {{ Form::token() }}
        {{ Form::submit('Supprimer')

{{ Form::close() }}

et que avec ce formulaire je fais un requête ajax en delete , est-ce que automatiquement laravel vérifie la session pour l'admin et le csrf ? parce que en testant en local j'ai l'impression que je peux appeler la méthode delete sans être auth .

Et concernant Restful je trouve pas la bonné méthode pour le filtre , est-ce que je dois le faire dans les filtres ?
du style

Route::resource('Post','PostsController',['before'=>'admin']);

et là je suis bloqué car je ne sais pas comment dire sur quelle méthode je veux que le filtre s'applique.

Ou est-ce que je dois plutôt mettre les filters dans le construct mais du coup j'ai plus une vision globale depuis mes routes .

Merci d'avance ça fait beaucoup de questions

4 réponses


Oui tu peux faire t'es filtres dans le filters.php (en ce qui concerne le admin, pour bien verifier que l'utilisateur à les droits)
exemple:

Route::filter('admin', function()
{
  if (!Auth::user() && Auth::user()->type != 9){
        return Redirect::to('/');
        die();
  }
});

Après si tu veux n'appliquer ton filter que sur une méthode

Route::delete('/delete/{id}', 'PostsController@destroy', array('before' => 'admin'));

Ou alors une autre façons de faire mais côté controller:

public function destroy($id){
    $this->isAdmin();
    //ton code....
}

public function isAdmin(){
    if(!Auth::user() && Auth::user()->type !=9)
        return Redirect::to('/');
        die();
}

oui j'ai compris comment ça fonctionne ma question précise est : est-ce que dans une requête ajax il passe la variable Session pour vérifier que l'utilisateur est auth

et pour les filtres ma question est est-ce on peut préciser dans les options d'un Route::resource les méthodes qu'on veut filtrer

Merci , c'était bien ma question pour les filtres , je savais pas si ça appliquait au requête ajax ,
et pour check l'auth justement je me demandais si il y avait un moyen sans définir manuellement les routes , parce que on perd un des interêts de rest qui est de gagner du temps

Ok merci beaucoup pour tes réponses