Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'ai installer le plugin de Media de cakephp 3 https://github.com/Romano83/CakePHP3-Media

J'ai suivi la documentation. Pour autoriser les utilisateur à télécharger des média il faut ajouter cette fonction dans le AppController :

public function canUploadMedias($model, $id){
        if ($model === 'App\Model\Table\UsersTable' && $id == $this->request->Session()->read('Auth.User.id')) {
            return true;
        }
        return $this->request->Session()->read('role') == 'admin';
    }

Ensuite dans le formulaire d'un pour ajouter / modifier un projet j'ai ajouter cette ligne :

echo $this->Media->tinymce('description','Works',$work->id);

Ce que je veux

C'est avoir l'interface prêt à télécharger mes images.

Ce que j'obtiens

J'obtiens une erreur Forbidden. J'ai fait quelque testes et j'ai trouvé d'où viens le problème de cette erreur. Dans la fonction canUploadMedias(); il y a un des deux critères de la condition qui return false.
Voici ce critère qu'il me cause des problèmes :

$model === 'App\Model\Table\UsersTable'

Merci de votre aide en avance.

2 réponses


lakamark
Auteur
Réponse acceptée

Finalement, j'avais mal écrit cette ligne :

return $this->request->Session()->read('role') == 'admin';

J'ai réglé le problème avec ceci :

return $this->request->Session()->read('Auth.User.role') == 'admin';

Merci

Bonjour.
Est-ce que le modèle concerné par ton formulaire est le modèle Users ?
Si ce n'est pas le cas, c'est pour cette raison.