Proyectos de Subversion LeadersLinked - Services

Rev

Rev 351 | Rev 546 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 351 Rev 545
Línea 37... Línea 37...
37
    /**
37
    /**
38
     *
38
     *
39
     * @var \Laminas\Db\Adapter\AdapterInterface
39
     * @var \Laminas\Db\Adapter\AdapterInterface
40
     */
40
     */
41
    private $adapter;
41
    private $adapter;
42
    
42
 
43
    /**
43
    /**
44
     *
44
     *
45
     * @var \LeadersLinked\Cache\CacheInterface
45
     * @var \LeadersLinked\Cache\CacheInterface
46
     */
46
     */
47
    private $cache;
47
    private $cache;
48
    
48
 
49
    
49
 
50
    /**
50
    /**
51
     *
51
     *
52
     * @var \Laminas\Log\LoggerInterface
52
     * @var \Laminas\Log\LoggerInterface
53
     */
53
     */
54
    private $logger;
54
    private $logger;
55
    
55
 
56
    /**
56
    /**
57
     *
57
     *
58
     * @var array
58
     * @var array
59
     */
59
     */
60
    private $config;
60
    private $config;
61
    
61
 
62
    
62
 
63
    /**
63
    /**
64
     *
64
     *
65
     * @var \Laminas\Mvc\I18n\Translator
65
     * @var \Laminas\Mvc\I18n\Translator
66
     */
66
     */
67
    private $translator;
67
    private $translator;
68
    
68
 
69
    
69
 
70
    /**
70
    /**
71
     *
71
     *
72
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
72
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
73
     * @param \LeadersLinked\Cache\CacheInterface $cache
73
     * @param \LeadersLinked\Cache\CacheInterface $cache
74
     * @param \Laminas\Log\LoggerInterface LoggerInterface $logger
74
     * @param \Laminas\Log\LoggerInterface LoggerInterface $logger
Línea 81... Línea 81...
81
        $this->cache        = $cache;
81
        $this->cache        = $cache;
82
        $this->logger       = $logger;
82
        $this->logger       = $logger;
83
        $this->config       = $config;
83
        $this->config       = $config;
84
        $this->translator   = $translator;
84
        $this->translator   = $translator;
85
    }
85
    }
86
    
86
 
87
    /**
87
    /**
88
     * 
88
     * 
89
     * Generación del listado de perfiles
89
     * Generación del listado de perfiles
90
     * {@inheritDoc}
90
     * {@inheritDoc}
91
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
91
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
92
     */
92
     */
93
    public function indexAction()
93
    public function indexAction()
94
    {
94
    {
95
        $currentUserPlugin = $this->plugin('currentUserPlugin');
95
        $currentUserPlugin = $this->plugin('currentUserPlugin');
96
        $currentUser = $currentUserPlugin->getUser();
96
        $currentUser = $currentUserPlugin->getUser();
97
        
97
 
98
        $request = $this->getRequest();
98
        $request = $this->getRequest();
99
        if($request->isGet()) {
99
        if ($request->isGet()) {
100
            
-
 
101
            
-
 
102
                $search = Functions::sanitizeFilterString($this->params()->fromQuery('search', ''));
-
 
103
                
-
 
104
                $acl = $this->getEvent()->getViewModel()->getVariable('acl');
-
 
105
                $allowView = $acl->isAllowed($currentUser->usertype_id, 'group/view');
-
 
106
                $allowEdit = $acl->isAllowed($currentUser->usertype_id, 'group/my-groups/edit');
-
 
107
                $allowDelete = $acl->isAllowed($currentUser->usertype_id, 'group/my-groups/delete');
-
 
108
                
-
 
109
                
-
 
110
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
111
                
-
 
112
                $select = $queryMapper->getSql()->select(GroupMapper::_TABLE);
-
 
113
                $select->columns(['id', 'uuid', 'name', 'privacy',  'image', 'status']);
-
 
114
                $select->where->equalTo('status', Group::STATUS_ACTIVE);
-
 
115
                $select->where->equalTo('network_id', $currentUser->network_id);
-
 
116
                
-
 
117
                if($search) {
-
 
118
                    $select->where->like('name', '%' . $search . '%');
-
 
119
                }
-
 
120
                $select->where->equalTo('user_id', $currentUser->id);
-
 
121
                $select->order('name ASC');
-
 
122
                
-
 
123
                $records = $queryMapper->fetchAll($select);
-
 
124
                
-
 
125
                
-
 
126
                $values = [
-
 
127
                    Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
-
 
128
                    Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
-
 
129
                ];
-
 
Línea 130... Línea -...
130
 
-
 
131
                $storage = Storage::getInstance($this->config, $this->adapter);
-
 
132
                
-
 
133
                $items = [];
-
 
134
                foreach($records as $record)
-
 
135
                {
-
 
136
                    
-
 
137
                    $item = [
-
 
138
                        'name' => $record['name'],
-
 
139
                        'privacy' => $values[$record['privacy']],
-
 
140
                        'image' => $storage->getGroupImageForCodeAndFilename($record['uuid'],  $record['image']),
-
 
141
                        'link_view' => $allowView ? $this->url()->fromRoute('group/view', ['id' => $record['uuid'] ])  : '',
-
 
142
                        'link_edit' => $allowEdit ? $this->url()->fromRoute('group/my-groups/edit', ['id' => $record['uuid'] ])  : '',
-
 
143
                        'link_delete' => $allowDelete ? $this->url()->fromRoute('group/my-groups/delete', ['id' => $record['uuid'] ]) : '',
-
 
144
                        
-
 
145
                    ];
-
 
146
                    
-
 
147
                    array_push($items, $item);
-
 
Línea -... Línea 100...
-
 
100
 
148
                }
101
 
-
 
102
            $search = Functions::sanitizeFilterString($this->params()->fromQuery('search', ''));
-
 
103
 
-
 
104
            $acl = $this->getEvent()->getViewModel()->getVariable('acl');
-
 
105
            $allowView = $acl->isAllowed($currentUser->usertype_id, 'group/view');
-
 
106
            $allowEdit = $acl->isAllowed($currentUser->usertype_id, 'group/my-groups/edit');
-
 
107
            $allowDelete = $acl->isAllowed($currentUser->usertype_id, 'group/my-groups/delete');
-
 
108
 
-
 
109
 
-
 
110
            $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
111
 
-
 
112
            $select = $queryMapper->getSql()->select(GroupMapper::_TABLE);
-
 
113
            $select->columns(['id', 'uuid', 'name', 'privacy',  'image', 'status']);
-
 
114
            $select->where->equalTo('status', Group::STATUS_ACTIVE);
-
 
115
            $select->where->equalTo('network_id', $currentUser->network_id);
-
 
116
 
-
 
117
            if ($search) {
-
 
118
                $select->where->like('name', '%' . $search . '%');
-
 
119
            }
-
 
120
            $select->where->equalTo('user_id', $currentUser->id);
-
 
121
            $select->order('name ASC');
-
 
122
 
149
 
123
            $records = $queryMapper->fetchAll($select);
150
                
124
 
-
 
125
 
-
 
126
            $values = [
-
 
127
                Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
-
 
128
                Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
-
 
129
            ];
-
 
130
 
-
 
131
            $storage = Storage::getInstance($this->config, $this->adapter);
-
 
132
 
-
 
133
            $items = [];
151
                
134
            foreach ($records as $record) {
152
                $response = [
135
 
-
 
136
                $item = [
-
 
137
                    'name' => $record['name'],
-
 
138
                    'privacy' => $values[$record['privacy']],
-
 
139
                    'image' => $storage->getGroupImageForCodeAndFilename($record['uuid'],  $record['image']),
-
 
140
                    'link_view' => $allowView ? $this->url()->fromRoute('group/view', ['id' => $record['uuid']])  : '',
-
 
141
                    'link_edit' => $allowEdit ? $this->url()->fromRoute('group/my-groups/edit', ['id' => $record['uuid']])  : '',
153
                    'success' => true,
142
                    'link_delete' => $allowDelete ? $this->url()->fromRoute('group/my-groups/delete', ['id' => $record['uuid']]) : '',
154
                    'data' => $items
143
 
155
                ];
144
                ];
-
 
145
 
-
 
146
                array_push($items, $item);
156
                
147
            }
157
                return new JsonModel($response);
148
 
-
 
149
 
-
 
150
 
-
 
151
            $response = [
-
 
152
                'success' => true,
158
                
153
                'data' => $items
-
 
154
            ];
159
            
155
 
160
            
156
            return new JsonModel($response);
161
        } else {
157
        } else {
162
            return new JsonModel([
158
            return new JsonModel([
163
                'success' => false,
159
                'success' => false,
164
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
160
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
165
            ]);
161
            ]);
166
        }
162
        }
167
    }
163
    }
168
    
164
 
169
    /**
165
    /**
170
     * 
166
     * 
171
     * Agregar un nuevo perfil
167
     * Agregar un nuevo perfil
172
     * @return \Laminas\View\Model\JsonModel
168
     * @return \Laminas\View\Model\JsonModel
173
     */
169
     */
174
    public function addAction()
170
    public function addAction()
