Blame view

src/Controller/FormulesController.php 5.39 KB
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
1
2
3
<?php
namespace App\Controller;

b3dceb2a   Alexis Proust   Ajout nouveaux fi...
4
5
6
7
8
9
10
11
12
13
use Cake\ORM\TableRegistry;

/**
 * Formules Controller
 *
 * @property \App\Model\Table\FormulesTable $Formules
 */
class FormulesController extends AppController
{

63c3cb16   epallier   Nombreux petits b...
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
    /**
     * Give authorization for formules
     *
     * @param
     *            $user
     * @return boolean
     */
    public function isAuthorized($user)
    {
        // $configuration = $this->confLabinvent;
        // $action = $this->request->getAttribute('params')['action'];
        $action = $this->getActionPassed();
        // $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
        $role = $this->getUserRole($user);
        
        // Admin + peut tout faire
        // if($this->userHasRoleAtLeast('Administration')) return true;
        if ($this->USER_IS_ADMIN_AT_LEAST())
            return true;
        
        // Les autres users
        if (in_array($action, [
            'edit',
            'delete'
        ])) {
            // $id = (int)$this->request->getAttribute('params')['pass'][0];
            $id = $this->getIdPassed();
            if ($this->isOwnedBy($id, $user['sn'][0] . ' ' . $user['givenname'][0]))
                return true;
            if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0]))
                return true;
        }
        
        // Par défaut
        return parent::isAuthorized($user);
    }

    /**
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
52
53
54
55
56
57
     * Index method
     *
     * @return \Cake\Network\Response|null
     */
    public function index()
    {
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
58
59
60
61
        $this->paginate = [
            'contain' => []
        ];
        $formules = $this->paginate($this->Formules->find('all'));
63c3cb16   epallier   Nombreux petits b...
62
        $nbFormules = $this->Formules->find('all')->count();
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
63
        
63c3cb16   epallier   Nombreux petits b...
64
65
66
67
        $this->set(compact('formules', 'nbFormules'));
        $this->set('_serialize', [
            'formule'
        ]);
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
68
    }
63c3cb16   epallier   Nombreux petits b...
69

b3dceb2a   Alexis Proust   Ajout nouveaux fi...
70
71
72
    /**
     * View method
     *
63c3cb16   epallier   Nombreux petits b...
73
74
     * @param string|null $id
     *            Formule id.
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
75
76
77
78
79
80
     * @return \Cake\Network\Response|null
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.
     */
    public function view($id = null)
    {
        $formule = $this->Formules->get($id, [
63c3cb16   epallier   Nombreux petits b...
81
82
83
84
85
86
87
88
            'contain' => [
                'Variables'
            ]
        ]);
        
        $this->set('formule', $formule);
        $this->set('_serialize', [
            'formule'
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
89
        ]);
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
90
91
92
93
94
95
96
97
98
99
100
    }

    /**
     * Add method
     *
     * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.
     */
    public function add()
    {
        $formule = $this->Formules->newEntity();
        if ($this->request->is('post')) {
63c3cb16   epallier   Nombreux petits b...
101
102
103
            $formule = $this->Formules->patchEntity($formule, $this->request->getData, [
                'associated' => 'Variables'
            ]);
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
104
105
106
            
            if ($this->Formules->save($formule)) {
                $this->Flash->success(__('La formule a bien été ajouté.'));
63c3cb16   epallier   Nombreux petits b...
107
108
109
110
111
                return $this->redirect([
                    'controller' => 'Formules',
                    'action' => 'view',
                    $formule->id
                ]);
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
112
113
            } else {
                $this->Flash->error(__('La formule n\'a pas pu être ajouté.'));
63c3cb16   epallier   Nombreux petits b...
114
115
116
117
118
                return $this->redirect([
                    'controller' => 'Formules',
                    'action' => 'add',
                    $formule->id
                ]);
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
119
120
            }
        }
63c3cb16   epallier   Nombreux petits b...
121
        
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
122
        $this->set(compact('formule'));
63c3cb16   epallier   Nombreux petits b...
123
124
125
        $this->set('_serialize', [
            'formule'
        ]);
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
126
127
    }

b3dceb2a   Alexis Proust   Ajout nouveaux fi...
128
129
130
    /**
     * Edit method
     *
63c3cb16   epallier   Nombreux petits b...
131
132
     * @param string|null $id
     *            Suivi id.
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
133
134
135
136
137
138
139
140
     * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise.
     * @throws \Cake\Network\Exception\NotFoundException When record not found.
     */
    public function edit($id = null)
    {
        $formule = $this->Formules->get($id, [
            'contain' => []
        ]);
63c3cb16   epallier   Nombreux petits b...
141
142
143
144
145
        if ($this->request->is([
            'patch',
            'post',
            'put'
        ])) {
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
146
147
148
            $formule = $this->Formules->patchEntity($formule, $this->request->data);
            if ($this->Formules->save($formule)) {
                $this->Flash->success(__('La formule a bien été édité.'));
63c3cb16   epallier   Nombreux petits b...
149
150
151
152
                return $this->redirect([
                    'action' => 'view',
                    $id
                ]);
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
153
154
155
156
157
            } else {
                $this->Flash->error(__('La formule n\'a pas pu être édité.'));
            }
        }
        
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
158
        $this->set(compact('formule'));
63c3cb16   epallier   Nombreux petits b...
159
160
161
        $this->set('_serialize', [
            'formule'
        ]);
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
162
163
164
165
166
    }

    /**
     * Delete method
     *
63c3cb16   epallier   Nombreux petits b...
167
168
     * @param string|null $id
     *            Formule id.
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
169
170
171
172
173
     * @return \Cake\Network\Response|null Redirects to index.
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.
     */
    public function delete($id = null)
    {
63c3cb16   epallier   Nombreux petits b...
174
175
176
177
        $this->request->allowMethod([
            'post',
            'delete'
        ]);
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
178
179
180
181
182
183
        $formule = $this->Formules->get($id);
        if ($this->Formules->delete($formule)) {
            $this->Flash->success(__('La formule a bien été supprimé.'));
        } else {
            $this->Flash->error(__('La formule n\'a pas pu être supprimé.'));
        }
63c3cb16   epallier   Nombreux petits b...
184
185
186
        return $this->redirect([
            'action' => 'index'
        ]);
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
187
    }
b3dceb2a   Alexis Proust   Ajout nouveaux fi...
188
}