QrCodesController.php
1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
namespace App\Controller;
use App\Controller\AppController;
use \PHPQRCode\QRcode;
class QrCodesController extends AppController
{
/*
* @Override
*
* Initialisation des autorisations pour les actions spécifiques à ce controleur
*
*/
protected function setAuthorizations() {
// On supprime les actions par défaut
$this->is_authorized_action = [];
// Action 'creer'
$this->setAuthorizationsForAction('creer', 0);
}
/*
public function isAuthorized($user,
$action=null, $id=null, $role=null, $userCname=null) {
//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);
}
}
}