Blame view

src/Controller/SousCategoriesController.php 6.58 KB
6c4edfa3   Alexandre   First Commit LabI...
1
2
3
4
<?php
namespace App\Controller;

use App\Controller\AppController;
04a6b875   Alexandre   Version: 2.4.2.0
5
use Cake\ORM\TableRegistry;
6c4edfa3   Alexandre   First Commit LabI...
6
7
8
9
10
11
12
13

/**
 * SousCategories Controller
 *
 * @property \App\Model\Table\SousCategoriesTable $SousCategories
 */
class SousCategoriesController 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
52
53
54
55
56
57

    protected function getArticle()
    {
        return "La";
    }

    /**
     * Give authorization for sous categories
     *
     * @param
     *            $user
     * @return boolean
     */
    public function isAuthorized($user)
    {
        $action = $this->getActionPassed();
        /*
         * $configuration = $this->confLabinvent;
         * $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role'];
         * $action = $this->request->getAttribute('params')['action'];
         *
         * // Super-Admin peut accéder à chaque action
         * if($role == 'Super Administrateur') return true;
         *
         * // Administration peut ajouter, supprimer ou modifier une sous categorie
         * if($role == 'Administration' && in_array($action,['add','delete','edit'])) return true;
         */
        
        // if (in_array($action, ['getByCategorie', 'view', 'index'])) {
        if (in_array($action, [
            'getByCategorie'
        ]))
            return true;
        
        /*
         * if($this->userHasRoleAtLeast('Administration Plus')) {
         * if($action != 'delete') return true;
         * }
         *
         * return false;
         */
        return $this->isAuthorizedCommons($user);
    }

