QrCodesController.php 1.57 KB
<?php
namespace App\Controller;

use App\Controller\AppController;
use \PHPQRCode\QRcode;

class QrCodesController extends AppController
{

    public function isAuthorized($user) {
        //return ($this->action == 'creer');
        return ($this->a == 'creer'); 
        // Si aucune règle ci-dessus n'a return true (ou false)
        // => DEFAULT PARENT RULE
        // (on appelle la méthode isAuthorized() de AppController)
        //return parent::isAuthorized($user);
    } // isAuthorizedAction()

    
    // @todo Autoriser "creer" dans isAuthorized de ce controleur, et non pas dans celui de AppController !!!
    public function creer($message = null)
    {
        // Le fichier QrCode porte simplement le nom de l’ID de la session suivi de l’extension “.png”. 
        // Par exemple, “0fga4e9e6osa97iunfsvk8m8m8.png”.
        $fileName = $this->request->getSession()->id() . '.png';
        
        // L’image QrCode est créée dans le dossier webroot/img/qrcodes/
        $cakephpPath = str_replace('webroot/index.php', '', $_SERVER['SCRIPT_FILENAME']);
        $qrCodePath = $cakephpPath . 'webroot/img/qrcodes/' . $fileName;
        
        $this->request->getSession()->write('filename', $fileName);
        $this->request->getSession()->write('qrCodePath', $qrCodePath);
        
        // Creation du QrCode avec la methode png() de PHPQRCode\QRcode
        if ($message == null) {
            return QRcode::png($this->request->getSession()->read('qrUrl'), $qrCodePath);
        } else {
            return QRcode::png($message, $qrCodePath);
        }
    }
}