175
    {
171
    {
176
        $request = $this->getRequest();
172
        $request = $this->getRequest();
177
        
173
 
178
        
174
 
179
        if($request->isPost()) {
175
        if ($request->isPost()) {
180
            $form = new  CreateForm($this->adapter);
176
            $form = new  CreateForm($this->adapter);
181
            $dataPost = $request->getPost()->toArray();
177
            $dataPost = $request->getPost()->toArray();
182
            
178
 
183
            $form->setData($dataPost);
179
            $form->setData($dataPost);
184
            
180
 
185
            if($form->isValid()) {
181
            if ($form->isValid()) {
186
                
182
 
187
                
183
 
188
                $currentUserPlugin = $this->plugin('currentUserPlugin');
184
                $currentUserPlugin = $this->plugin('currentUserPlugin');
189
                $currentUser = $currentUserPlugin->getUser();
185
                $currentUser = $currentUserPlugin->getUser();
Línea 190... Línea 186...
190
                
186
 
191
                $dataPost = (array) $form->getData();
187
                $dataPost = (array) $form->getData();
192
 
188
 
193
                $industryMapper = IndustryMapper::getInstance($this->adapter);
189
                $industryMapper = IndustryMapper::getInstance($this->adapter);
194
                $industry = $industryMapper->fetchOneByUuid($dataPost['industry_id']);
190
                $industry = $industryMapper->fetchOneByUuid($dataPost['industry_id']);
195
                
191
 
196
                $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
192
                $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
197
                $groupType = $groupTypeMapper->fetchOneByUuid($dataPost['type_id']);
193
                $groupType = $groupTypeMapper->fetchOneByUuid($dataPost['type_id']);
198
                
194
 
199
                
195
 
200
                $group = new Group();
196
                $group = new Group();
201
                $group->network_id = $currentUser->network_id;
197
                $group->network_id = $currentUser->network_id;
202
                $group->name = $dataPost['name'];
198
                $group->name = $dataPost['name'];
203
                $group->industry_id = $industry->id;
199
                $group->industry_id = $industry->id;
204
                $group->type_id = $groupType->id;
200
                $group->type_id = $groupType->id;
205
                $group->user_id = $currentUser->id;
201
                $group->user_id = $currentUser->id;
206
                
202
 
207
                $groupMapper = GroupMapper::getInstance($this->adapter);
203
                $groupMapper = GroupMapper::getInstance($this->adapter);
208
                $result = $groupMapper->insert($group );
204
                $result = $groupMapper->insert($group);
209
                
205
 
210
                if($result) {
206
                if ($result) {
211
                    
207
 
212
                    $groupMember = new GroupMember();
208
                    $groupMember = new GroupMember();
213
                    $groupMember->group_id = $group->id;
209
                    $groupMember->group_id = $group->id;
214
                    $groupMember->user_id = $group->user_id;
210
                    $groupMember->user_id = $group->user_id;
215
                    $groupMember->status = GroupMember::STATUS_ACCEPTED;
211
                    $groupMember->status = GroupMember::STATUS_ACCEPTED;
216
                    
212
 
217
                    $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
213
                    $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
218
                    $groupMemberMapper->insert($groupMember);
214
                    $groupMemberMapper->insert($groupMember);
219
                    
215
 
220
                    
216
 
221
                    $this->logger->info('Se agrego el grupo : ' . $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
217
                    $this->logger->info('Se agrego el grupo : ' . $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
222
                    
218
 
223
                    $data = [
219
                    $data = [
224
                        'success'   => true,
220
                        'success'   => true,
225
                        'data'   => 'LABEL_RECORD_ADDED'
221
                        'data'   => 'LABEL_RECORD_ADDED'
226
                    ];
222
                    ];
227
                } else {
223
                } else {
228
                    $data = [
224
                    $data = [
229
                        'success'   => false,
-
 
230
                        'data'      => $group->getError()
225
                        'success'   => false,
231
                    ];
226
                        'data'      => $group->getError()
232
                    
227
                    ];
233
                }
-
 
234
                
228
                }
235
                return new JsonModel($data);
229
 
236
                
230
                return new JsonModel($data);
237
            } else {
231
            } else {
238
                $messages = [];
-
 
239
                $form_messages = (array) $form->getMessages();
232
                $messages = [];
240
                foreach($form_messages  as $fieldname => $field_messages)
233
                $form_messages = (array) $form->getMessages();
241
                {
234
                foreach ($form_messages  as $fieldname => $field_messages) {
242
                    
235
 
243
                    $messages[$fieldname] = array_values($field_messages);
236
                    $messages[$fieldname] = array_values($field_messages);
244
                }
237
                }
245
                
238
 
246
                return new JsonModel([
239
                return new JsonModel([
247
                    'success'   => false,
240
                    'success'   => false,
248
                    'data'   => $messages
-
 
249
                ]);
241
                    'data'   => $messages
250
            }
242
                ]);
251
            
243
            }
252
        } else {
244
        } else {
253
            $data = [
245
            $data = [
254
                'success' => false,
246
                'success' => false,
255
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
247
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
256
            ];
248
            ];
257
            
249
 
258
            return new JsonModel($data);
250
            return new JsonModel($data);
259
        }
251
        }
260
        
252
 
261
        return new JsonModel($data);
253
        return new JsonModel($data);
262
    }
254
    }
263
    
255
 
264
    /**
256
    /**
265
     * 
257
     * 
266
     * Borrar un perfil excepto el público
258
     * Borrar un perfil excepto el público
267
     * @return \Laminas\View\Model\JsonModel
259
     * @return \Laminas\View\Model\JsonModel
268
     */
260
     */
269
    public function deleteAction()
261
    public function deleteAction()
270
    {
262
    {
271
        $currentUserPlugin = $this->plugin('currentUserPlugin');
263
        $currentUserPlugin = $this->plugin('currentUserPlugin');
272
        $currentUser = $currentUserPlugin->getUser();
264
        $currentUser = $currentUserPlugin->getUser();
273
        
265
 
274
        $request = $this->getRequest();
266
        $request = $this->getRequest();
275
        $id = $this->params()->fromRoute('id');
267
        $id = $this->params()->fromRoute('id');
276
        
268
 
277
        if(!$id) {
269
        if (!$id) {
278
            $data = [
270
            $data = [
279
                'success'   => false,
271
                'success'   => false,
280
                'data'   => 'ERROR_INVALID_PARAMETER'
272
                'data'   => 'ERROR_INVALID_PARAMETER'
281
            ];
273
            ];
282
            
274
 
283
            return new JsonModel($data);
275
            return new JsonModel($data);
284
        }
276
        }
285
        
277
 
286
        
278
 
287
        
279
 
288
        $groupMapper =GroupMapper::getInstance($this->adapter);
280
        $groupMapper = GroupMapper::getInstance($this->adapter);
289
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
281
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
290
        if(!$group) {
282
        if (!$group) {
291
            $data = [
283
            $data = [
292
                'success'   => false,
284
                'success'   => false,
293
                'data'   => 'ERROR_RECORD_NOT_FOUND'
285
                'data'   => 'ERROR_RECORD_NOT_FOUND'
294
            ];
286
            ];
295
            
287
 
296
            return new JsonModel($data);
288
            return new JsonModel($data);
297
        }
289
        }
298
        
290
 
299
       
291
 
300
        if($currentUser->id != $group->user_id) {
292
        if ($currentUser->id != $group->user_id) {
301
            $response = [
293
            $response = [
302
                'success' => false,
294
                'success' => false,
303
                'data' => 'ERROR_UNAUTHORIZED'
295
                'data' => 'ERROR_UNAUTHORIZED'
304
            ];
296
            ];
Línea 305... Línea 297...
305
            
297
 
306
            return new JsonModel($response);
298
            return new JsonModel($response);
307
        }
299
        }
308
 
300
 
309
        
301
 
310
        if($request->isPost()) {
302
        if ($request->isPost()) {
311
            $result = $groupMapper->delete($group);
303
            $result = $groupMapper->delete($group);
312
            if($result) {
304
            if ($result) {
313
                $this->logger->info('Se borro el grupo : ' .  $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
305
                $this->logger->info('Se borro el grupo : ' .  $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
314
                
306
 
315
                $data = [
307
                $data = [
316
                    'success' => true,
308
                    'success' => true,
317
                    'data' => 'LABEL_RECORD_DELETED'
309
                    'data' => 'LABEL_RECORD_DELETED'
318
                ];
310
                ];
319
            } else {
311
            } else {
320
                
312
 
321
                $data = [
313
                $data = [
322
                    'success'   => false,
314
                    'success'   => false,
323
                    'data'      => $groupMapper->getError()
315
                    'data'      => $groupMapper->getError()
324
                ];
-
 
325
                
316
                ];
326
                return new JsonModel($data);
317
 
327
            }
318
                return new JsonModel($data);
328
            
319
            }
329
        } else {
320
        } else {
330
            $data = [
321
            $data = [
331
                'success' => false,
322
                'success' => false,
332
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
323
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
333
            ];
324
            ];
334
            
325
 
335
            return new JsonModel($data);
326
            return new JsonModel($data);
336
        }
327
        }
337
        
328
 
338
        return new JsonModel($data);
329
        return new JsonModel($data);
339
    }
330
    }
340
    
331
 
341
    /**
332
    /**
342
     * Presenta el perfil con las opciónes de edición de cada sección
333
     * Presenta el perfil con las opciónes de edición de cada sección
343
     * @return \Laminas\Http\Response|\Laminas\View\Model\ViewModel|\Laminas\View\Model\JsonModel
334
     * @return \Laminas\Http\Response|\Laminas\View\Model\ViewModel|\Laminas\View\Model\JsonModel
344
     */
335
     */
345
    public function editAction()
336
    public function editAction()
346
    {
337
    {
347
        $currentUserPlugin = $this->plugin('currentUserPlugin');
338
        $currentUserPlugin = $this->plugin('currentUserPlugin');
348
        $currentUser = $currentUserPlugin->getUser();
339
        $currentUser = $currentUserPlugin->getUser();
349
        
340
 
350
        $flashMessenger = $this->plugin('FlashMessenger');
341
        $flashMessenger = $this->plugin('FlashMessenger');
351
        
342
 
352
        
343
 
353
        $request = $this->getRequest();
344
        $request = $this->getRequest();
354
        $id = $this->params()->fromRoute('id');
345
        $id = $this->params()->fromRoute('id');
355
        
346
 
356
        
347
 
357
        if(!$id) {
-
 
358
            $flashMessenger->addErrorMessage('ERROR_INVALID_PARAMETER');
348
        if (!$id) {
359
            return $this->redirect()->toRoute('dashboard');
-
 
360
        }
349
            $flashMessenger->addErrorMessage('ERROR_INVALID_PARAMETER');
361
        
350
            return $this->redirect()->toRoute('dashboard');
362
        
351
        }
363
        
352
 
364
        $groupMapper =GroupMapper::getInstance($this->adapter);
353
        $groupMapper = GroupMapper::getInstance($this->adapter);
365
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
354
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
366
        if(!$group) {
-
 
367
            $flashMessenger->addErrorMessage('ERROR_RECORD_NOT_FOUND');
355
        if (!$group) {
368
            return $this->redirect()->toRoute('dashboard');
356
            $flashMessenger->addErrorMessage('ERROR_RECORD_NOT_FOUND');
369
        }
357
            return $this->redirect()->toRoute('dashboard');
370
        
358
        }
371
    
359
 
372
        if($currentUser->id != $group->user_id) {
-
 
373
            $flashMessenger->addErrorMessage('ERROR_UNAUTHORIZED');
-
 
374
            return $this->redirect()->toRoute('dashboard');
-
 
375
        }
-
 
376
        
-
 
377
        
-
 
378
        if($request->isGet()) {
-
 
379
            
-
 
380
            
-
 
381
            
-
 
382
                $accessibilities = [
-
 
383
                    Group::ACCESSIBILITY_AUTO_JOIN => 'LABEL_AUTO_JOIN',
-
 
384
                    Group::ACCESSIBILITY_REQUEST_TO_JOIN => 'LABEL_REQUEST_TO_JOIN',
-
 
385
                    Group::ACCESSIBILITY_ADMIN_WILL_ADD => 'LABEL_ADMIN_WILL_ADD',
-
 
386
                ];
-
 
387
                
-
 
388
                $accessibility = $accessibilities[$group->accessibility];
-
 
389
                
-
 
390
                $privacies = [
-
 
391
                    Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
-
 
392
                    Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
-
 
393
                ];
-
 
394
                
-
 
395
                $privacy = $privacies[$group->privacy];
-
 
396
                
-
 
397
                $industryMapper = IndustryMapper::getInstance($this->adapter);
-
 
398
                $record = $industryMapper->fetchOne($group->industry_id);
-
 
399
                
-
 
400
                $industry = $record->name;
-
 
401
                
-
 
402
                
-
 
403
                $industries = [];
-
 
404
                $records = $industryMapper->fetchAllActive();
-
 
405
                foreach($records as $record)
-
 
406
                {
-
 
407
                    $industries[$record->uuid] = $record->name;
-
 
408
                }
-
 
409
                
-
 
410
                
-
 
411
                $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
-
 
412
                $record = $groupTypeMapper->fetchOne($group->type_id);
-
 
413
                
-
 
414
                $group_type = $record->name;
-
 
415
                
-
 
416
                $types = [];
-
 
417
                $records =  $groupTypeMapper->fetchAllActive();
-
 
418
                foreach($records as $record)
-
 
419
                {
-
 
420
                    $types[$record->uuid] = $record->name;
-
 
421
                }
-
 
422
                
-
 
423
                
-
 
424
                
-
 
425
                $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
-
 
426
                $total_ = $groupMemberMapper->fetchTotalByGroupId($group->id);
-
 
427
                
-
 
428
                $image_size_cover = $this->config['leaderslinked.image_sizes.group_cover_upload'];
-
 
Línea -... Línea 360...
-
 
360
        if ($currentUser->id != $group->user_id) {
-
 
361
            $flashMessenger->addErrorMessage('ERROR_UNAUTHORIZED');
-
 
362
            return $this->redirect()->toRoute('dashboard');
-
 
363
        }
-
 
364
 
-
 
365
        if ($request->isGet()) {
-
 
366
            $accessibilities = [
-
 
367
                Group::ACCESSIBILITY_AUTO_JOIN => 'LABEL_AUTO_JOIN',
-
 
368
                Group::ACCESSIBILITY_REQUEST_TO_JOIN => 'LABEL_REQUEST_TO_JOIN',
-
 
369
                Group::ACCESSIBILITY_ADMIN_WILL_ADD => 'LABEL_ADMIN_WILL_ADD',
-
 
370
            ];
-
 
371
 
-
 
372
            $accessibility = $accessibilities[$group->accessibility];
-
 
373
 
-
 
374
            $privacies = [
-
 
375
                Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
-
 
376
                Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
-
 
377
            ];
-
 
378
 
-
 
379
            $privacy = $privacies[$group->privacy];
-
 
380
 
-
 
381
            $industryMapper = IndustryMapper::getInstance($this->adapter);
-
 
382
            $record = $industryMapper->fetchOne($group->industry_id);
-
 
383
 
-
 
384
            $industry = $record->name;
-
 
385
 
-
 
386
 
-
 
387
            $industries = [];
-
 
388
            $records = $industryMapper->fetchAllActive();
-
 
389
            foreach ($records as $record) {
-
 
390
                $industries[$record->uuid] = $record->name;
-
 
391
            }
-
 
392
 
-
 
393
 
-
 
394
            $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
-
 
395
            $record = $groupTypeMapper->fetchOne($group->type_id);
-
 
396
            $recordUuid = $record->uuid;
-
 
397
 
-
 
398
            $group_type = $record->name;
-
 
399
 
-
 
400
            $types = [];
-
 
401
            $records =  $groupTypeMapper->fetchAllActive();
-
 
402
 
-
 
403
            foreach ($records as $record) {
-
 
404
                $types[$record->uuid] = $record->name;
-
 
405
            }
-
 
406
 
-
 
407
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
-
 
408
            $total_ = $groupMemberMapper->fetchTotalByGroupId($group->id);
-
 
409
 
-
 
410
            $image_size_cover = $this->config['leaderslinked.image_sizes.group_cover_upload'];
429
                $image_size_profile = $this->config['leaderslinked.image_sizes.group_image_upload'];
411
            $image_size_profile = $this->config['leaderslinked.image_sizes.group_image_upload'];
430
                
412
 
431
                $storage = Storage::getInstance($this->config, $this->adapter);
413
            $storage = Storage::getInstance($this->config, $this->adapter);
432
                
414
 
433
 
415
 
434
                return new JsonModel([
416
            return new JsonModel([
435
                    'total_'         => $total_,
417
                'total_'         => $total_,
436
                    'accessibility'         => $accessibility ,
418
                'accessibility'         => $accessibility,
437
                    'privacy'               => $privacy,
419
                'privacy'               => $privacy,
438
                    'industry'              => $industry,
420
                'industry'              => $industry,
439
                    'group_id'              => $group->id,
421
                'group_id'              => $group->id,
440
                    'group_type'            => $group_type,
422
                'group_type'            => $group_type,
441
                    'group_uuid'            => $group->uuid,
423
                'group_uuid'            => $group->uuid,
442
                    'name'                  => trim($group->name),
424
                'name'                  => trim($group->name),
443
                    'image'                 => $storage->getGroupImage($group),
425
                'image'                 => $storage->getGroupImage($group),
444
                    'cover'                 => $storage->getGroupCover($group),
426
                'cover'                 => $storage->getGroupCover($group),
445
                    'overview'              => $group->description,
427
                'overview'              => $group->description,
446
                    'website'               => $group->website,
428
                'website'               => $group->website,
447
                    'image_size_cover'      => $image_size_cover,
429
                'image_size_cover'      => $image_size_cover,
448
                    'image_size_profile'    => $image_size_profile,
430
                'image_size_profile'    => $image_size_profile,
449
                    
431
 
450
                    
432
 
451
                    'industries'            => $industries,
433
                'industries'            => $industries,
452
                    'types'                 => $types,
434
                'types'                 => $types,
453
                    'privacies'             => $privacies,
435
                'privacies'             => $privacies,
454
                    'accessibilities'       => $accessibilities,
436
                'accessibilities'       => $accessibilities,
455
                    
437
 
456
                    
438
 
457
                    'link_extended'         => $this->url()->fromRoute('group/my-groups/extended', ['id' => $record['uuid'] ]),
439
                'link_extended'         => $this->url()->fromRoute('group/my-groups/extended', ['id' => $recordUuid]),
458
                    'link_image'            => $this->url()->fromRoute('group/my-groups/image', ['id' => $record['uuid'] ]),
440
                'link_image'            => $this->url()->fromRoute('group/my-groups/image', ['id' => $recordUuid]),
459
                    'link_cover'            => $this->url()->fromRoute('group/my-groups/cover', ['id' => $record['uuid'] ]),
441
                'link_cover'            => $this->url()->fromRoute('group/my-groups/cover', ['id' => $recordUuid]),
460
                    'link_privacy'          => $this->url()->fromRoute('group/my-groups/privacy', ['id' => $record['uuid'] ]),
442
                'link_privacy'          => $this->url()->fromRoute('group/my-groups/privacy', ['id' => $recordUuid]),
461
                    'link_website'          => $this->url()->fromRoute('group/my-groups/website', ['id' => $record['uuid'] ]),
443
                'link_website'          => $this->url()->fromRoute('group/my-groups/website', ['id' => $recordUuid]),
462
                    'link_industry'         => $this->url()->fromRoute('group/my-groups/industry', ['id' => $record['uuid'] ]),
444
                'link_industry'         => $this->url()->fromRoute('group/my-groups/industry', ['id' => $recordUuid]),
463
                    'link_accessibility'    => $this->url()->fromRoute('group/my-groups/accessibility', ['id' => $record['uuid'] ]),
445
                'link_accessibility'    => $this->url()->fromRoute('group/my-groups/accessibility', ['id' => $recordUuid]),
464
                    'link_type'             => $this->url()->fromRoute('group/my-groups/type', ['id' => $record['uuid'] ]),
446
                'link_type'             => $this->url()->fromRoute('group/my-groups/type', ['id' => $recordUuid]),
465
                    'link_status'           => $this->url()->fromRoute('group/my-groups/status', ['id' => $record['uuid'] ]),
-
 
466
              //      'link_members'          => $this->url()->fromRoute('group/my-groups/members', ['id' => $record['uuid'] ]),
-
 
467
                    
447
                'link_status'           => $this->url()->fromRoute('group/my-groups/status', ['id' => $recordUuid]),
468
                  
448
                //      'link_members'          => $this->url()->fromRoute('group/my-groups/members', ['id' => $record['uuid'] ]),
469
                ]);
449
 
470
          
450
 
471
            
451
            ]);
472
        } else {
452
        } else {
473
            $data = [
453
            $data = [
474
                'success' => false,
454
                'success' => false,
475
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
455
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
476
            ];
456
            ];
477
            
457
 
478
            return new JsonModel($data);
458
            return new JsonModel($data);
479
        }
459
        }
480
        
460
 
481
        return new JsonModel($data);
461
        return new JsonModel($data);
482
    }
462
    }
483
    
463
 
484
    
464
 
485
    /**
465
    /**
486
     * Actualización de la descripción y cualquier otro campo extendido del perfil a futuro
466
     * Actualización de la descripción y cualquier otro campo extendido del perfil a futuro
487
     * @return \Laminas\View\Model\JsonModel
467
     * @return \Laminas\View\Model\JsonModel
488
     */
468
     */
489
    public function extendedAction()
469
    public function extendedAction()
490
    {
470
    {
491
        $currentUserPlugin = $this->plugin('currentUserPlugin');
471
        $currentUserPlugin = $this->plugin('currentUserPlugin');
492
        $currentUser = $currentUserPlugin->getUser();
472
        $currentUser = $currentUserPlugin->getUser();
493
        
473
 
494
        $user_group_id = $this->params()->fromRoute('id');
474
        $user_group_id = $this->params()->fromRoute('id');
495
        $groupMapper =GroupMapper::getInstance($this->adapter);
475
        $groupMapper = GroupMapper::getInstance($this->adapter);
496
        
476
 
497
        $group = $groupMapper->fetchOneByUuidAndNetworkId($user_group_id, $currentUser->network_id);
477
        $group = $groupMapper->fetchOneByUuidAndNetworkId($user_group_id, $currentUser->network_id);
498
        if(!$group) {
478
        if (!$group) {
499
            $response = [
479
            $response = [
500
                'success' => false,
-
 
501
                'data' => 'ERROR_INVALID_PARAMETER'
480
                'success' => false,
502
            ];
-
 
Línea -... Línea 481...
-
 
481
                'data' => 'ERROR_INVALID_PARAMETER'
503
            
482
            ];
504
            return new JsonModel($response);
483
 
505
            
484
            return new JsonModel($response);
506
        }
485
        }
507
        
486
 
508
 
487
 
509
        if($currentUser->id != $group->user_id) {
488
        if ($currentUser->id != $group->user_id) {
510
            $response = [
489
            $response = [
511
                'success' => false,
490
                'success' => false,
512
                'data' => 'ERROR_UNAUTHORIZED'
491
                'data' => 'ERROR_UNAUTHORIZED'
513
            ];
492
            ];
514
            
493
 
515
            return new JsonModel($response);
494
            return new JsonModel($response);
516
        }
495
        }
517
        
496
 
518
        
497
 
519
        
498
 
520
        $request = $this->getRequest();
499
        $request = $this->getRequest();
521
        if($request->isGet()) {
500
        if ($request->isGet()) {
522
            $data = [
-
 
523
                'success' => true,
-
 
524
                'data' => $group->description,
501
            $data = [
525
            ];
502
                'success' => true,
526
            
503
                'data' => $group->description,
527
            return new JsonModel($data);
504
            ];
528
            
505
 
529
            
506
            return new JsonModel($data);
530
        } else if($request->isPost()) {
507
        } else if ($request->isPost()) {
531
            
508
 
532
            
509
 
533
            $form = new ExtendedForm();
510
            $form = new ExtendedForm();
534
            $dataPost = $request->getPost()->toArray();
511
            $dataPost = $request->getPost()->toArray();
535
            
512
 
536
            $form->setData($dataPost);
513
            $form->setData($dataPost);
537
            
514
 
538
            if($form->isValid()) {
515
            if ($form->isValid()) {
539
                $dataPost = (array) $form->getData();
516
                $dataPost = (array) $form->getData();
540
                
517
 
541
                $hydrator = new ObjectPropertyHydrator();
518
                $hydrator = new ObjectPropertyHydrator();
542
                $hydrator->hydrate($dataPost, $group);
519
                $hydrator->hydrate($dataPost, $group);
543
                
520
 
544
                $groupMapper->updateExtended($group);
521
                $groupMapper->updateExtended($group);
545
                
522
 
546
                $this->logger->info('Se actualizo las descripción del grupo : '.  $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
-
 
547
                
523
                $this->logger->info('Se actualizo las descripción del grupo : ' .  $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
548
                return new JsonModel([
524
 
549
                    'success'   => true,
525
                return new JsonModel([
550
                    'data' => $group->description,
526
                    'success'   => true,
551
                ]);
-
 
552
                
527
                    'data' => $group->description,
553
            } else {
528
                ]);
554
                $messages = [];
529
            } else {
555
                $form_messages = (array) $form->getMessages();
530
                $messages = [];
556
                foreach($form_messages  as $fieldname => $field_messages)
531
                $form_messages = (array) $form->getMessages();
557
                {
532
                foreach ($form_messages  as $fieldname => $field_messages) {
558
                    $messages[$fieldname] = array_values($field_messages);
533
                    $messages[$fieldname] = array_values($field_messages);
559
                }
534
                }
560
                
535
 
561
                return new JsonModel([
536
                return new JsonModel([
562
                    'success'   => false,
537
                    'success'   => false,
563
                    'data'   => $messages
538
                    'data'   => $messages
564
                ]);
539
                ]);
565
            }
540
            }
566
        }
541
        }
567
        
542
 
568
        
543
 
569
        $data = [
544
        $data = [
570
            'success' => false,
545
            'success' => false,
571
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
546
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
572
        ];
547
        ];
Línea 573... Línea 548...
573
        
548
 
574
        
549
 
575
        return new JsonModel($data);
550
        return new JsonModel($data);
576
    }
551
    }
577
    
552
 
578
    
553
 
579
 
554
 
580
    public function imageAction()
555
    public function imageAction()
581
    {
556
    {
582
        $currentUserPlugin = $this->plugin('currentUserPlugin');
557
        $currentUserPlugin = $this->plugin('currentUserPlugin');
583
        $currentUser = $currentUserPlugin->getUser();
558
        $currentUser = $currentUserPlugin->getUser();
584
        
559
 
585
        $user_group_id    = $this->params()->fromRoute('id');
560
        $user_group_id    = $this->params()->fromRoute('id');
586
        $operation          = $this->params()->fromRoute('operation');
561
        $operation          = $this->params()->fromRoute('operation');
587
        
562
 
588
        $groupMapper =GroupMapper::getInstance($this->adapter);
563
        $groupMapper = GroupMapper::getInstance($this->adapter);
589
        
564
 
590
        $group = $groupMapper->fetchOneByUuidAndNetworkId($user_group_id, $currentUser->network_id);
565
        $group = $groupMapper->fetchOneByUuidAndNetworkId($user_group_id, $currentUser->network_id);
591
        if(!$group) {
-
 
592
            $response = [
566
        if (!$group) {
593
                'success' => false,
567
            $response = [
594
                'data' => 'ERROR_INVALID_PARAMETER'
568
                'success' => false,
595
            ];
569
                'data' => 'ERROR_INVALID_PARAMETER'
596
            
570
            ];
597
            return new JsonModel($response);
571
 
598
            
572
            return new JsonModel($response);
599
        }
573
        }
600
        
574
 
601
        
575
 
602
        if($currentUser->id != $group->user_id) {
576
        if ($currentUser->id != $group->user_id) {
603
            $response = [
577
            $response = [
604
                'success' => false,
578
                'success' => false,
605
                'data' => 'ERROR_UNAUTHORIZED'
579
                'data' => 'ERROR_UNAUTHORIZED'
606
            ];
580
            ];
607
            
581
 
608
            return new JsonModel($response);
582
            return new JsonModel($response);
609
        }
583
        }
610
        
584
 
611
        $storage = Storage::getInstance($this->config, $this->adapter);
585
        $storage = Storage::getInstance($this->config, $this->adapter);
612
        
586
 
613
        $request = $this->getRequest();
587
        $request = $this->getRequest();
614
        if($request->isPost()) {
588
        if ($request->isPost()) {
615
            
589
 
616
            
590
 
617
            $target_path = $storage->getPathGroup();
591
            $target_path = $storage->getPathGroup();
618
            
592
 
619
            if($operation == 'delete') {
593
            if ($operation == 'delete') {
620
                $this->logger->info('Se borro el image del grupo : ' .  $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
594
                $this->logger->info('Se borro el image del grupo : ' .  $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
621
                if($group->image) {
595
                if ($group->image) {
622
                    
596
 
623
                    if(!$storage->deleteFile($target_path, $group->uuid, $group->image)) {
597
                    if (!$storage->deleteFile($target_path, $group->uuid, $group->image)) {
624
                        return new JsonModel([
598
                        return new JsonModel([
625
                            'success'   => false,
599
                            'success'   => false,
626
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
600
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
627
                        ]);
601
                        ]);
628
                    }
602
                    }
629
                }
603
                }
630
                
604
 
631
                
605
 
632
                $group->image = '';
-
 
633
                if(!$groupMapper->updateImage($group)) {
606
                $group->image = '';
634
                    return new JsonModel([
607
                if (!$groupMapper->updateImage($group)) {
635
                        'success'   => false,
608
                    return new JsonModel([
636
                        'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
609
                        'success'   => false,
637
                    ]);
610
                        'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
638
                }
611
                    ]);
639
                
612
                }
640
            } else {
613
            } else {
641
                $form = new ImageForm($this->config);
614
                $form = new ImageForm($this->config);
642
                $data 	= array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
615
                $data     = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
643
                
616
 
644
                $form->setData($data);
617
                $form->setData($data);
645
                
618
 
646
                if($form->isValid()) {
619
                if ($form->isValid()) {
647
                    
620
 
648
                    list( $target_width, $target_height ) = explode('x', $this->config['leaderslinked.image_sizes.group_image_size']);
621
                    list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.group_image_size']);
649
                    
622
 
650
                    
623
 
651
                    $storage->setFiles($request->getFiles()->toArray());
-
 
652
                    if(!$storage->setCurrentFilename('image')) {
-
 
Línea -... Línea 624...
-
 
624
                    $storage->setFiles($request->getFiles()->toArray());
653
                        return new JsonModel([
625
                    if (!$storage->setCurrentFilename('image')) {
-
 
626
                        return new JsonModel([
654
                            'success'   => false,
627
                            'success'   => false,
655
                            'data'   =>  'ERROR_UPLOAD_FILE'
628
                            'data'   =>  'ERROR_UPLOAD_FILE'
656
                        ]);
629
                        ]);
657
                    }
630
                    }
658
                    
631
 
659
                    
632
 
660
 
633
 
661
                    
634
 
662
                    
635
 
663
                    $source_filename    = $storage->getTmpFilename();
636
                    $source_filename    = $storage->getTmpFilename();
664
                    $filename           = 'group-image-' . uniqid() . '.png';
637
                    $filename           = 'group-image-' . uniqid() . '.png';
665
                    $target_filename    = $storage->composePathToFilename(Storage::TYPE_GROUP, $group->uuid, $filename);
638
                    $target_filename    = $storage->composePathToFilename(Storage::TYPE_GROUP, $group->uuid, $filename);
666
                    
639
 
667
                    if($storage->uploadImageCrop($source_filename, $target_filename, $target_width, $target_height)) {
640
                    if ($storage->uploadImageCrop($source_filename, $target_filename, $target_width, $target_height)) {
668
                        
641
 
669
                        if($group->image) {
642
                        if ($group->image) {
670
                            $target_path = $storage->getPathGroup();
643
                            $target_path = $storage->getPathGroup();
671
                            $storage->deleteFile($target_path, $group->uuid, $group->image);
644
                            $storage->deleteFile($target_path, $group->uuid, $group->image);
672
                        }
645
                        }
673
                        
646
 
674
                        
647
 
675
                        
648
 
676
                   
649
 
677
                    
650
 
Línea 678... Línea 651...
678
                        $group->image = $filename;
651
                        $group->image = $filename;
679
                        if(!$groupMapper->updateImage($group)) {
-
 
680
                            return new JsonModel([
652
                        if (!$groupMapper->updateImage($group)) {
681
                                'success'   => false,
653
                            return new JsonModel([
682
                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
654
                                'success'   => false,
683
                            ]);
655
                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
684
                        }
-
 
685
                    }
656
                            ]);
686
 
657
                        }
687
                    $this->logger->info('Se actualizo el image del grupo : ' . $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
658
                    }
688
                    
659
 
689
                } else {
660
                    $this->logger->info('Se actualizo el image del grupo : ' . $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
690
                    $messages = [];
661
                } else {
691
                    $form_messages = (array) $form->getMessages();
662
                    $messages = [];
692
                    foreach($form_messages  as $fieldname => $field_messages)
663
                    $form_messages = (array) $form->getMessages();
693
                    {
664
                    foreach ($form_messages  as $fieldname => $field_messages) {
694
                        $messages[$fieldname] = array_values($field_messages);
665
                        $messages[$fieldname] = array_values($field_messages);
695
                    }
666
                    }
696
                    
667
 
697
                    return new JsonModel([
668
                    return new JsonModel([
698
                        'success'   => false,
669
                        'success'   => false,
699
                        'data'   => $messages
670
                        'data'   => $messages
700
                    ]);
671
                    ]);
701
                }
672
                }
702
            }
673
            }
703
            
674
 
704
            
675
 
705
            
676
 
706
            return new JsonModel([
677
            return new JsonModel([
707
                'success'   => true,
678
                'success'   => true,
708
                'data'      => $storage->getGroupImage($group),
679
                'data'      => $storage->getGroupImage($group),
709
                
680
 
710
            ]);
681
            ]);
711
        }
682
        }
712
        
683
 
713
        
684
 
Línea 714... Línea 685...
714
        $data = [
685
        $data = [
715
            'success' => false,
686
            'success' => false,
716
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
687
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
717
        ];
688
        ];
718
        
689
 
719
        
690
 
720
        return new JsonModel($data);
691
        return new JsonModel($data);
721
    }
692
    }
722
    
693
 
723
 
694
 
724
    public function coverAction()
695
    public function coverAction()
725
    {
696
    {
726
        $currentUserPlugin = $this->plugin('currentUserPlugin');
697
        $currentUserPlugin = $this->plugin('currentUserPlugin');
727
        $currentUser = $currentUserPlugin->getUser();
698
        $currentUser = $currentUserPlugin->getUser();
728
        
699
 
729
        $user_group_id  = $this->params()->fromRoute('id');
700
        $user_group_id  = $this->params()->fromRoute('id');
730
        $operation      = $this->params()->fromRoute('operation');
701
        $operation      = $this->params()->fromRoute('operation');
731
        
702
 
732
        $groupMapper = GroupMapper::getInstance($this->adapter);
-
 
733
        
703
        $groupMapper = GroupMapper::getInstance($this->adapter);
734
        $group = $groupMapper->fetchOneByUuidAndNetworkId($user_group_id, $currentUser->network_id);
-
 
Línea -... Línea 704...
-
 
704
 
735
        if(!$group) {
705
        $group = $groupMapper->fetchOneByUuidAndNetworkId($user_group_id, $currentUser->network_id);
736
            $response = [
706
        if (!$group) {
737
                'success' => false,
707
            $response = [
738
                'data' => 'ERROR_INVALID_PARAMETER'
708
                'success' => false,
739
            ];
709
                'data' => 'ERROR_INVALID_PARAMETER'
740
            
710
            ];
741
            return new JsonModel($response);
711
 
742
            
712
            return new JsonModel($response);
743
        }
713
        }
744
        
714
 
745
 
715
 
746
        if($currentUser->id != $group->user_id) {
716
        if ($currentUser->id != $group->user_id) {
747
            $response = [
717
            $response = [
748
                'success' => false,
718
                'success' => false,
749
                'data' => 'ERROR_UNAUTHORIZED'
719
                'data' => 'ERROR_UNAUTHORIZED'
750
            ];
720
            ];
751
            
721
 
752
            return new JsonModel($response);
722
            return new JsonModel($response);
753
        }
723
        }
754
        
724
 
755
        
725
 
756
        
726
 
757
        $request = $this->getRequest();
727
        $request = $this->getRequest();
758
        if($request->isPost()) {
728
        if ($request->isPost()) {
759
            
729
 
760
            $storage = Storage::getInstance($this->config, $this->adapter);
730
            $storage = Storage::getInstance($this->config, $this->adapter);
761
            $target_path = $storage->getPathGroup();
731
            $target_path = $storage->getPathGroup();
762
            
732
 
763
            
733
 
764
            if($operation == 'delete') {
734
            if ($operation == 'delete') {
765
                if($group->cover) {
735
                if ($group->cover) {
766
                    if(!$storage->delete($target_path, $group->uuid, $group->cover)) {
736
                    if (!$storage->delete($target_path, $group->uuid, $group->cover)) {
767
                        return new JsonModel([
737
                        return new JsonModel([
768
                            'success'   => false,
738
                            'success'   => false,
769
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
739
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
770
                        ]);
740
                        ]);
771
                    }
741
                    }
772
                }
-
 
773
                
742
                }
774
                $this->logger->info('Se borro el cover del grupo : ' . $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
743
 
775
                
744
                $this->logger->info('Se borro el cover del grupo : ' . $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
776
                $group->cover = '';
745
 
777
                if(!$groupMapper->updateCover($group)) {
746
                $group->cover = '';
778
                    return new JsonModel([
747
                if (!$groupMapper->updateCover($group)) {
779
                        'success'   => false,
748
                    return new JsonModel([
780
                        'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
749
                        'success'   => false,
781
                    ]);
750
                        'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
782
                }
751
                    ]);
783
                
752
                }
784
            } else {
753
            } else {
785
                $form = new CoverForm($this->config);
754
                $form = new CoverForm($this->config);
786
                $data 	= array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
755
                $data     = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
787
                
756
 
788
                $form->setData($data);
-
 
789
                
-
 
790
                if($form->isValid()) {
757
                $form->setData($data);
791
                    
-
 
792
                    $storage->setFiles($request->getFiles()->toArray());
-
 
793
                    if(!$storage->setCurrentFilename('cover')) {
-
 
794
          
-
 
795
                        return new JsonModel([
-
 
Línea -... Línea 758...
-
 
758
 
796
                            'success'   => false,
759
                if ($form->isValid()) {
-
 
760
 
-
 
761
                    $storage->setFiles($request->getFiles()->toArray());
-
 
762
                    if (!$storage->setCurrentFilename('cover')) {
-
 
763
 
797
                            'data'   =>  'ERROR_UPLOAD_FILE'
764
                        return new JsonModel([
798
                        ]);
765
                            'success'   => false,
799
                        
766
                            'data'   =>  'ERROR_UPLOAD_FILE'
800
                        
767
                        ]);
801
                    }
768
                    }
802
                    
769
 
803
                    list( $target_width, $target_height ) = explode('x', $this->config['leaderslinked.image_sizes.group_cover_size']);
770
                    list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.group_cover_size']);
804
                    
771
 
805
                    
772
 
806
                    
773
 
807
 
774
 
808
                    
775
 
809
                    $source_filename    = $storage->getTmpFilename();
776
                    $source_filename    = $storage->getTmpFilename();
810
                    $filename           = 'group-cover-' . uniqid() . '.png';
777
                    $filename           = 'group-cover-' . uniqid() . '.png';
811
                    $target_filename    = $storage->composePathToFilename(Storage::TYPE_GROUP, $group->uuid, $filename);
778
                    $target_filename    = $storage->composePathToFilename(Storage::TYPE_GROUP, $group->uuid, $filename);
812
                   
779
 
813
                    if($storage->uploadImageCrop($source_filename, $target_filename, $target_width, $target_height)) {
780
                    if ($storage->uploadImageCrop($source_filename, $target_filename, $target_width, $target_height)) {
814
                        if($group->cover) {
781
                        if ($group->cover) {
815
                            if(!$storage->delete($target_path, $group->uuid, $group->cover)) {
782
                            if (!$storage->delete($target_path, $group->uuid, $group->cover)) {
816
                                return new JsonModel([
783
                                return new JsonModel([
817
                                    'success'   => false,
784
                                    'success'   => false,
818
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
819
                                ]);
785
                                    'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
820
                            }
786
                                ]);
821
                        }
787
                            }
822
                        
788
                        }
823
                        $group->cover = $filename;
789
 
824
                        if(!$groupMapper->updateCover($group)) {
790
                        $group->cover = $filename;
825
                            return new JsonModel([
791
                        if (!$groupMapper->updateCover($group)) {
826
                                'success'   => false,
792
                            return new JsonModel([
827
                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
793
                                'success'   => false,
828
                            ]);
794
                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
829
                        }
795
                            ]);
830
                        
796
                        }
831
                    } else {
-
 
832
                        return new JsonModel([
797
                    } else {
833
                            'success'   => false,
798
                        return new JsonModel([
834
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
799
                            'success'   => false,
835
                        ]);
800
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
836
                    }
-
 
837
                    
801
                        ]);
838
                    
802
                    }
839
                    
803
 
840
                    
804
 
841
                    
805
 
842
                    $this->logger->info('Se actualizo el cover del grupo :  ' . $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
806
 
843
                    
807
 
844
                } else {
808
                    $this->logger->info('Se actualizo el cover del grupo :  ' . $group->name, ['user_id' => $group->user_id, 'ip' => Functions::getUserIP()]);
845
                    $messages = [];
809
                } else {
846
                    $form_messages = (array) $form->getMessages();
810
                    $messages = [];
847
                    foreach($form_messages  as $fieldname => $field_messages)
811
                    $form_messages = (array) $form->getMessages();
848
                    {
812
                    foreach ($form_messages  as $fieldname => $field_messages) {
849
                        $messages[$fieldname] = array_values($field_messages);
813
                        $messages[$fieldname] = array_values($field_messages);
850
                    }
814
                    }
851
                    
815
 
852
                    return new JsonModel([
816
                    return new JsonModel([
853
                        'success'   => false,
817
                        'success'   => false,
854
                        'data'   => $messages
818
                        'data'   => $messages
855
                    ]);
819
                    ]);
856
                }
820
                }
857
            }
821
            }
858
            
822
 
859
            $storage = Storage::getInstance($this->config, $this->adapter);
823
            $storage = Storage::getInstance($this->config, $this->adapter);
860
            
824
 
861
            return new JsonModel([
825
            return new JsonModel([
862
                'success'   => true,
826
                'success'   => true,
863
                'data' => $storage->getGroupCover($group),
827
                'data' => $storage->getGroupCover($group),
864
                
828
 
865
            ]);
829
            ]);
866
        }
830
        }
867
        
831
 
868
        
832
 
869
        $data = [
833
        $data = [
870
            'success' => false,
834
            'success' => false,
871
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
835
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
872
        ];
836
        ];
873
        
837
 
874
        
838
 
875
        return new JsonModel($data);
839
        return new JsonModel($data);
876
    }
840
    }
877
    
841
 
878
    public function industryAction()
842
    public function industryAction()
879
    {
843
    {
880
        
844
 
881
        $currentUserPlugin = $this->plugin('currentUserPlugin');
845
        $currentUserPlugin = $this->plugin('currentUserPlugin');
882
        $currentUser = $currentUserPlugin->getUser();
846
        $currentUser = $currentUserPlugin->getUser();
883
        
847
 
884
        $id = $this->params()->fromRoute('id');
848
        $id = $this->params()->fromRoute('id');
885
        if(!$id) {
849
        if (!$id) {
886
            $response = [
850
            $response = [
887
                'success' => false,
851
                'success' => false,
888
                'data' => 'ERROR_INVALID_PARAMETER'
852
                'data' => 'ERROR_INVALID_PARAMETER'
889
            ];
853
            ];
890
            
854
 
891
            return new JsonModel($response);
855
            return new JsonModel($response);
892
        }
-
 
Línea -... Línea 856...
-
 
856
        }
893
        
857
 
894
        $groupMapper = GroupMapper::getInstance($this->adapter);
858
        $groupMapper = GroupMapper::getInstance($this->adapter);
895
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
859
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
896
        if(!$group) {
860
        if (!$group) {
897
            $response = [
861
            $response = [
898
                'success' => false,
862
                'success' => false,
899
                'data' => 'ERROR_RECORD_NOT_FOUND'
863
                'data' => 'ERROR_RECORD_NOT_FOUND'
900
            ];
864
            ];
901
            
865
 
902
            return new JsonModel($response);
866
            return new JsonModel($response);
903
        }
867
        }
904
        
868
 
905
 
869
 
906
        if($currentUser->id != $group->user_id) {
870
        if ($currentUser->id != $group->user_id) {
907
            $response = [
871
            $response = [
908
                'success' => false,
872
                'success' => false,
909
                'data' => 'ERROR_UNAUTHORIZED'
873
                'data' => 'ERROR_UNAUTHORIZED'
910
            ];
874
            ];
911
            
875
 
912
            return new JsonModel($response);
876
            return new JsonModel($response);
913
        }
877
        }
914
        
878
 
915
        
879
 
916
        
880
 
917
        $request = $this->getRequest();
-
 
918
        if($request->isGet()) {
-
 
919
            $industryMapper = IndustryMapper::getInstance($this->adapter);
881
        $request = $this->getRequest();
920
            $industry = $industryMapper->fetchOne($group->industry_id);
882
        if ($request->isGet()) {
921
            
883
            $industryMapper = IndustryMapper::getInstance($this->adapter);
922
            
884
            $industry = $industryMapper->fetchOne($group->industry_id);
923
            
885
 
924
            $data = [
886
 
925
                'success' => true,
887
 
926
                'data' => $industry->uuid,
888
            $data = [
927
            ];
889
                'success' => true,
928
            
890
                'data' => $industry->uuid,
Línea 929... Línea 891...
929
            return new JsonModel($data);
891
            ];
930
            
892
 
931
            
893
            return new JsonModel($data);
932
        } else if($request->isPost()) {
894
        } else if ($request->isPost()) {
933
            
895
 
934
            
896
 
935
            $form = new IndustryForm($this->adapter);
897
            $form = new IndustryForm($this->adapter);
936
            $dataPost = $request->getPost()->toArray();
-
 
Línea -... Línea 898...
-
 
898
            $dataPost = $request->getPost()->toArray();
937
            
899
 
938
            $form->setData($dataPost);
900
            $form->setData($dataPost);
939
            
901
 
940
            if($form->isValid()) {
902
            if ($form->isValid()) {
941
                $dataPost = (array) $form->getData();
903
                $dataPost = (array) $form->getData();
942
 
904
 
943
                $industryMapper = IndustryMapper::getInstance($this->adapter);
-
 
944
                $industry = $industryMapper->fetchOneByUuid($dataPost['industry_id']);
905
                $industryMapper = IndustryMapper::getInstance($this->adapter);
945
                
906
                $industry = $industryMapper->fetchOneByUuid($dataPost['industry_id']);
946
                $group->industry_id = $industry->id;
907
 
947
                $groupMapper->updateIndustry($group);
908
                $group->industry_id = $industry->id;
948
                
-
 
949
                $this->logger->info('Se actualizo la industria del grupo : ' . $group->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
909
                $groupMapper->updateIndustry($group);
950
                
910
 
951
 
911
                $this->logger->info('Se actualizo la industria del grupo : ' . $group->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
952
                
912
 
953
                return new JsonModel([
913
 
954
                    'success'   => true,
914
 
955
                    'data' =>  $industry->name,
915
                return new JsonModel([
956
                    
916
                    'success'   => true,
957
                ]);
917
                    'data' =>  $industry->name,
958
                
918
 
959
            } else {
919
                ]);
960
                $messages = [];
920
            } else {
961
                $form_messages = (array) $form->getMessages();
921
                $messages = [];
962
                foreach($form_messages  as $fieldname => $field_messages)
922
                $form_messages = (array) $form->getMessages();
963
                {
923
                foreach ($form_messages  as $fieldname => $field_messages) {
964
                    $messages[$fieldname] = array_values($field_messages);
924
                    $messages[$fieldname] = array_values($field_messages);
965
                }
925
                }
966
                
926
 
967
                return new JsonModel([
927
                return new JsonModel([
968
                    'success'   => false,
928
                    'success'   => false,
969
                    'data'   => $messages
929
                    'data'   => $messages
970
                ]);
930
                ]);
971
            }
931
            }
972
        }
932
        }
973
        
933
 
974
        
934
 
975
        $data = [
935
        $data = [
976
            'success' => false,
936
            'success' => false,
977
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
937
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
978
        ];
938
        ];
979
        
939
 
980
        
940
 
981
        return new JsonModel($data);
941
        return new JsonModel($data);
982
    }
942
    }
983
    
943
 
984
    public function websiteAction()
944
    public function websiteAction()
985
    {
945
    {
986
        $currentUserPlugin = $this->plugin('currentUserPlugin');
946
        $currentUserPlugin = $this->plugin('currentUserPlugin');
987
        $currentUser = $currentUserPlugin->getUser();
947
        $currentUser = $currentUserPlugin->getUser();
988
        
948
 
989
        $id = $this->params()->fromRoute('id');
949
        $id = $this->params()->fromRoute('id');
990
        if(!$id) {
950
        if (!$id) {
991
            $response = [
951
            $response = [
992
                'success' => false,
952
                'success' => false,
993
                'data' => 'ERROR_INVALID_PARAMETER'
953
                'data' => 'ERROR_INVALID_PARAMETER'
994
            ];
-
 
Línea -... Línea 954...
-
 
954
            ];
995
            
955
 
996
            return new JsonModel($response);
956
            return new JsonModel($response);
997
        }
957
        }
998
        
958
 
999
        $groupMapper = GroupMapper::getInstance($this->adapter);
959
        $groupMapper = GroupMapper::getInstance($this->adapter);
1000
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
960
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
1001
        if(!$group) {
961
        if (!$group) {
1002
            $response = [
962
            $response = [
1003
                'success' => false,
963
                'success' => false,
1004
                'data' => 'ERROR_RECORD_NOT_FOUND'
964
                'data' => 'ERROR_RECORD_NOT_FOUND'
1005
            ];
965
            ];
1006
            
966
 
1007
            return new JsonModel($response);
967
            return new JsonModel($response);
1008
        }
968
        }
1009
        
969
 
1010
 
970
 
1011
        if($currentUser->id != $group->user_id) {
971
        if ($currentUser->id != $group->user_id) {
1012
            $response = [
972
            $response = [
1013
                'success' => false,
-
 
1014
                'data' => 'ERROR_UNAUTHORIZED'
-
 
1015
            ];
973
                'success' => false,
1016
            
974
                'data' => 'ERROR_UNAUTHORIZED'
1017
            return new JsonModel($response);
975
            ];
1018
        }
976
 
1019
        
977
            return new JsonModel($response);
1020
        
978
        }
1021
        $request = $this->getRequest();
979
 
1022
        if($request->isGet()) {
980
 
1023
            $data = [
981
        $request = $this->getRequest();
1024
                'success' => true,
982
        if ($request->isGet()) {
1025
                'data' => $group->website,
983
            $data = [
1026
            ];
984
                'success' => true,
1027
            
985
                'data' => $group->website,
1028
            return new JsonModel($data);
986
            ];
1029
            
987
 
1030
            
988
            return new JsonModel($data);
1031
        } else if($request->isPost()) {
989
        } else if ($request->isPost()) {
1032
            
990
 
1033
            
991
 
1034
            $form = new WebsiteForm();
992
            $form = new WebsiteForm();
1035
            $dataPost = $request->getPost()->toArray();
993
            $dataPost = $request->getPost()->toArray();
1036
            
994
 
1037
            $form->setData($dataPost);
-
 
1038
            
995
            $form->setData($dataPost);
1039
            if($form->isValid()) {
996
 
1040
                $dataPost = (array) $form->getData();
997
            if ($form->isValid()) {
1041
                
998
                $dataPost = (array) $form->getData();
1042
                $hydrator = new ObjectPropertyHydrator();
-
 
1043
                $hydrator->hydrate($dataPost, $group);
999
 
1044
                
1000
                $hydrator = new ObjectPropertyHydrator();
1045
                $groupMapper->updateWebsite($group);
1001
                $hydrator->hydrate($dataPost, $group);
1046
                
1002
 
1047
                $this->logger->info('Se actualizo el website de la empresa ' . $group->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
1003
                $groupMapper->updateWebsite($group);
1048
                
1004
 
1049
                return new JsonModel([
1005
                $this->logger->info('Se actualizo el website de la empresa ' . $group->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
1050
                    'success'   => true,
1006
 
1051
                    'data' => $group->website,
1007
                return new JsonModel([
1052
                ]);
1008
                    'success'   => true,
1053
                
1009
                    'data' => $group->website,
1054
            } else {
1010
                ]);
1055
                $messages = [];
1011
            } else {
1056
                $form_messages = (array) $form->getMessages();
1012
                $messages = [];
1057
                foreach($form_messages  as $fieldname => $field_messages)
1013
                $form_messages = (array) $form->getMessages();
1058
                {
1014
                foreach ($form_messages  as $fieldname => $field_messages) {
1059
                    $messages[$fieldname] = array_values($field_messages);
1015
                    $messages[$fieldname] = array_values($field_messages);
1060
                }
1016
                }
1061
                
1017
 
1062
                return new JsonModel([
1018
                return new JsonModel([
1063
                    'success'   => false,
1019
                    'success'   => false,
1064
                    'data'   => $messages
1020
                    'data'   => $messages
1065
                ]);
1021
                ]);
1066
            }
1022
            }
1067
        }
1023
        }
1068
        
1024
 
1069
        
1025
 
1070
        $data = [
1026
        $data = [
1071
            'success' => false,
1027
            'success' => false,
1072
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
1028
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
1073
        ];
1029
        ];
1074
        
1030
 
1075
        
1031
 
1076
        return new JsonModel($data);
1032
        return new JsonModel($data);
1077
    }
1033
    }
1078
    
1034
 
1079
    public function accessibilityAction()
1035
    public function accessibilityAction()
1080
    {
1036
    {
1081
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1037
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1082
        $currentUser = $currentUserPlugin->getUser();
1038
        $currentUser = $currentUserPlugin->getUser();
1083
        
1039
 
1084
        $id = $this->params()->fromRoute('id');
1040
        $id = $this->params()->fromRoute('id');
1085
        if(!$id) {
1041
        if (!$id) {
1086
            $response = [
1042
            $response = [
1087
                'success' => false,
1043
                'success' => false,
1088
                'data' => 'ERROR_INVALID_PARAMETER'
-
 
Línea -... Línea 1044...
-
 
1044
                'data' => 'ERROR_INVALID_PARAMETER'
1089
            ];
1045
            ];
1090
            
1046
 
1091
            return new JsonModel($response);
1047
            return new JsonModel($response);
1092
        }
1048
        }
1093
        
1049
 
1094
        $groupMapper = GroupMapper::getInstance($this->adapter);
1050
        $groupMapper = GroupMapper::getInstance($this->adapter);
1095
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
1051
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
1096
        if(!$group) {
1052
        if (!$group) {
1097
            $response = [
1053
            $response = [
1098
                'success' => false,
1054
                'success' => false,
1099
                'data' => 'ERROR_RECORD_NOT_FOUND'
1055
                'data' => 'ERROR_RECORD_NOT_FOUND'
1100
            ];
1056
            ];
1101
            
1057
 
1102
            return new JsonModel($response);
1058
            return new JsonModel($response);
1103
        }
1059
        }
1104
        
1060
 
1105
 
1061
 
1106
        if($currentUser->id != $group->user_id) {
1062
        if ($currentUser->id != $group->user_id) {
1107
            $response = [
-
 
1108
                'success' => false,
-
 
1109
                'data' => 'ERROR_UNAUTHORIZED'
1063
            $response = [
1110
            ];
1064
                'success' => false,
1111
            
1065
                'data' => 'ERROR_UNAUTHORIZED'
1112
            return new JsonModel($response);
1066
            ];
1113
        }
1067
 
1114
        
1068
            return new JsonModel($response);
1115
        
1069
        }
1116
        $request = $this->getRequest();
1070
 
1117
        if($request->isGet()) {
1071
 
1118
            $data = [
1072
        $request = $this->getRequest();
Línea 1119... Línea 1073...
1119
                'success' => true,
1073
        if ($request->isGet()) {
1120
                'data' => $group->accessibility,
1074
            $data = [
1121
            ];
1075
                'success' => true,
1122
            
1076
                'data' => $group->accessibility,
1123
            return new JsonModel($data);
1077
            ];
1124
            
1078
 
1125
            
1079
            return new JsonModel($data);
1126
        } else if($request->isPost()) {
1080
        } else if ($request->isPost()) {
1127
            
1081
 
1128
            
1082
 
1129
            $form = new AccessibilityForm();
1083
            $form = new AccessibilityForm();
1130
            $dataPost = $request->getPost()->toArray();
1084
            $dataPost = $request->getPost()->toArray();
1131
            
1085
 
1132
            $form->setData($dataPost);
1086
            $form->setData($dataPost);
1133
            
1087
 
1134
            if($form->isValid()) {
1088
            if ($form->isValid()) {
1135
                $dataPost = (array) $form->getData();
1089
                $dataPost = (array) $form->getData();
1136
 
-
 
1137
                $hydrator = new ObjectPropertyHydrator();
1090
 
1138
                $hydrator->hydrate($dataPost, $group);
1091
                $hydrator = new ObjectPropertyHydrator();
1139
                
1092
                $hydrator->hydrate($dataPost, $group);
1140
                $groupMapper->updateAccessibility($group);
1093
 
1141
                
-
 
1142
                 $values = [
1094
                $groupMapper->updateAccessibility($group);
1143
                    Group::ACCESSIBILITY_AUTO_JOIN => 'LABEL_AUTO_JOIN',
1095
 
1144
                    Group::ACCESSIBILITY_REQUEST_TO_JOIN => 'LABEL_REQUEST_TO_JOIN',
1096
                $values = [
1145
                    Group::ACCESSIBILITY_ADMIN_WILL_ADD => 'LABEL_ADMIN_WILL_ADD',
1097
                    Group::ACCESSIBILITY_AUTO_JOIN => 'LABEL_AUTO_JOIN',
1146
                ];
1098
                    Group::ACCESSIBILITY_REQUEST_TO_JOIN => 'LABEL_REQUEST_TO_JOIN',
1147
                
1099
                    Group::ACCESSIBILITY_ADMIN_WILL_ADD => 'LABEL_ADMIN_WILL_ADD',
1148
                $this->logger->info('Se actualizo el accesibilidad de la empresa ' . $group->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
1100
                ];
1149
                
1101
 
1150
                return new JsonModel([
1102
                $this->logger->info('Se actualizo el accesibilidad de la empresa ' . $group->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
1151
                    'success'   => true,
1103
 
1152
                    'data' => $values[$group->accessibility]
1104
                return new JsonModel([
1153
                 ]);
1105
                    'success'   => true,
1154
                
1106
                    'data' => $values[$group->accessibility]
1155
            } else {
1107
                ]);
1156
                $messages = [];
1108
            } else {
1157
                $form_messages = (array) $form->getMessages();
1109
                $messages = [];
1158
                foreach($form_messages  as $fieldname => $field_messages)
1110
                $form_messages = (array) $form->getMessages();
1159
                {
1111
                foreach ($form_messages  as $fieldname => $field_messages) {
1160
                    $messages[$fieldname] = array_values($field_messages);
1112
                    $messages[$fieldname] = array_values($field_messages);
1161
                }
1113
                }
1162
                
1114
 
1163
                return new JsonModel([
1115
                return new JsonModel([
1164
                    'success'   => false,
1116
                    'success'   => false,
1165
                    'data'   => $messages
1117
                    'data'   => $messages
1166
                ]);
1118
                ]);
1167
            }
1119
            }
1168
        }
1120
        }
1169
        
1121
 
1170
        
1122
 
1171
        $data = [
1123
        $data = [
1172
            'success' => false,
1124
            'success' => false,
1173
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
1125
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
1174
        ];
1126
        ];
1175
        
1127
 
1176
        
1128
 
1177
        return new JsonModel($data);
1129
        return new JsonModel($data);
1178
    }
1130
    }
1179
    
1131
 
1180
    public function privacyAction()
1132
    public function privacyAction()
1181
    {
1133
    {
1182
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1134
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1183
        $currentUser = $currentUserPlugin->getUser();
1135
        $currentUser = $currentUserPlugin->getUser();
1184
        
1136
 
1185
        $id = $this->params()->fromRoute('id');
1137
        $id = $this->params()->fromRoute('id');
1186
        if(!$id) {
1138
        if (!$id) {
Línea 1187... Línea 1139...
1187
            $response = [
1139
            $response = [
1188
                'success' => false,
1140
                'success' => false,
1189
                'data' => 'ERROR_INVALID_PARAMETER'
1141
                'data' => 'ERROR_INVALID_PARAMETER'
1190
            ];
1142
            ];
1191
            
1143
 
1192
            return new JsonModel($response);
1144
            return new JsonModel($response);
1193
        }
1145
        }
1194
        
1146
 
1195
        $groupMapper = GroupMapper::getInstance($this->adapter);
1147
        $groupMapper = GroupMapper::getInstance($this->adapter);
1196
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
1148
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
1197
        if(!$group) {
1149
        if (!$group) {
1198
            $response = [
1150
            $response = [
1199
                'success' => false,
1151
                'success' => false,
1200
                'data' => 'ERROR_RECORD_NOT_FOUND'
1152
                'data' => 'ERROR_RECORD_NOT_FOUND'
1201
            ];
1153
            ];
1202
            
1154
 
1203
            return new JsonModel($response);
1155
            return new JsonModel($response);
1204
        }
1156
        }
1205
 
-
 
1206
        if($currentUser->id != $group->user_id) {
-
 
1207
            $response = [
1157
 
1208
                'success' => false,
1158
        if ($currentUser->id != $group->user_id) {
1209
                'data' => 'ERROR_UNAUTHORIZED'
1159
            $response = [
1210
            ];
1160
                'success' => false,
1211
            
1161
                'data' => 'ERROR_UNAUTHORIZED'
1212
            return new JsonModel($response);
1162
            ];
1213
        }
1163
 
1214
        
1164
            return new JsonModel($response);
1215
        
1165
        }
1216
        $request = $this->getRequest();
1166
 
1217
        if($request->isGet()) {
1167
 
1218
            $data = [
1168
        $request = $this->getRequest();
1219
                'success' => true,
1169
        if ($request->isGet()) {
1220
                'data' => $group->privacy,
1170
            $data = [
1221
            ];
1171
                'success' => true,
1222
            
1172
                'data' => $group->privacy,
1223
            return new JsonModel($data);
1173
            ];
1224
            
1174
 
1225
            
1175
            return new JsonModel($data);
1226
        } else if($request->isPost()) {
1176
        } else if ($request->isPost()) {
1227
            
1177
 
Línea 1228... Línea 1178...
1228
            
1178
 
1229
            $form = new PrivacyForm();
1179
            $form = new PrivacyForm();
1230
            $dataPost = $request->getPost()->toArray();
1180
            $dataPost = $request->getPost()->toArray();
1231
            
1181
 
1232
            $form->setData($dataPost);
1182
            $form->setData($dataPost);
1233
            
1183
 
1234
            if($form->isValid()) {
-
 
1235
                $dataPost = (array) $form->getData();
1184
            if ($form->isValid()) {
1236
                
1185
                $dataPost = (array) $form->getData();
1237
                $hydrator = new ObjectPropertyHydrator();
1186
 
1238
                $hydrator->hydrate($dataPost, $group);
1187
                $hydrator = new ObjectPropertyHydrator();
1239
                
-
 
1240
                $groupMapper->updatePrivacy($group);
1188
                $hydrator->hydrate($dataPost, $group);
1241
                
1189
 
1242
                $values = [
1190
                $groupMapper->updatePrivacy($group);
1243
                    Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
1191
 
1244
                    Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
1192
                $values = [
1245
                ];
1193
                    Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
1246
                
1194
                    Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
1247
 
1195
                ];
1248
                $this->logger->info('Se actualizo la privacidad de la empresa ' . $group->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
1196
 
1249
                
1197
 
1250
                return new JsonModel([
1198
                $this->logger->info('Se actualizo la privacidad de la empresa ' . $group->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
1251
                    'success'   => true,
1199
 
1252
                    'data' => $values[$group->privacy]
1200
                return new JsonModel([
1253
                ]);
1201
                    'success'   => true,
1254
                
1202
                    'data' => $values[$group->privacy]
1255
            } else {
1203
                ]);
1256
                $messages = [];
1204
            } else {
1257
                $form_messages = (array) $form->getMessages();
1205
                $messages = [];
1258
                foreach($form_messages  as $fieldname => $field_messages)
1206
                $form_messages = (array) $form->getMessages();
1259
                {
1207
                foreach ($form_messages  as $fieldname => $field_messages) {
1260
                    $messages[$fieldname] = array_values($field_messages);
1208
                    $messages[$fieldname] = array_values($field_messages);
1261
                }
1209
                }
1262
                
1210
 
1263
                return new JsonModel([
1211
                return new JsonModel([
1264
                    'success'   => false,
1212
                    'success'   => false,
1265
                    'data'   => $messages
1213
                    'data'   => $messages
1266
                ]);
1214
                ]);
1267
            }
1215
            }
1268
        }
1216
        }
1269
        
1217
 
1270
        
1218
 
1271
        $data = [
1219
        $data = [
1272
            'success' => false,
1220
            'success' => false,
1273
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
1221
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
1274
        ];
1222
        ];
1275
        
1223
 
1276
        
1224
 
1277
        return new JsonModel($data);
1225
        return new JsonModel($data);
1278
    }
1226
    }
1279
    
1227
 
1280
    
1228
 
1281
    
1229
 
1282
    public function typeAction()
1230
    public function typeAction()
1283
    {
1231
    {
1284
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1232
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1285
        $currentUser = $currentUserPlugin->getUser();
1233
        $currentUser = $currentUserPlugin->getUser();
1286
        
1234
 
1287
        $id = $this->params()->fromRoute('id');
-
 
Línea -... Línea 1235...
-
 
1235
        $id = $this->params()->fromRoute('id');
1288
        if(!$id) {
1236
        if (!$id) {
1289
            $response = [
1237
            $response = [
1290
                'success' => false,
1238
                'success' => false,
1291
                'data' => 'ERROR_INVALID_PARAMETER'
1239
                'data' => 'ERROR_INVALID_PARAMETER'
1292
            ];
1240
            ];
1293
            
1241
 
1294
            return new JsonModel($response);
1242
            return new JsonModel($response);
1295
        }
1243
        }
1296
        
1244
 
1297
        $groupMapper = GroupMapper::getInstance($this->adapter);
1245
        $groupMapper = GroupMapper::getInstance($this->adapter);
1298
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
1246
        $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
1299
        if(!$group) {
1247
        if (!$group) {
1300
            $response = [
1248
            $response = [
1301
                'success' => false,
1249
                'success' => false,
1302
                'data' => 'ERROR_RECORD_NOT_FOUND'
1250
                'data' => 'ERROR_RECORD_NOT_FOUND'
1303
            ];
1251
            ];
1304
            
1252
 
1305
            return new JsonModel($response);
1253
            return new JsonModel($response);
1306
        }
1254
        }
1307
        
1255
 
1308
 
1256
 
1309
        if($currentUser->id != $group->user_id) {
1257
        if ($currentUser->id != $group->user_id) {
1310
            $response = [
1258
            $response = [
1311
                'success' => false,
-
 
1312
                'data' => 'ERROR_UNAUTHORIZED'
-
 
1313
            ];
1259
                'success' => false,
1314
            
1260
                'data' => 'ERROR_UNAUTHORIZED'
1315
            return new JsonModel($response);
1261
            ];
1316
        }
1262
 
1317
        
1263
            return new JsonModel($response);
1318
        
1264
        }
1319
        
1265
 
1320
        $request = $this->getRequest();
1266
 
1321
        if($request->isGet()) {
1267
 
1322
            
1268
        $request = $this->getRequest();
1323
            $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
1269
        if ($request->isGet()) {
1324
            $groupType = $groupTypeMapper->fetchOne($group->type_id);
1270
 
1325
            
1271
            $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
1326
            $data = [
1272
            $groupType = $groupTypeMapper->fetchOne($group->type_id);
1327
                'success' => true,
1273
 
1328
                'data' => $groupType->uuid,
1274
            $data = [
1329
            ];
1275
                'success' => true,
1330
            
1276
                'data' => $groupType->uuid,
1331
            return new JsonModel($data);
1277
            ];
1332
            
1278
 
1333
            
1279
            return new JsonModel($data);
1334
        } else if($request->isPost()) {
1280
        } else if ($request->isPost()) {
1335
            
1281
 
1336
            
1282
 
1337
            $form = new GroupTypeForm($this->adapter);
1283
            $form = new GroupTypeForm($this->adapter);
1338
            $dataPost = $request->getPost()->toArray();
1284
            $dataPost = $request->getPost()->toArray();
1339
            
1285
 
1340
            $form->setData($dataPost);
-
 
1341
            
1286
            $form->setData($dataPost);
1342
            if($form->isValid()) {
1287
 
1343
                $dataPost = (array) $form->getData();
1288
            if ($form->isValid()) {
1344
                
1289
                $dataPost = (array) $form->getData();
1345
                $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
-
 
1346
                $groupType = $groupTypeMapper->fetchOneByUuid($dataPost['type_id']);
1290
 
1347
                
1291
                $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
1348
                $group->type_id = $groupType->id;
1292
                $groupType = $groupTypeMapper->fetchOneByUuid($dataPost['type_id']);
1349
                $groupMapper->updateGroupType($group);
1293
 
1350
                
1294
                $group->type_id = $groupType->id;
1351
                $this->logger->info('Se actualizo el tipo del grupo : ' . $group->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
1295
                $groupMapper->updateGroupType($group);
1352
                
1296
 
1353
                $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
1297
                $this->logger->info('Se actualizo el tipo del grupo : ' . $group->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
1354
                $groupType = $groupTypeMapper->fetchOne($group->type_id);
1298
 
1355
                
1299
                $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
1356
                return new JsonModel([
1300
                $groupType = $groupTypeMapper->fetchOne($group->type_id);
1357
                    'success'   => true,
1301
 
1358
                    'data' =>  $groupType->name,
1302
                return new JsonModel([
1359
                    
1303
                    'success'   => true,
1360
                ]);
1304
                    'data' =>  $groupType->name,
1361
                
1305
 
1362
            } else {
1306
                ]);
1363
                $messages = [];
1307
            } else {
1364
                $form_messages = (array) $form->getMessages();
1308
                $messages = [];
1365
                foreach($form_messages  as $fieldname => $field_messages)
-
 
1366
                {
-
 
1367
                    $messages[$fieldname] = array_values($field_messages);
-
 
1368
                }
-
 
1369
                
-
 
1370
                return new JsonModel([
-
 
1371
                    'success'   => false,
-
 
1372
                    'data'   => $messages
1309
                $form_messages = (array) $form->getMessages();