6c4edfa3   Alexandre   First Commit LabI...
58
59
60
61
62
63
64
65
    /**
     * Index method
     *
     * @return \Cake\Network\Response|null
     */
    public function index()
    {
        $this->paginate = [
63c3cb16   epallier   Nombreux petits b...
66
67
68
            'contain' => [
                'Categories'
            ]
6c4edfa3   Alexandre   First Commit LabI...
69
70
        ];
        $sousCategories = $this->paginate($this->SousCategories);
63c3cb16   epallier   Nombreux petits b...
71
        
6c4edfa3   Alexandre   First Commit LabI...
72
        $this->set(compact('sousCategories'));
63c3cb16   epallier   Nombreux petits b...
73
74
75
        $this->set('_serialize', [
            'sousCategories'
        ]);
6c4edfa3   Alexandre   First Commit LabI...
76
77
78
79
80
    }

    /**
     * View method
     *
63c3cb16   epallier   Nombreux petits b...
81
82
     * @param string|null $id
     *            Sous Category id.
6c4edfa3   Alexandre   First Commit LabI...
83
84
85
86
87
88
     * @return \Cake\Network\Response|null
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.
     */
    public function view($id = null)
    {
        $sousCategory = $this->SousCategories->get($id, [
63c3cb16   epallier   Nombreux petits b...
89
90
91
92
93
94
95
            'contain' => [
                'Categories'
            ]
        ]);
        
        $materiels = TableRegistry::get('Materiels')->find('all')->where([
            'sous_categorie_id =' => $id
6c4edfa3   Alexandre   First Commit LabI...
96
        ]);
3e24b686   Alexandre   Version: 2.4.2.20
97
98
        $this->set('materiels', $materiels);
        
6c4edfa3   Alexandre   First Commit LabI...
99
        $this->set('sousCategory', $sousCategory);
63c3cb16   epallier   Nombreux petits b...
100
101
102
        $this->set('_serialize', [
            'sousCategory'
        ]);
6c4edfa3   Alexandre   First Commit LabI...
103
104
105
106
107
108
109
110
111
112
113
114
115
    }

    /**
     * Add method
     *
     * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.
     */
    public function add()
    {
        $sousCategory = $this->SousCategories->newEntity();
        if ($this->request->is('post')) {
            $sousCategory = $this->SousCategories->patchEntity($sousCategory, $this->request->data);
            if ($this->SousCategories->save($sousCategory)) {
d6960faf   Alexandre   Migration de plus...
116
                $this->Flash->success(__('La sous-catégorie a bien été ajouté'));
63c3cb16   epallier   Nombreux petits b...
117
118
119
120
                return $this->redirect([
                    'action' => 'view',
                    $sousCategory->id
                ]);
6c4edfa3   Alexandre   First Commit LabI...
121
            } else {
d6960faf   Alexandre   Migration de plus...
122
                $this->Flash->error(__('La sous-catégorie n\'as pas pu être ajouté.'));
6c4edfa3   Alexandre   First Commit LabI...
123
124
            }
        }
63c3cb16   epallier   Nombreux petits b...
125
126
127
128
        $categories = $this->SousCategories->Categories->find('list', [
            'keyField' => 'id',
            'valueField' => 'nom'
        ]);
19798ef9   Alexandre   Mode_install, maj...
129
        
6c4edfa3   Alexandre   First Commit LabI...
130
        $this->set(compact('sousCategory', 'categories'));
63c3cb16   epallier   Nombreux petits b...
131
132
133
        $this->set('_serialize', [
            'sousCategory'
        ]);
6c4edfa3   Alexandre   First Commit LabI...
134
135
136
137
138
    }

    /**
     * Edit method
     *
63c3cb16   epallier   Nombreux petits b...
139
140
     * @param string|null $id
     *            Sous Category id.
6c4edfa3   Alexandre   First Commit LabI...
141
142
143
144
145
146
147
148
     * @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)
    {
        $sousCategory = $this->SousCategories->get($id, [
            'contain' => []
        ]);
63c3cb16   epallier   Nombreux petits b...
149
150
151
152
153
        if ($this->request->is([
            'patch',
            'post',
            'put'
        ])) {
6c4edfa3   Alexandre   First Commit LabI...
154
155
            $sousCategory = $this->SousCategories->patchEntity($sousCategory, $this->request->data);
            if ($this->SousCategories->save($sousCategory)) {
d6960faf   Alexandre   Migration de plus...
156
                $this->Flash->success(__('La sous-catégorie a bien été édité.'));
63c3cb16   epallier   Nombreux petits b...
157
158
159
160
                return $this->redirect([
                    'action' => 'view',
                    $id
                ]);
6c4edfa3   Alexandre   First Commit LabI...
161
            } else {
d6960faf   Alexandre   Migration de plus...
162
                $this->Flash->error(__('La sous-catégorie n\'as pas pu être édité.'));
6c4edfa3   Alexandre   First Commit LabI...
163
164
            }
        }
63c3cb16   epallier   Nombreux petits b...
165
166
167
168
        $categories = $this->SousCategories->Categories->find('list', [
            'keyField' => 'id',
            'valueField' => 'nom'
        ]);
19798ef9   Alexandre   Mode_install, maj...
169
        
6c4edfa3   Alexandre   First Commit LabI...
170
        $this->set(compact('sousCategory', 'categories'));
63c3cb16   epallier   Nombreux petits b...
171
172
173
        $this->set('_serialize', [
            'sousCategory'
        ]);
6c4edfa3   Alexandre   First Commit LabI...
174
175
176
177
178
    }

    /**
     * Delete method
     *
63c3cb16   epallier   Nombreux petits b...
179
180
     * @param string|null $id
     *            Sous Category id.
6c4edfa3   Alexandre   First Commit LabI...
181
182
183
184
185
     * @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...
186
187
188
189
        $this->request->allowMethod([
            'post',
            'delete'
        ]);
6c4edfa3   Alexandre   First Commit LabI...
190
191
        $sousCategory = $this->SousCategories->get($id);
        if ($this->SousCategories->delete($sousCategory)) {
d6960faf   Alexandre   Migration de plus...
192
            $this->Flash->success(__('La sous-catégorie a bien été supprimé.'));
6c4edfa3   Alexandre   First Commit LabI...
193
        } else {
d6960faf   Alexandre   Migration de plus...
194
            $this->Flash->error(__('La sous-catégorie n\'as pas pu être supprimé.'));
6c4edfa3   Alexandre   First Commit LabI...
195
        }
63c3cb16   epallier   Nombreux petits b...
196
197
198
        return $this->redirect([
            'action' => 'index'
        ]);
6c4edfa3   Alexandre   First Commit LabI...
199
    }
63c3cb16   epallier   Nombreux petits b...
200
201
202

    public function getByCategorie()
    {
a0fefb3d   Thibaud Ajas   bugfixes suite au...
203
        if ($this->request->getData('s_categorie_id') !== null)
63c3cb16   epallier   Nombreux petits b...
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
            $categorie_id = $this->request->getData('s_categorie_id');
        else
            $categorie_id = $this->request->getData('categorie_id');
        $souscategories = $this->SousCategories->find('list', [
            'conditions' => [
                'SousCategories.categorie_id' => $categorie_id
            ],
            'order' => [
                'SousCategories.nom'
            ],
            'recursive' => - 1,
            'keyField' => 'id',
            'valueField' => 'nom'
        ]);
        $this->set('sousCategories', $souscategories);
        $this->viewBuilder()->layout = 'ajax';
758a84af   Alexandre   Version: 2.2.4.0
220
    }
6c4edfa3   Alexandre   First Commit LabI...
221
}