Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 4632 Rev 5501
Línea 1... Línea 1...
1
<?php
1
<?php
-
 
2
 
2
/**
3
/**
3
 * 
4
 * 
4
 * Controlador: Mis Perfiles 
5
 * Controlador: Mis Perfiles 
5
 * 
6
 * 
6
 */
7
 */
-
 
8
 
7
declare(strict_types=1);
9
declare(strict_types=1);
Línea 8... Línea 10...
8
 
10
 
Línea 9... Línea 11...
9
namespace LeadersLinked\Controller;
11
namespace LeadersLinked\Controller;
Línea 42... Línea 44...
42
    /**
44
    /**
43
     *
45
     *
44
     * @var AdapterInterface
46
     * @var AdapterInterface
45
     */
47
     */
46
    private $adapter;
48
    private $adapter;
47
    
49
 
48
    
50
 
49
    /**
51
    /**
50
     *
52
     *
51
     * @var AbstractAdapter
53
     * @var AbstractAdapter
52
     */
54
     */
53
    private $cache;
55
    private $cache;
54
    
56
 
55
    /**
57
    /**
56
     *
58
     *
57
     * @var  LoggerInterface
59
     * @var  LoggerInterface
58
     */
60
     */
59
    private $logger;
61
    private $logger;
Línea 60... Línea 62...
60
 
62
 
61
    
63
 
62
    /**
64
    /**
63
     *
65
     *
64
     * @var array
66
     * @var array
65
     */
67
     */
66
    private $config;
68
    private $config;
67
    
69
 
68
    /**
70
    /**
69
     *
71
     *
70
     * @param AdapterInterface $adapter
72
     * @param AdapterInterface $adapter
71
     * @param AbstractAdapter $cache
73
     * @param AbstractAdapter $cache
72
     * @param LoggerInterface $logger
74
     * @param LoggerInterface $logger
73
     * @param array $config
75
     * @param array $config
74
     */
76
     */
75
    public function __construct($adapter, $cache , $logger,  $config)
77
    public function __construct($adapter, $cache, $logger,  $config)
76
    {
78
    {
77
        $this->adapter      = $adapter;
79
        $this->adapter      = $adapter;
78
        $this->cache        = $cache;
80
        $this->cache        = $cache;
79
        $this->logger       = $logger;
81
        $this->logger       = $logger;
80
        $this->config       = $config;
-
 
81
 
82
        $this->config       = $config;
82
    }
83
    }
83
    
84
 
84
    /**
85
    /**
85
     * 
86
     * 
86
     * Generación del listado de perfiles
87
     * Generación del listado de perfiles
87
     * {@inheritDoc}
88
     * {@inheritDoc}
88
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
89
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
89
     */
90
     */
90
    public function indexAction()
91
    public function indexAction()
91
    {
92
    {
92
        
93
 
93
        $this->layout()->setTemplate('layout/layout.phtml');
94
        $this->layout()->setTemplate('layout/layout.phtml');
94
        $viewModel = new ViewModel();
95
        $viewModel = new ViewModel();
95
        $viewModel->setTemplate('leaders-linked/group/index.phtml');
96
        $viewModel->setTemplate('leaders-linked/group/index.phtml');
96
        return $viewModel ;
-
 
97
        
97
        return $viewModel;
98
    }
98
    }
99
    
99
 
100
   
100
 
101
    /**
101
    /**
102
     * Presenta el perfil con las opciónes de edición de cada sección
102
     * Presenta el perfil con las opciónes de edición de cada sección
103
     * @return \Laminas\Http\Response|\Laminas\View\Model\ViewModel|\Laminas\View\Model\JsonModel
103
     * @return \Laminas\Http\Response|\Laminas\View\Model\ViewModel|\Laminas\View\Model\JsonModel
104
     */
104
     */
105
    public function viewAction()
105
    public function viewAction()
106
    {
106
    {
107
        $request = $this->getRequest();
107
        $request = $this->getRequest();
108
        
108
 
109
        $currentUserPlugin = $this->plugin('currentUserPlugin');
109
        $currentUserPlugin = $this->plugin('currentUserPlugin');
110
        $currentUser = $currentUserPlugin->getUser();
110
        $currentUser = $currentUserPlugin->getUser();
111
        
111
 
112
        $flashMessenger = $this->plugin('FlashMessenger');
112
        $flashMessenger = $this->plugin('FlashMessenger');
113
        $id = $this->params()->fromRoute('id');
113
        $id = $this->params()->fromRoute('id');
114
        
114
 
115
        $isJson = false;
115
        $isJson = false;
116
        
116
 
117
        $headers  = $request->getHeaders();
117
        $headers  = $request->getHeaders();
118
        if($headers->has('Accept')) {
118
        if ($headers->has('Accept')) {
119
            $accept = $headers->get('Accept');
119
            $accept = $headers->get('Accept');
120
            
120
 
121
            $prioritized = $accept->getPrioritized();
121
            $prioritized = $accept->getPrioritized();
122
            
122
 
123
            foreach($prioritized as $key => $value) {
123
            foreach ($prioritized as $key => $value) {
124
                $raw = trim($value->getRaw());
124
                $raw = trim($value->getRaw());
125
                
125
 
126
                if(!$isJson) {
126
                if (!$isJson) {
127
                    $isJson = strpos($raw, 'json');
127
                    $isJson = strpos($raw, 'json');
128
                }
-
 
129
                
128
                }
130
            }
129
            }
131
        }
130
        }
132
        
131
 
133
        if($isJson) {
132
        if ($isJson) {
134
            
133
 
135
            $flashMessenger = $this->plugin('FlashMessenger');
134
            $flashMessenger = $this->plugin('FlashMessenger');
136
            
135
 
137
            if(!$id) {
136
            if (!$id) {
138
                return new JsonModel([
137
                return new JsonModel([
139
                    'success' => false,
138
                    'success' => false,
140
                    'data' => 'ERROR_INVALID_PARAMETER'
139
                    'data' => 'ERROR_INVALID_PARAMETER'
141
                ]);
-
 
142
                
140
                ]);
143
            }
141
            }
144
            
142
 
145
            $groupMapper = GroupMapper::getInstance($this->adapter);
143
            $groupMapper = GroupMapper::getInstance($this->adapter);
146
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
144
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
147
            
145
 
148
            if(!$group) {
146
            if (!$group) {
149
                return new JsonModel([
147
                return new JsonModel([
150
                    'success' => false,
148
                    'success' => false,
151
                    'data' => 'ERROR_GROUP_NOT_FOUND'
149
                    'data' => 'ERROR_GROUP_NOT_FOUND'
152
                ]);
150
                ]);
153
            }
151
            }
154
            
152
 
155
            if($group->status != Group::STATUS_ACTIVE) {
153
            if ($group->status != Group::STATUS_ACTIVE) {
156
                return new JsonModel([
154
                return new JsonModel([
157
                    'success' => false,
155
                    'success' => false,
158
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
156
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
159
                ]);
157
                ]);
160
            }
158
            }
161
            
159
 
162
            $userBlockedMapper = UserBlockedMapper::getInstance($this->adapter);
160
            $userBlockedMapper = UserBlockedMapper::getInstance($this->adapter);
163
            $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($group->user_id, $currentUser->id);
161
            $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($group->user_id, $currentUser->id);
164
            
162
 
165
            if($userBlocked) {
163
            if ($userBlocked) {
166
                $flashMessenger->addErrorMessage('ERROR_UNAUTHORIZED');
164
                $flashMessenger->addErrorMessage('ERROR_UNAUTHORIZED');
167
                return $this->redirect()->toRoute('dashboard');
165
                return $this->redirect()->toRoute('dashboard');
168
            }
166
            }
169
            
167
 
170
            $userMapper = UserMapper::getInstance($this->adapter);
168
            $userMapper = UserMapper::getInstance($this->adapter);
171
            $ownerGroup = $userMapper->fetchOne($group->user_id);
169
            $ownerGroup = $userMapper->fetchOne($group->user_id);
172
            
170
 
173
            $values = [
171
            $values = [
174
                Group::ACCESSIBILITY_AUTO_JOIN => 'LABEL_AUTO_JOIN',
172
                Group::ACCESSIBILITY_AUTO_JOIN => 'LABEL_AUTO_JOIN',
175
                Group::ACCESSIBILITY_REQUEST_TO_JOIN => 'LABEL_REQUEST_TO_JOIN',
173
                Group::ACCESSIBILITY_REQUEST_TO_JOIN => 'LABEL_REQUEST_TO_JOIN',
176
                Group::ACCESSIBILITY_ADMIN_WILL_ADD => 'LABEL_ADMIN_WILL_ADD',
174
                Group::ACCESSIBILITY_ADMIN_WILL_ADD => 'LABEL_ADMIN_WILL_ADD',
177
            ];
175
            ];
178
            
176
 
179
            $accessibility = $values[$group->accessibility];
177
            $accessibility = $values[$group->accessibility];
180
            
178
 
181
            $values = [
179
            $values = [
182
                Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
180
                Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
183
                Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
181
                Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
184
            ];
182
            ];
185
            
183
 
186
            $privacy = $values[$group->privacy];
184
            $privacy = $values[$group->privacy];
187
            
185
 
188
            $industryMapper = IndustryMapper::getInstance($this->adapter);
186
            $industryMapper = IndustryMapper::getInstance($this->adapter);
189
            $record = $industryMapper->fetchOne($group->industry_id);
187
            $record = $industryMapper->fetchOne($group->industry_id);
190
            
188
 
191
            $industry = $record->name;
189
            $industry = $record->name;
192
            
190
 
193
            $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
191
            $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
194
            $record = $groupTypeMapper->fetchOne($group->type_id);
192
            $record = $groupTypeMapper->fetchOne($group->type_id);
195
            
193
 
196
            $group_type = $record->name;
194
            $group_type = $record->name;
197
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
195
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
198
            
196
 
199
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $group->user_id);
197
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $group->user_id);
200
            if($groupMember) {
198
            if ($groupMember) {
201
                
199
 
202
                if($groupMember->status != GroupMember::STATUS_ACCEPTED) {
200
                if ($groupMember->status != GroupMember::STATUS_ACCEPTED) {
203
                    $groupMember->status = $groupMember::STATUS_ACCEPTED;
201
                    $groupMember->status = $groupMember::STATUS_ACCEPTED;
204
                    $groupMemberMapper->update($groupMember);
202
                    $groupMemberMapper->update($groupMember);
205
                }
-
 
206
                
203
                }
207
            } else {
204
            } else {
208
                $groupMember = new GroupMember();
205
                $groupMember = new GroupMember();
209
                $groupMember->user_id = $group->user_id;
206
                $groupMember->user_id = $group->user_id;
210
                $groupMember->group_id = $group->id;
207
                $groupMember->group_id = $group->id;
211
                $groupMember->status = GroupMember::STATUS_ACCEPTED;
208
                $groupMember->status = GroupMember::STATUS_ACCEPTED;
212
                
209
 
213
                $groupMemberMapper->insert($groupMember);
210
                $groupMemberMapper->insert($groupMember);
214
            }
211
            }
215
            
212
 
216
            
213
 
217
            $total_members = $groupMemberMapper->fetchTotalByGroupId($group->id);
214
            $total_members = $groupMemberMapper->fetchTotalByGroupId($group->id);
218
            
215
 
219
            
216
 
220
            $member = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
217
            $member = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
221
            $show_feeds = false;
218
            $show_feeds = false;
222
            if($member) {
219
            if ($member) {
223
                if($member->status == GroupMember::STATUS_ACCEPTED || $member->status == GroupMember::STATUS_AUTO_JOIN) {
220
                if ($member->status == GroupMember::STATUS_ACCEPTED || $member->status == GroupMember::STATUS_AUTO_JOIN) {
224
                    $show_feeds = true;
221
                    $show_feeds = true;
225
                }
222
                }
226
            }
223
            }
227
            
224
 
228
            $queryMapper = QueryMapper::getInstance($this->adapter);
225
            $queryMapper = QueryMapper::getInstance($this->adapter);
229
            $select = $queryMapper->getSql()->select();
226
            $select = $queryMapper->getSql()->select();
230
            $select->columns(['user_id' => 'id',  'user_uuid' => 'uuid', 'first_name','last_name', 'image']);
227
            $select->columns(['user_id' => 'id',  'user_uuid' => 'uuid', 'first_name', 'last_name', 'image']);
231
            $select->from(['u' => UserMapper::_TABLE]);
228
            $select->from(['u' => UserMapper::_TABLE]);
232
            $select->join(['tgm' => GroupMemberMapper::_TABLE], 'tgm.user_id = u.id',[]);
229
            $select->join(['tgm' => GroupMemberMapper::_TABLE], 'tgm.user_id = u.id', []);
233
            $select->join(['up' => UserProfileMapper::_TABLE], 'up.user_id = u.id',['user_profile_id' => 'id', 'user_profile_uuid' => 'uuid']);
230
            $select->join(['up' => UserProfileMapper::_TABLE], 'up.user_id = u.id', ['user_profile_id' => 'id', 'user_profile_uuid' => 'uuid']);
234
            $select->where->equalTo('u.status', User::STATUS_ACTIVE);
231
            $select->where->equalTo('u.status', User::STATUS_ACTIVE);
235
            $select->where->equalTo('tgm.status',GroupMember::STATUS_ACCEPTED);
232
            $select->where->equalTo('tgm.status', GroupMember::STATUS_ACCEPTED);
236
            
233
 
237
            // echo $select->getSqlString($this->adapter->platform); exit;
234
            // echo $select->getSqlString($this->adapter->platform); exit;
238
            
235
 
239
            $members = [];
236
            $members = [];
240
            
237
 
241
            $records = $queryMapper->fetchAll($select);
238
            $records = $queryMapper->fetchAll($select);
242
            foreach($records as $record)
-
 
243
            {
239
            foreach ($records as $record) {
244
                $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($record['user_id'], $currentUser->id);
240
                $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($record['user_id'], $currentUser->id);
245
                
241
 
246
                array_push($members, [
242
                array_push($members, [
247
                    'name' => trim($record['first_name'] . ' ' . $record['last_name']),
243
                    'name' => trim($record['first_name'] . ' ' . $record['last_name']),
248
                    'image' => $this->url()->fromRoute('storage', ['code' => $record['user_uuid'], 'type' => 'user', 'filename' => $record['image'] ]),
244
                    'image' => $this->url()->fromRoute('storage', ['code' => $record['user_uuid'], 'type' => 'user', 'filename' => $record['image']]),
249
                    'link_profile' => $userBlocked ? '' : $this->url()->fromRoute('profile/view',['id' => $record['user_profile_uuid'] ])
245
                    'link_profile' => $userBlocked ? '' : $this->url()->fromRoute('profile/view', ['id' => $record['user_profile_uuid']])
250
                    
246
 
251
                ]);
247
                ]);
252
            }
248
            }
253
            
249
 
254
            
250
 
255
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
251
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
256
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
252
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
257
 
253
 
258
            $data = [
254
            $data = [
259
                'total_members'         => $total_members,
255
                'total_members'         => $total_members,
260
                'accessibility'         => $accessibility ,
256
                'accessibility'         => $accessibility,
261
                'privacy'               => $privacy,
257
                'privacy'               => $privacy,
262
                'industry'              => $industry,
258
                'industry'              => $industry,
263
                'group_id'              => $group->id,
259
                'group_id'              => $group->id,
264
                'group_type'            => $group_type,
260
                'group_type'            => $group_type,
Línea 273... Línea 269...
273
                'link_request' => '',
269
                'link_request' => '',
274
                'link_accept' => '',
270
                'link_accept' => '',
275
                'link_cancel' => '',
271
                'link_cancel' => '',
276
                'link_leave' => '',
272
                'link_leave' => '',
277
            ];
273
            ];
278
            
274
 
279
            
275
 
280
            
276
 
281
            if($groupMember) {
277
            if ($groupMember) {
282
                if($ownerGroup->id != $groupMember->user_id && $groupMember->status == GroupMember::STATUS_ACCEPTED || $groupMember->status == GroupMember::STATUS_AUTO_JOIN) {
278
                if ($ownerGroup->id != $groupMember->user_id && $groupMember->status == GroupMember::STATUS_ACCEPTED || $groupMember->status == GroupMember::STATUS_AUTO_JOIN) {
283
                    $data['link_leave'] = $this->url()->fromRoute('group/leave', ['id' => $group->uuid] );
279
                    $data['link_leave'] = $this->url()->fromRoute('group/leave', ['id' => $group->uuid]);
284
                }
280
                }
285
                if($groupMember->status == GroupMember::STATUS_ADDED_BY_ADMIN) {
281
                if ($groupMember->status == GroupMember::STATUS_ADDED_BY_ADMIN) {
286
                    $data['link_accept'] = $this->url()->fromRoute('group/accept', ['id' => $group->uuid] );
282
                    $data['link_accept'] = $this->url()->fromRoute('group/accept', ['id' => $group->uuid]);
287
                    $data['link_cancel'] = $this->url()->fromRoute('group/cancel', ['id' => $group->uuid] );
283
                    $data['link_cancel'] = $this->url()->fromRoute('group/cancel', ['id' => $group->uuid]);
288
                }
284
                }
289
                if( $groupMember->status == GroupMember::STATUS_JOINING_REQUESTED) {
285
                if ($groupMember->status == GroupMember::STATUS_JOINING_REQUESTED) {
290
                    $data['link_cancel'] = $this->url()->fromRoute('group/cancel', ['id' => $group->uuid] );
286
                    $data['link_cancel'] = $this->url()->fromRoute('group/cancel', ['id' => $group->uuid]);
291
                }
287
                }
292
                if(in_array($group->accessibility, [ Group::ACCESSIBILITY_AUTO_JOIN, Group::ACCESSIBILITY_REQUEST_TO_JOIN]) && $groupMember->status == GroupMember::STATUS_CANCELLED) {
288
                if (in_array($group->accessibility, [Group::ACCESSIBILITY_AUTO_JOIN, Group::ACCESSIBILITY_REQUEST_TO_JOIN]) && $groupMember->status == GroupMember::STATUS_CANCELLED) {
Línea 293... Línea 289...
293
 
289
 
294
                    $userBlockedMapper = UserBlockedMapper::getInstance($this->adapter);
290
                    $userBlockedMapper = UserBlockedMapper::getInstance($this->adapter);
295
                    $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($group->id, $currentUser->id);
291
                    $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($group->id, $currentUser->id);
296
                    
292
 
297
                    if(!$userBlocked) {
293
                    if (!$userBlocked) {
298
                        $data['link_request'] =$this->url()->fromRoute('group/request', ['id' => $group->uuid] );;
294
                        $data['link_request'] = $this->url()->fromRoute('group/request', ['id' => $group->uuid]);;
299
                    }
295
                    }
300
                }
296
                }
301
            } else {
297
            } else {
302
                
298
 
303
                if(in_array($group->accessibility, [ Group::ACCESSIBILITY_AUTO_JOIN, Group::ACCESSIBILITY_REQUEST_TO_JOIN])) {
299
                if (in_array($group->accessibility, [Group::ACCESSIBILITY_AUTO_JOIN, Group::ACCESSIBILITY_REQUEST_TO_JOIN])) {
304
                
300
 
305
                    $userBlockedMapper = UserBlockedMapper::getInstance($this->adapter);
301
                    $userBlockedMapper = UserBlockedMapper::getInstance($this->adapter);
306
                    $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($group->id, $currentUser->id);
302
                    $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($group->id, $currentUser->id);
307
                    
303
 
308
                    if(!$userBlocked) {
304
                    if (!$userBlocked) {
309
                        $data['link_request'] = $this->url()->fromRoute('group/request', ['id' => $group->uuid] );;
305
                        $data['link_request'] = $this->url()->fromRoute('group/request', ['id' => $group->uuid]);;
310
                    }
306
                    }
311
                }
-
 
312
                
307
                }
313
            }
308
            }
314
            
309
 
315
            
310
 
316
            return new JsonModel([
311
            return new JsonModel([
317
                'success'   => true,
312
                'success'   => true,
318
                'data'      => $data
313
                'data'      => $data
319
            ]);
-
 
320
            
-
 
321
            
-
 
322
            
314
            ]);
323
        } else {
315
        } else {
324
            
316
 
325
      
317
 
326
            
318
 
327
            if(!$id) {
319
            if (!$id) {
328
                $flashMessenger->addErrorMessage('ERROR_INVALID_PARAMETER');
320
                $flashMessenger->addErrorMessage('ERROR_INVALID_PARAMETER');
329
                return $this->redirect()->toRoute('dashboard');
321
                return $this->redirect()->toRoute('dashboard');
330
            }
322
            }
331
            
323
 
332
            $groupMapper = GroupMapper::getInstance($this->adapter);
324
            $groupMapper = GroupMapper::getInstance($this->adapter);
333
            $group = $groupMapper->fetchOneByUuid($id);
325
            $group = $groupMapper->fetchOneByUuid($id);
334
            if(!$group) {
326
            if (!$group) {
335
                $flashMessenger->addErrorMessage('ERROR_RECORD_NOT_FOUND');
327
                $flashMessenger->addErrorMessage('ERROR_RECORD_NOT_FOUND');
336
                return $this->redirect()->toRoute('dashboard');
328
                return $this->redirect()->toRoute('dashboard');
337
            }
329
            }
338
            
330
 
339
            
331
 
340
            
332
 
341
            
333
 
342
            
334
 
343
            
335
 
344
            $userBlockedMapper = UserBlockedMapper::getInstance($this->adapter);
336
            $userBlockedMapper = UserBlockedMapper::getInstance($this->adapter);
345
            $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($group->user_id, $currentUser->id);
337
            $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($group->user_id, $currentUser->id);
346
            
338
 
347
            if($userBlocked) {
339
            if ($userBlocked) {
348
                $flashMessenger->addErrorMessage('ERROR_UNAUTHORIZED');
340
                $flashMessenger->addErrorMessage('ERROR_UNAUTHORIZED');
349
                return $this->redirect()->toRoute('dashboard');
341
                return $this->redirect()->toRoute('dashboard');
350
            }
342
            }
351
            
343
 
352
            $userMapper = UserMapper::getInstance($this->adapter);
344
            $userMapper = UserMapper::getInstance($this->adapter);
353
            $ownerGroup = $userMapper->fetchOne($group->user_id);
345
            $ownerGroup = $userMapper->fetchOne($group->user_id);
354
    
346
 
355
            $values = [
347
            $values = [
356
                Group::ACCESSIBILITY_AUTO_JOIN => 'LABEL_AUTO_JOIN',
348
                Group::ACCESSIBILITY_AUTO_JOIN => 'LABEL_AUTO_JOIN',
357
                Group::ACCESSIBILITY_REQUEST_TO_JOIN => 'LABEL_REQUEST_TO_JOIN',
349
                Group::ACCESSIBILITY_REQUEST_TO_JOIN => 'LABEL_REQUEST_TO_JOIN',
358
                Group::ACCESSIBILITY_ADMIN_WILL_ADD => 'LABEL_ADMIN_WILL_ADD',
350
                Group::ACCESSIBILITY_ADMIN_WILL_ADD => 'LABEL_ADMIN_WILL_ADD',
359
            ];
351
            ];
360
            
352
 
361
            $accessibility = $values[$group->accessibility];
353
            $accessibility = $values[$group->accessibility];
362
            
354
 
363
            $values = [
355
            $values = [
364
                Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
356
                Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
365
                Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
357
                Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
366
            ];
358
            ];
367
            
359
 
368
            $privacy = $values[$group->privacy];
360
            $privacy = $values[$group->privacy];
369
            
361
 
370
            $industryMapper = IndustryMapper::getInstance($this->adapter);
362
            $industryMapper = IndustryMapper::getInstance($this->adapter);
371
            $record = $industryMapper->fetchOne($group->industry_id);
363
            $record = $industryMapper->fetchOne($group->industry_id);
372
            
364
 
373
            $industry = $record->name;
365
            $industry = $record->name;
374
            
366
 
375
            $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
367
            $groupTypeMapper = GroupTypeMapper::getInstance($this->adapter);
376
            $record = $groupTypeMapper->fetchOne($group->type_id);
368
            $record = $groupTypeMapper->fetchOne($group->type_id);
377
            
369
 
378
            $group_type = $record->name;
370
            $group_type = $record->name;
379
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
371
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
380
            
372
 
381
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $group->user_id);
373
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $group->user_id);
382
            if($groupMember) {
374
            if ($groupMember) {
383
                
375
 
384
                if($groupMember->status != GroupMember::STATUS_ACCEPTED) {
376
                if ($groupMember->status != GroupMember::STATUS_ACCEPTED) {
385
                    $groupMember->status = $groupMember::STATUS_ACCEPTED;
377
                    $groupMember->status = $groupMember::STATUS_ACCEPTED;
386
                    $groupMemberMapper->update($groupMember);
378
                    $groupMemberMapper->update($groupMember);
387
                }
-
 
388
                
379
                }
389
            } else {
380
            } else {
390
                $groupMember = new GroupMember();
381
                $groupMember = new GroupMember();
391
                $groupMember->user_id = $group->user_id;
382
                $groupMember->user_id = $group->user_id;
392
                $groupMember->group_id = $group->id;
383
                $groupMember->group_id = $group->id;
393
                $groupMember->status = GroupMember::STATUS_ACCEPTED;
384
                $groupMember->status = GroupMember::STATUS_ACCEPTED;
394
                
385
 
395
                $groupMemberMapper->insert($groupMember);
386
                $groupMemberMapper->insert($groupMember);
396
            }
387
            }
397
            
388
 
398
            
389
 
399
            $total_members = $groupMemberMapper->fetchTotalByGroupId($group->id);
390
            $total_members = $groupMemberMapper->fetchTotalByGroupId($group->id);
400
            
391
 
401
            
392
 
402
            $member = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
393
            $member = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
403
            $show_feeds = false;
394
            $show_feeds = false;
404
            if($member) {
395
            if ($member) {
405
                if($member->status == GroupMember::STATUS_ACCEPTED || $member->status == GroupMember::STATUS_AUTO_JOIN) {
396
                if ($member->status == GroupMember::STATUS_ACCEPTED || $member->status == GroupMember::STATUS_AUTO_JOIN) {
406
                    $show_feeds = true;
397
                    $show_feeds = true;
407
                }
398
                }
408
            }
399
            }
409
            
400
 
410
            $queryMapper = QueryMapper::getInstance($this->adapter);
401
            $queryMapper = QueryMapper::getInstance($this->adapter);
411
            $select = $queryMapper->getSql()->select();
402
            $select = $queryMapper->getSql()->select();
412
            $select->columns(['user_id' => 'id',  'user_uuid' => 'uuid', 'first_name','last_name', 'image']);
403
            $select->columns(['user_id' => 'id',  'user_uuid' => 'uuid', 'first_name', 'last_name', 'image']);
413
            $select->from(['u' => UserMapper::_TABLE]);
404
            $select->from(['u' => UserMapper::_TABLE]);
414
            $select->join(['tgm' => GroupMemberMapper::_TABLE], 'tgm.user_id = u.id',[]);
405
            $select->join(['tgm' => GroupMemberMapper::_TABLE], 'tgm.user_id = u.id', []);
415
            $select->join(['up' => UserProfileMapper::_TABLE], 'up.user_id = u.id',['user_profile_id' => 'id', 'user_profile_uuid' => 'uuid']);
406
            $select->join(['up' => UserProfileMapper::_TABLE], 'up.user_id = u.id', ['user_profile_id' => 'id', 'user_profile_uuid' => 'uuid']);
416
            $select->where->equalTo('u.status', User::STATUS_ACTIVE);
407
            $select->where->equalTo('u.status', User::STATUS_ACTIVE);
417
            $select->where->equalTo('tgm.status',GroupMember::STATUS_ACCEPTED);
408
            $select->where->equalTo('tgm.status', GroupMember::STATUS_ACCEPTED);
418
            
409
 
419
           // echo $select->getSqlString($this->adapter->platform); exit;
410
            // echo $select->getSqlString($this->adapter->platform); exit;
420
            
411
 
421
            $members = [];
412
            $members = [];
422
            
413
 
423
            $records = $queryMapper->fetchAll($select);
414
            $records = $queryMapper->fetchAll($select);
424
            foreach($records as $record) 
-
 
425
            {
415
            foreach ($records as $record) {
426
                $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($record['user_id'], $currentUser->id);
416
                $userBlocked = $userBlockedMapper->fetchOneByUserIdAndBlockedId($record['user_id'], $currentUser->id);
427
                
417
 
428
                array_push($members, [
418
                array_push($members, [
429
                    'name' => trim($record['first_name'] . ' ' . $record['last_name']),
419
                    'name' => trim($record['first_name'] . ' ' . $record['last_name']),
430
                    'image' => $this->url()->fromRoute('storage', ['code' => $record['user_uuid'], 'type' => 'user', 'filename' => $record['image'] ]),
420
                    'image' => $this->url()->fromRoute('storage', ['code' => $record['user_uuid'], 'type' => 'user', 'filename' => $record['image']]),
431
                    'link_profile' => $userBlocked ? '' : $this->url()->fromRoute('profile/view',['id' => $record['user_profile_uuid'] ])
421
                    'link_profile' => $userBlocked ? '' : $this->url()->fromRoute('profile/view', ['id' => $record['user_profile_uuid']])
432
                    
422
 
433
                ]);
423
                ]);
434
            }
424
            }
435
    
425
 
436
            $formFeed = new CreateGroupCompanyForm();
426
            $formFeed = new CreateGroupCompanyForm();
437
            $formShare = new ShareGroupCompanyForm();
427
            $formShare = new ShareGroupCompanyForm();
438
            
428
 
439
            
429
 
440
            $this->layout()->setTemplate('layout/layout.phtml');
430
            $this->layout()->setTemplate('layout/layout.phtml');
441
            $viewModel = new ViewModel();
431
            $viewModel = new ViewModel();
442
            
432
 
443
            if($show_feeds) {
433
            if ($show_feeds) {
444
                $viewModel->setTemplate('leaders-linked/group/view-with-feeds.phtml');
434
                $viewModel->setTemplate('leaders-linked/group/view-with-feeds.phtml');
445
            } else {
435
            } else {
446
                $viewModel->setTemplate('leaders-linked/group/view-without-feeds.phtml');
436
                $viewModel->setTemplate('leaders-linked/group/view-without-feeds.phtml');
447
            }
437
            }
448
            
438
 
449
            
439
 
450
            
440
 
451
            $notificationMapper = NotificationMapper::getInstance($this->adapter);
441
            $notificationMapper = NotificationMapper::getInstance($this->adapter);
452
            $notificationMapper->markAllNotificationsAsReadByUserIdAndGroupId($currentUser->id, $group->id);
-
 
453
            
-
 
454
            
-
 
Línea -... Línea 442...
-
 
442
            $notificationMapper->markAllNotificationsAsReadByUserIdAndGroupId($currentUser->id, $group->id);
455
            
443
 
-
 
444
 
-
 
445
 
456
 
446
 
457
            
447
 
458
            
448
 
459
            $viewModel->setVariables([
449
            $viewModel->setVariables([
460
                'user_id'               => $currentUser->id,
450
                'user_id'               => $currentUser->id,
461
                'total_members'         => $total_members,
451
                'total_members'         => $total_members,
462
                'accessibility'         => $accessibility ,
452
                'accessibility'         => $accessibility,
463
                'privacy'               => $privacy,
453
                'privacy'               => $privacy,
464
                'industry'              => $industry,
454
                'industry'              => $industry,
465
                'group_id'              => $group->id,
455
                'group_id'              => $group->id,
Línea 474... Línea 464...
474
                'formShare'             => $formShare,
464
                'formShare'             => $formShare,
475
                'members'               => $members,
465
                'members'               => $members,
476
                'link_inmail'           => $ownerGroup->id != $currentUser->id ? $this->url()->fromRoute('inmail', ['id' => $ownerGroup->uuid]) : '',
466
                'link_inmail'           => $ownerGroup->id != $currentUser->id ? $this->url()->fromRoute('inmail', ['id' => $ownerGroup->uuid]) : '',
477
                'owner_id'              => $ownerGroup->id,
467
                'owner_id'              => $ownerGroup->id,
478
                'owner_first_name'      => $ownerGroup->first_name,
468
                'owner_first_name'      => $ownerGroup->first_name,
479
                'owner_last_name'       => $ownerGroup->last_name, 
469
                'owner_last_name'       => $ownerGroup->last_name,
480
                'owner_image'           => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $ownerGroup->uuid, 'filename' => $ownerGroup->image ]),
470
                'owner_image'           => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $ownerGroup->uuid, 'filename' => $ownerGroup->image]),
481
                
471
 
482
            ]);
472
            ]);
483
            return $viewModel ;
473
            return $viewModel;
484
        }
474
        }
485
        
-
 
486
    }
475
    }
487
    
476
 
488
    public function leaveAction()
477
    public function leaveAction()
489
    {
478
    {
490
        $flashMessenger = $this->plugin('FlashMessenger');
479
        $flashMessenger = $this->plugin('FlashMessenger');
491
        $currentUserPlugin = $this->plugin('currentUserPlugin');
480
        $currentUserPlugin = $this->plugin('currentUserPlugin');
492
        $currentUser = $currentUserPlugin->getUser();
481
        $currentUser = $currentUserPlugin->getUser();
493
        
482
 
494
        $request = $this->getRequest();
483
        $request = $this->getRequest();
495
        if($request->isPost()) {
484
        if ($request->isPost()) {
496
            $id = $this->params()->fromRoute('id');
485
            $id = $this->params()->fromRoute('id');
497
            $flash =  filter_var($this->params()->fromPost('flash', 'false'), FILTER_SANITIZE_STRING);
486
            $flash =  filter_var($this->params()->fromPost('flash', 'false'), FILTER_SANITIZE_STRING);
498
            $flash = $flash === 'true'? true: false;
487
            $flash = $flash === 'true' ? true : false;
499
            
488
 
500
            if(!$id) {
489
            if (!$id) {
501
                return new JsonModel([
490
                return new JsonModel([
502
                    'success' => false,
491
                    'success' => false,
503
                    'data' => 'ERROR_INVALID_PARAMETER'
492
                    'data' => 'ERROR_INVALID_PARAMETER'
504
                ]);
493
                ]);
505
                
-
 
506
            }
494
            }
507
            
495
 
508
            $groupMapper = GroupMapper::getInstance($this->adapter);
496
            $groupMapper = GroupMapper::getInstance($this->adapter);
509
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
497
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
510
            
498
 
511
            if(!$group) {
499
            if (!$group) {
512
                return new JsonModel([
500
                return new JsonModel([
513
                    'success' => false,
501
                    'success' => false,
514
                    'data' => 'ERROR_GROUP_NOT_FOUND'
502
                    'data' => 'ERROR_GROUP_NOT_FOUND'
515
                ]);
503
                ]);
516
            }
504
            }
517
            
505
 
518
            if($group->status != Group::STATUS_ACTIVE) {
506
            if ($group->status != Group::STATUS_ACTIVE) {
519
                return new JsonModel([
507
                return new JsonModel([
520
                    'success' => false,
508
                    'success' => false,
521
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
509
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
522
                ]);
510
                ]);
523
            }
511
            }
524
            
512
 
525
            if($group->user_id == $currentUser->id) {
513
            if ($group->user_id == $currentUser->id) {
526
                return new JsonModel([
514
                return new JsonModel([
527
                    'success' => false,
515
                    'success' => false,
528
                    'data' => 'ERROR_GROUP_YOU_ARE_THE_OWNER_OF_THIS_GROUP'
516
                    'data' => 'ERROR_GROUP_YOU_ARE_THE_OWNER_OF_THIS_GROUP'
529
                ]);
517
                ]);
530
            }
518
            }
531
            
519
 
532
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
520
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
533
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
521
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
534
            if($groupMember) {
522
            if ($groupMember) {
535
                
523
 
536
                if($groupMember->status == GroupMember::STATUS_ACCEPTED ||$groupMember->status == GroupMember::STATUS_AUTO_JOIN ) {
524
                if ($groupMember->status == GroupMember::STATUS_ACCEPTED || $groupMember->status == GroupMember::STATUS_AUTO_JOIN) {
537
                    
525
 
538
                    $groupMember->status = GroupMember::STATUS_CANCELLED;
526
                    $groupMember->status = GroupMember::STATUS_CANCELLED;
539
                    if($groupMemberMapper->update($groupMember)) {
527
                    if ($groupMemberMapper->update($groupMember)) {
540
                        if($flash) {
528
                        if ($flash) {
541
                        
529
 
542
                            $flashMessenger->addSuccessMessage('LABEL_GROUP_YOU_HAVE_LEFT_THE_GROUP');
530
                            $flashMessenger->addSuccessMessage('LABEL_GROUP_YOU_HAVE_LEFT_THE_GROUP');
543
                            
531
 
544
                            return new JsonModel([
532
                            return new JsonModel([
545
                                'success' => true,
533
                                'success' => true,
546
                                'data' =>  [
534
                                'data' =>  [
547
                                    'message' => 'LABEL_GROUP_YOU_HAVE_LEFT_THE_GROUP',
535
                                    'message' => 'LABEL_GROUP_YOU_HAVE_LEFT_THE_GROUP',
548
                                    'reload' => true
536
                                    'reload' => true
549
                                 ]   
537
                                ]
550
                            ]);
538
                            ]);
551
                        } else {
539
                        } else {
552
                            return new JsonModel([
540
                            return new JsonModel([
553
                                'success' => true,
541
                                'success' => true,
554
                                'data' =>  'LABEL_GROUP_YOU_HAVE_LEFT_THE_GROUP',
542
                                'data' =>  'LABEL_GROUP_YOU_HAVE_LEFT_THE_GROUP',
555
                            ]);
543
                            ]);
556
                        }
544
                        }
557
                        
-
 
558
                    } else {
545
                    } else {
559
                        return new JsonModel([
546
                        return new JsonModel([
560
                            'success' => false,
547
                            'success' => false,
561
                            'data' => $groupMemberMapper->getError()
548
                            'data' => $groupMemberMapper->getError()
562
                        ]);
549
                        ]);
563
                    }
550
                    }
564
                    
-
 
565
                    
-
 
566
                } else {
551
                } else {
567
                    return new JsonModel([
552
                    return new JsonModel([
568
                        'success' => false,
553
                        'success' => false,
569
                        'data' => 'ERROR_GROUP_THERE_IS_NO_PENDING_REQUEST_TO_CANCEL'
554
                        'data' => 'ERROR_GROUP_THERE_IS_NO_PENDING_REQUEST_TO_CANCEL'
570
                    ]);
555
                    ]);
571
                }
556
                }
572
                
-
 
573
            } else {
557
            } else {
574
                return new JsonModel([
558
                return new JsonModel([
575
                    'success' => false,
559
                    'success' => false,
576
                    'data' => 'ERROR_GROUP_YOU_NOT_MEMBER'
560
                    'data' => 'ERROR_GROUP_YOU_NOT_MEMBER'
577
                ]);
561
                ]);
578
            }
562
            }
579
            
-
 
580
            
-
 
581
            
-
 
582
            
-
 
583
        } else {
563
        } else {
584
            
564
 
585
            return new JsonModel([
565
            return new JsonModel([
586
                'success' => false,
566
                'success' => false,
587
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
567
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
588
            ]);
568
            ]);
589
        }
569
        }
590
    }
570
    }
591
    
571
 
592
    public function cancelAction()
572
    public function cancelAction()
593
    {
573
    {
594
        $flashMessenger = $this->plugin('FlashMessenger');
574
        $flashMessenger = $this->plugin('FlashMessenger');
595
        $currentUserPlugin = $this->plugin('currentUserPlugin');
575
        $currentUserPlugin = $this->plugin('currentUserPlugin');
596
        $currentUser = $currentUserPlugin->getUser();
576
        $currentUser = $currentUserPlugin->getUser();
597
        
577
 
598
        $request = $this->getRequest();
578
        $request = $this->getRequest();
599
        if($request->isPost()) {
579
        if ($request->isPost()) {
600
            $id = $this->params()->fromRoute('id');
580
            $id = $this->params()->fromRoute('id');
601
            $flash =  filter_var($this->params()->fromPost('flash', 'false'), FILTER_SANITIZE_STRING);
581
            $flash =  filter_var($this->params()->fromPost('flash', 'false'), FILTER_SANITIZE_STRING);
602
            $flash = $flash === 'true'? true: false;
582
            $flash = $flash === 'true' ? true : false;
603
            
583
 
604
            if(!$id) {
584
            if (!$id) {
605
                return new JsonModel([
585
                return new JsonModel([
606
                    'success' => false,
586
                    'success' => false,
607
                    'data' => 'ERROR_INVALID_PARAMETER'
587
                    'data' => 'ERROR_INVALID_PARAMETER'
608
                ]);
588
                ]);
609
                
-
 
610
            }
589
            }
611
            
590
 
612
            $groupMapper = GroupMapper::getInstance($this->adapter);
591
            $groupMapper = GroupMapper::getInstance($this->adapter);
613
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
592
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
614
            
593
 
615
            if(!$group) {
594
            if (!$group) {
616
                return new JsonModel([
595
                return new JsonModel([
617
                    'success' => false,
596
                    'success' => false,
618
                    'data' => 'ERROR_GROUP_NOT_FOUND'
597
                    'data' => 'ERROR_GROUP_NOT_FOUND'
619
                ]);
598
                ]);
620
            }
599
            }
621
            
600
 
622
            if($group->status != Group::STATUS_ACTIVE) {
601
            if ($group->status != Group::STATUS_ACTIVE) {
623
                return new JsonModel([
602
                return new JsonModel([
624
                    'success' => false,
603
                    'success' => false,
625
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
604
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
626
                ]);
605
                ]);
627
            }
606
            }
628
            
607
 
629
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
608
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
630
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
609
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
631
            if($groupMember) {
610
            if ($groupMember) {
632
               
611
 
633
                if($groupMember->status == GroupMember::STATUS_JOINING_REQUESTED || $groupMember->status == GroupMember::STATUS_ADDED_BY_ADMIN) {
612
                if ($groupMember->status == GroupMember::STATUS_JOINING_REQUESTED || $groupMember->status == GroupMember::STATUS_ADDED_BY_ADMIN) {
634
               
613
 
635
                    $groupMember->status = GroupMember::STATUS_CANCELLED;
614
                    $groupMember->status = GroupMember::STATUS_CANCELLED;
636
                    if($groupMemberMapper->update($groupMember)) {
615
                    if ($groupMemberMapper->update($groupMember)) {
637
                        if($flash) {
616
                        if ($flash) {
638
                            $flashMessenger->addSuccessMessage('LABEL_GROUP_REQUEST_CANCELLED');
617
                            $flashMessenger->addSuccessMessage('LABEL_GROUP_REQUEST_CANCELLED');
639
                            
618
 
640
                            return new JsonModel([
619
                            return new JsonModel([
641
                                'success' => true,
620
                                'success' => true,
642
                                'data' =>  [
621
                                'data' =>  [
643
                                    'message' => 'LABEL_GROUP_REQUEST_CANCELLED',
622
                                    'message' => 'LABEL_GROUP_REQUEST_CANCELLED',
644
                                    'reload' => true
623
                                    'reload' => true
645
                                 ]  
624
                                ]
646
                            ]);
625
                            ]);
647
                            
-
 
648
                        } else {
626
                        } else {
649
                            return new JsonModel([
627
                            return new JsonModel([
650
                                'success' => true,
628
                                'success' => true,
651
                                'data' =>  'LABEL_GROUP_REQUEST_CANCELLED'
629
                                'data' =>  'LABEL_GROUP_REQUEST_CANCELLED'
652
                            ]);
630
                            ]);
653
                        }
631
                        }
654
                        
-
 
655
                        
-
 
656
                        
-
 
657
                    } else {
632
                    } else {
658
                        return new JsonModel([
633
                        return new JsonModel([
659
                            'success' => false,
634
                            'success' => false,
660
                            'data' => $groupMemberMapper->getError()
635
                            'data' => $groupMemberMapper->getError()
661
                        ]);
636
                        ]);
662
                    }
637
                    }
663
                    
-
 
664
                    
-
 
665
                } else {
638
                } else {
666
                    return new JsonModel([
639
                    return new JsonModel([
667
                        'success' => false,
640
                        'success' => false,
668
                        'data' => 'ERROR_GROUP_THERE_IS_NO_PENDING_REQUEST_TO_CANCEL'
641
                        'data' => 'ERROR_GROUP_THERE_IS_NO_PENDING_REQUEST_TO_CANCEL'
669
                    ]);
642
                    ]);
670
                }
643
                }
671
 
-
 
672
            } else {
644
            } else {
673
                return new JsonModel([
645
                return new JsonModel([
674
                    'success' => false,
646
                    'success' => false,
675
                    'data' => 'ERROR_GROUP_YOU_NOT_MEMBER'
647
                    'data' => 'ERROR_GROUP_YOU_NOT_MEMBER'
676
                ]);
648
                ]);
677
            }
649
            }
678
          
-
 
679
 
-
 
680
            
-
 
681
            
-
 
682
        } else {
650
        } else {
683
            
651
 
684
            return new JsonModel([
652
            return new JsonModel([
685
                'success' => false,
653
                'success' => false,
686
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
654
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
687
            ]);
655
            ]);
688
        }
656
        }
689
    }
657
    }
690
    
658
 
691
   
659
 
692
    public function rejectAction()
660
    public function rejectAction()
693
    {
661
    {
694
        $flashMessenger = $this->plugin('FlashMessenger');
662
        $flashMessenger = $this->plugin('FlashMessenger');
695
        $currentUserPlugin = $this->plugin('currentUserPlugin');
663
        $currentUserPlugin = $this->plugin('currentUserPlugin');
696
        $currentUser = $currentUserPlugin->getUser();
664
        $currentUser = $currentUserPlugin->getUser();
697
        
665
 
698
        $request = $this->getRequest();
666
        $request = $this->getRequest();
699
        if($request->isPost()) {
667
        if ($request->isPost()) {
700
            $id = $this->params()->fromRoute('id');
668
            $id = $this->params()->fromRoute('id');
701
            $flash =  filter_var($this->params()->fromPost('flash', 'false'), FILTER_SANITIZE_STRING);
669
            $flash =  filter_var($this->params()->fromPost('flash', 'false'), FILTER_SANITIZE_STRING);
702
            $flash = $flash === 'true'? true: false;
670
            $flash = $flash === 'true' ? true : false;
703
            
671
 
704
            if(!$id) {
672
            if (!$id) {
705
                return new JsonModel([
673
                return new JsonModel([
706
                    'success' => false,
674
                    'success' => false,
707
                    'data' => 'ERROR_INVALID_PARAMETER'
675
                    'data' => 'ERROR_INVALID_PARAMETER'
708
                ]);
676
                ]);
709
                
-
 
710
            }
677
            }
711
            
678
 
712
            $groupMapper = GroupMapper::getInstance($this->adapter);
679
            $groupMapper = GroupMapper::getInstance($this->adapter);
713
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
680
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
714
            
681
 
715
            if(!$group) {
682
            if (!$group) {
716
                return new JsonModel([
683
                return new JsonModel([
717
                    'success' => false,
684
                    'success' => false,
718
                    'data' => 'ERROR_GROUP_NOT_FOUND'
685
                    'data' => 'ERROR_GROUP_NOT_FOUND'
719
                ]);
686
                ]);
720
            }
687
            }
721
            
688
 
722
            if($group->status != Group::STATUS_ACTIVE) {
689
            if ($group->status != Group::STATUS_ACTIVE) {
723
                return new JsonModel([
690
                return new JsonModel([
724
                    'success' => false,
691
                    'success' => false,
725
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
692
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
726
                ]);
693
                ]);
727
            }
694
            }
728
            
695
 
729
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
696
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
730
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
697
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
731
            if($groupMember) {
698
            if ($groupMember) {
732
                
699
 
733
                if($groupMember->status == GroupMember::STATUS_ADDED_BY_ADMIN) {
700
                if ($groupMember->status == GroupMember::STATUS_ADDED_BY_ADMIN) {
734
                    
701
 
735
                    $groupMember->status = GroupMember::STATUS_REJECTED;
702
                    $groupMember->status = GroupMember::STATUS_REJECTED;
736
                    if($groupMemberMapper->update($groupMember)) {
703
                    if ($groupMemberMapper->update($groupMember)) {
737
                        if($flash) {
704
                        if ($flash) {
738
                            $flashMessenger->addSuccessMessage('LABEL_GROUP_REQUEST_REJECTED');
705
                            $flashMessenger->addSuccessMessage('LABEL_GROUP_REQUEST_REJECTED');
739
                            
706
 
740
                            return new JsonModel([
707
                            return new JsonModel([
741
                                'success' => true,
708
                                'success' => true,
742
                                'data' =>  [
709
                                'data' =>  [
743
                                    'message' => 'LABEL_GROUP_REQUEST_REJECTED',
710
                                    'message' => 'LABEL_GROUP_REQUEST_REJECTED',
744
                                    'reload' => true
711
                                    'reload' => true
745
                                ]
712
                                ]
746
                            ]);
713
                            ]);
747
                            
-
 
748
                        } else {
714
                        } else {
749
                            return new JsonModel([
715
                            return new JsonModel([
750
                                'success' => true,
716
                                'success' => true,
751
                                'data' =>  'LABEL_GROUP_REQUEST_REJECTED'
717
                                'data' =>  'LABEL_GROUP_REQUEST_REJECTED'
752
                            ]);
718
                            ]);
753
                        }
719
                        }
754
                        
-
 
755
                        
-
 
756
                        
-
 
757
                    } else {
720
                    } else {
758
                        return new JsonModel([
721
                        return new JsonModel([
759
                            'success' => false,
722
                            'success' => false,
760
                            'data' => $groupMemberMapper->getError()
723
                            'data' => $groupMemberMapper->getError()
761
                        ]);
724
                        ]);
762
                    }
725
                    }
763
                    
-
 
764
                    
-
 
765
                } else {
726
                } else {
766
                    return new JsonModel([
727
                    return new JsonModel([
767
                        'success' => false,
728
                        'success' => false,
768
                        'data' => 'ERROR_GROUP_THERE_IS_NO_PENDING_REQUEST_TO_CANCEL'
729
                        'data' => 'ERROR_GROUP_THERE_IS_NO_PENDING_REQUEST_TO_CANCEL'
769
                    ]);
730
                    ]);
770
                }
731
                }
771
                
-
 
772
            } else {
732
            } else {
773
                return new JsonModel([
733
                return new JsonModel([
774
                    'success' => false,
734
                    'success' => false,
775
                    'data' => 'ERROR_GROUP_YOU_NOT_MEMBER'
735
                    'data' => 'ERROR_GROUP_YOU_NOT_MEMBER'
776
                ]);
736
                ]);
777
            }
737
            }
778
            
-
 
779
            
-
 
780
            
-
 
781
            
-
 
782
        } else {
738
        } else {
783
            
739
 
784
            return new JsonModel([
740
            return new JsonModel([
785
                'success' => false,
741
                'success' => false,
786
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
742
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
787
            ]);
743
            ]);
788
        }
744
        }
Línea 791... Línea 747...
791
    public function acceptAction()
747
    public function acceptAction()
792
    {
748
    {
793
        $flashMessenger = $this->plugin('FlashMessenger');
749
        $flashMessenger = $this->plugin('FlashMessenger');
794
        $currentUserPlugin = $this->plugin('currentUserPlugin');
750
        $currentUserPlugin = $this->plugin('currentUserPlugin');
795
        $currentUser = $currentUserPlugin->getUser();
751
        $currentUser = $currentUserPlugin->getUser();
796
        
752
 
797
        $request = $this->getRequest();
753
        $request = $this->getRequest();
798
        if($request->isPost()) {
754
        if ($request->isPost()) {
799
            $id = $this->params()->fromRoute('id');
755
            $id = $this->params()->fromRoute('id');
800
            $flash =  filter_var($this->params()->fromPost('flash', 'false'), FILTER_SANITIZE_STRING);
756
            $flash =  filter_var($this->params()->fromPost('flash', 'false'), FILTER_SANITIZE_STRING);
801
            $flash = $flash === 'true'? true: false;
757
            $flash = $flash === 'true' ? true : false;
802
            
758
 
803
            if(!$id) {
759
            if (!$id) {
804
                return new JsonModel([
760
                return new JsonModel([
805
                    'success' => false,
761
                    'success' => false,
806
                    'data' => 'ERROR_INVALID_PARAMETER'
762
                    'data' => 'ERROR_INVALID_PARAMETER'
807
                ]);
763
                ]);
808
                
-
 
809
            }
764
            }
810
            
765
 
811
            $groupMapper = GroupMapper::getInstance($this->adapter);
766
            $groupMapper = GroupMapper::getInstance($this->adapter);
812
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
767
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
813
            
768
 
814
            if(!$group) {
769
            if (!$group) {
815
                return new JsonModel([
770
                return new JsonModel([
816
                    'success' => false,
771
                    'success' => false,
817
                    'data' => 'ERROR_GROUP_NOT_FOUND'
772
                    'data' => 'ERROR_GROUP_NOT_FOUND'
818
                ]);
773
                ]);
819
            }
774
            }
820
            
775
 
821
            if($group->status != Group::STATUS_ACTIVE) {
776
            if ($group->status != Group::STATUS_ACTIVE) {
822
                return new JsonModel([
777
                return new JsonModel([
823
                    'success' => false,
778
                    'success' => false,
824
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
779
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
825
                ]);
780
                ]);
826
            }
781
            }
827
            
782
 
828
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
783
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
829
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
784
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
830
            if($groupMember) {
785
            if ($groupMember) {
831
                
786
 
832
                if($groupMember->status == GroupMember::STATUS_ADDED_BY_ADMIN) {
787
                if ($groupMember->status == GroupMember::STATUS_ADDED_BY_ADMIN) {
833
                    
788
 
834
                    $groupMember->status = GroupMember::STATUS_ACCEPTED;
789
                    $groupMember->status = GroupMember::STATUS_ACCEPTED;
835
                    if($groupMemberMapper->update($groupMember)) {
790
                    if ($groupMemberMapper->update($groupMember)) {
836
                        if($flash) {
791
                        if ($flash) {
837
                            $flashMessenger->addSuccessMessage('LABEL_GROUP_AUTO_JOIN_SUCCESS');
792
                            $flashMessenger->addSuccessMessage('LABEL_GROUP_AUTO_JOIN_SUCCESS');
838
                            
793
 
839
                            return new JsonModel([
794
                            return new JsonModel([
840
                                'success' => true,
795
                                'success' => true,
841
                                'data' => [
796
                                'data' => [
842
                                    'message' => 'LABEL_GROUP_AUTO_JOIN_SUCCESS',
797
                                    'message' => 'LABEL_GROUP_AUTO_JOIN_SUCCESS',
843
                                    'reload' => true
798
                                    'reload' => true
844
                                ]    
799
                                ]
845
                            ]);
800
                            ]);
846
                        } else {
801
                        } else {
847
                            return new JsonModel([
802
                            return new JsonModel([
848
                                'success' => true,
803
                                'success' => true,
849
                                'data' => 'LABEL_GROUP_AUTO_JOIN_SUCCESS'
804
                                'data' => 'LABEL_GROUP_AUTO_JOIN_SUCCESS'
850
                            ]);
805
                            ]);
851
                        }
806
                        }
852
                        
-
 
853
                    } else {
807
                    } else {
854
                        return new JsonModel([
808
                        return new JsonModel([
855
                            'success' => false,
809
                            'success' => false,
856
                            'data' => $groupMemberMapper->getError()
810
                            'data' => $groupMemberMapper->getError()
857
                        ]);
811
                        ]);
Línea 860... Línea 814...
860
                    return new JsonModel([
814
                    return new JsonModel([
861
                        'success' => false,
815
                        'success' => false,
862
                        'data' => 'ERROR_GROUP_YOU_HAVE_NOT_INVITED_THIS_GROUP'
816
                        'data' => 'ERROR_GROUP_YOU_HAVE_NOT_INVITED_THIS_GROUP'
863
                    ]);
817
                    ]);
864
                }
818
                }
865
                        
-
 
866
            } else {
819
            } else {
867
                return new JsonModel([
820
                return new JsonModel([
868
                    'success' => false,
821
                    'success' => false,
869
                    'data' => 'ERROR_GROUP_YOU_NOT_MEMBER'
822
                    'data' => 'ERROR_GROUP_YOU_NOT_MEMBER'
870
                ]);
823
                ]);
871
            }
824
            }
872
        } else {
825
        } else {
873
            
826
 
874
            return new JsonModel([
827
            return new JsonModel([
875
                'success' => false,
828
                'success' => false,
876
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
829
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
877
            ]);
830
            ]);
878
        }
831
        }
879
    }
832
    }
880
  
833
 
881
    
834
 
882
    public function requestAction()
835
    public function requestAction()
883
    {
836
    {
884
        $flashMessenger = $this->plugin('FlashMessenger');
837
        $flashMessenger = $this->plugin('FlashMessenger');
885
        $currentUserPlugin = $this->plugin('currentUserPlugin');
838
        $currentUserPlugin = $this->plugin('currentUserPlugin');
886
        $currentUser = $currentUserPlugin->getUser();
839
        $currentUser = $currentUserPlugin->getUser();
887
        
840
 
888
        $request = $this->getRequest();
841
        $request = $this->getRequest();
889
        if($request->isPost()) {
842
        if ($request->isPost()) {
890
            $id = $this->params()->fromRoute('id');
843
            $id = $this->params()->fromRoute('id');
891
            $flash =  filter_var($this->params()->fromPost('flash', 'false'), FILTER_SANITIZE_STRING);
844
            $flash =  filter_var($this->params()->fromPost('flash', 'false'), FILTER_SANITIZE_STRING);
892
            $flash = $flash === 'true'? true: false;
845
            $flash = $flash === 'true' ? true : false;
893
            
846
 
894
            if(!$id) {
847
            if (!$id) {
895
                return new JsonModel([
848
                return new JsonModel([
896
                    'success' => false,
849
                    'success' => false,
897
                    'data' => 'ERROR_INVALID_PARAMETER'
850
                    'data' => 'ERROR_INVALID_PARAMETER'
898
                ]);
851
                ]);
899
                
-
 
900
            }
852
            }
901
            
853
 
902
            $groupMapper = GroupMapper::getInstance($this->adapter);
854
            $groupMapper = GroupMapper::getInstance($this->adapter);
903
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
855
            $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
904
            
856
 
905
            if(!$group) {
857
            if (!$group) {
906
                return new JsonModel([
858
                return new JsonModel([
907
                    'success' => false,
859
                    'success' => false,
908
                    'data' => 'ERROR_GROUP_NOT_FOUND'
860
                    'data' => 'ERROR_GROUP_NOT_FOUND'
909
                ]);
861
                ]);
910
            }
862
            }
911
            
863
 
912
            if($group->status != Group::STATUS_ACTIVE) {
864
            if ($group->status != Group::STATUS_ACTIVE) {
913
                return new JsonModel([
865
                return new JsonModel([
914
                    'success' => false,
866
                    'success' => false,
915
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
867
                    'data' => 'ERROR_GROUP_IS_NOT_ACTIVE'
916
                ]);
868
                ]);
917
            }
869
            }
918
            
870
 
919
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
871
            $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
920
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
872
            $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
921
            if($groupMember) {
873
            if ($groupMember) {
922
                if($groupMember->status == GroupMember::STATUS_ACCEPTED || $groupMember->status == GroupMember::STATUS_AUTO_JOIN) {
874
                if ($groupMember->status == GroupMember::STATUS_ACCEPTED || $groupMember->status == GroupMember::STATUS_AUTO_JOIN) {
923
                    return new JsonModel([
875
                    return new JsonModel([
924
                        'success' => false,
876
                        'success' => false,
925
                        'data' => 'ERROR_GROUP_YOU_ARE_MEMBER' 
877
                        'data' => 'ERROR_GROUP_YOU_ARE_MEMBER'
926
                    ]);
878
                    ]);
927
                }
879
                }
928
                if($groupMember->status == GroupMember::STATUS_REJECTED) {
880
                if ($groupMember->status == GroupMember::STATUS_REJECTED) {
929
                    return new JsonModel([
881
                    return new JsonModel([
930
                        'success' => false,
882
                        'success' => false,
931
                        'data' => 'ERROR_GROUP_YOUR_REQUEST_WAS_PREVIOUSLY_REJECTED'
883
                        'data' => 'ERROR_GROUP_YOUR_REQUEST_WAS_PREVIOUSLY_REJECTED'
932
                    ]);
884
                    ]);
933
                }
885
                }
934
 
-
 
935
            }
886
            }
936
            
887
 
937
            if($group->privacy == Group::PRIVACY_IS_PRIVATE || $group->accessibility == Group::ACCESSIBILITY_ADMIN_WILL_ADD) {
888
            if ($group->privacy == Group::PRIVACY_IS_PRIVATE || $group->accessibility == Group::ACCESSIBILITY_ADMIN_WILL_ADD) {
938
                return new JsonModel([
889
                return new JsonModel([
939
                    'success' => false,
890
                    'success' => false,
940
                    'data' => 'ERROR_GROUP_ACCESS_ONLY_BY_ADMIN_INVITATION'
891
                    'data' => 'ERROR_GROUP_ACCESS_ONLY_BY_ADMIN_INVITATION'
941
                ]);
892
                ]);
942
            }
893
            }
943
            
894
 
944
            
895
 
945
            if($groupMember) {
896
            if ($groupMember) {
946
                if($group->accessibility == Group::ACCESSIBILITY_AUTO_JOIN) {
897
                if ($group->accessibility == Group::ACCESSIBILITY_AUTO_JOIN) {
947
                    $groupMember->status    = GroupMember::STATUS_AUTO_JOIN;
898
                    $groupMember->status    = GroupMember::STATUS_AUTO_JOIN;
948
                    $groupMember->joined_on = new Expression('NOW()');
899
                    $groupMember->joined_on = new Expression('NOW()');
949
                }
900
                }
950
                
901
 
951
                if($group->accessibility == Group::ACCESSIBILITY_REQUEST_TO_JOIN) {
902
                if ($group->accessibility == Group::ACCESSIBILITY_REQUEST_TO_JOIN) {
952
                    $groupMember->status                = GroupMember::STATUS_JOINING_REQUESTED;
903
                    $groupMember->status                = GroupMember::STATUS_JOINING_REQUESTED;
953
                    $groupMember->joining_request_on    = new Expression('NOW()');
904
                    $groupMember->joining_request_on    = new Expression('NOW()');
954
                }
905
                }
955
                
-
 
956
                $result = $groupMemberMapper->update($groupMember);
-
 
957
                
-
 
Línea -... Línea 906...
-
 
906
 
958
 
907
                $result = $groupMemberMapper->update($groupMember);
959
            } else {
908
            } else {
960
                $groupMember = new GroupMember();
909
                $groupMember = new GroupMember();
961
                $groupMember->group_id  = $group->id;
910
                $groupMember->group_id  = $group->id;
962
                $groupMember->user_id   = $currentUser->id;
911
                $groupMember->user_id   = $currentUser->id;
963
                if($group->accessibility == Group::ACCESSIBILITY_AUTO_JOIN) {
912
                if ($group->accessibility == Group::ACCESSIBILITY_AUTO_JOIN) {
964
                    $groupMember->status    = GroupMember::STATUS_AUTO_JOIN;
913
                    $groupMember->status    = GroupMember::STATUS_AUTO_JOIN;
965
                }
914
                }
966
                
915
 
967
                if($group->accessibility == Group::ACCESSIBILITY_REQUEST_TO_JOIN) {
916
                if ($group->accessibility == Group::ACCESSIBILITY_REQUEST_TO_JOIN) {
968
                    $groupMember->status    = GroupMember::STATUS_JOINING_REQUESTED;
917
                    $groupMember->status    = GroupMember::STATUS_JOINING_REQUESTED;
969
                }
918
                }
970
                
919
 
971
                $result = $groupMemberMapper->insert($groupMember);
920
                $result = $groupMemberMapper->insert($groupMember);
972
            }
921
            }
973
            
922
 
974
            if($result) {
923
            if ($result) {
975
                
924
 
976
                $userMapper = UserMapper::getInstance($this->adapter);
925
                $userMapper = UserMapper::getInstance($this->adapter);
977
                $userOwnerGroup = $userMapper->fetchOne($group->user_id);
926
                $userOwnerGroup = $userMapper->fetchOne($group->user_id);
978
                
927
 
979
                $notification = new Notification();
928
                $notification = new Notification();
980
                $notification->type     = Notification::TYPE_RECEIVE_REQUEST_JOIN_MY_GROUP;
929
                $notification->type     = Notification::TYPE_RECEIVE_REQUEST_JOIN_MY_GROUP;
981
                $notification->read     = Notification::NO;
930
                $notification->read     = Notification::NO;
982
                $notification->user_id  = $userOwnerGroup->id;
931
                $notification->user_id  = $userOwnerGroup->id;
983
                $notification->group_id = $group->id;
932
                $notification->group_id = $group->id;
984
                $notification->message  = 'LABEL_NOTIFICATION_RECEIVE_REQUEST_JOIN_MY_GROUP';
933
                $notification->message  = 'LABEL_NOTIFICATION_RECEIVE_REQUEST_JOIN_MY_GROUP';
985
                $notification->url      = $this->url()->fromRoute('group/view', ['id' => $group->uuid]);
934
                $notification->url      = $this->url()->fromRoute('group/view', ['id' => $group->uuid]);
986
                
935
 
987
                $notificationMapper = NotificationMapper::getInstance($this->adapter);
936
                $notificationMapper = NotificationMapper::getInstance($this->adapter);
988
                $notificationMapper->insert($notification);
937
                $notificationMapper->insert($notification);
989
                
938
 
990
                
939
 
991
                
940
 
992
                $userNotificationSettingMapper = UserNotificationSettingMapper::getInstance($this->adapter);
941
                $userNotificationSettingMapper = UserNotificationSettingMapper::getInstance($this->adapter);
993
                $userNotificationSetting = $userNotificationSettingMapper->fetchOne($group->user_id);
942
                $userNotificationSetting = $userNotificationSettingMapper->fetchOne($group->user_id);
994
                
943
 
995
                
944
 
996
                if($userNotificationSetting->receive_request_join_my_group) {
945
                if ($userNotificationSetting->receive_request_join_my_group) {
997
                    $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
946
                    $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
998
                    $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_RECEIVE_REQUEST_JOIN_MY_GROUP, $currentUser->network_id);
947
                    $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_RECEIVE_REQUEST_JOIN_MY_GROUP, $currentUser->network_id);
999
                    if($emailTemplate) {
948
                    if ($emailTemplate) {
1000
                        $arrayCont = [
949
                        $arrayCont = [
1001
                            'firstname'             => $currentUser->first_name,
950
                            'firstname'             => $currentUser->first_name,
1002
                            'lastname'              => $currentUser->last_name,
951
                            'lastname'              => $currentUser->last_name,
1003
                            'other_user_firstname'  => $userOwnerGroup->first_name,
952
                            'other_user_firstname'  => $userOwnerGroup->first_name,
Línea 1006... Línea 955...
1006
                            'group_name'            => $group->name,
955
                            'group_name'            => $group->name,
1007
                            'content'               => '',
956
                            'content'               => '',
1008
                            'code'                  => '',
957
                            'code'                  => '',
1009
                            'link'                  => $this->url()->fromRoute('group/view', ['id' => $group->uuid], ['force_canonical' => true])
958
                            'link'                  => $this->url()->fromRoute('group/view', ['id' => $group->uuid], ['force_canonical' => true])
1010
                        ];
959
                        ];
1011
                        
960
 
1012
                        $email = new QueueEmail($this->adapter);
961
                        $email = new QueueEmail($this->adapter);
1013
                        $email->processEmailTemplate($emailTemplate, $arrayCont, $userOwnerGroup->email, trim($userOwnerGroup->first_name . ' ' . $userOwnerGroup->last_name));
962
                        $email->processEmailTemplate($emailTemplate, $arrayCont, $userOwnerGroup->email, trim($userOwnerGroup->first_name . ' ' . $userOwnerGroup->last_name));
1014
                    }
963
                    }
1015
                }
964
                }
1016
                
965
 
1017
                if($group->accessibility == Group::ACCESSIBILITY_AUTO_JOIN) {
966
                if ($group->accessibility == Group::ACCESSIBILITY_AUTO_JOIN) {
1018
                    if($flash) {
967
                    if ($flash) {
1019
                        $flashMessenger->addSuccessMessage('LABEL_GROUP_AUTO_JOIN_SUCCESS');
968
                        $flashMessenger->addSuccessMessage('LABEL_GROUP_AUTO_JOIN_SUCCESS');
1020
                        
969
 
1021
                        return new JsonModel([
970
                        return new JsonModel([
1022
                            'success' => true,
971
                            'success' => true,
1023
                            'data' => [
972
                            'data' => [
1024
                                'message' => 'LABEL_GROUP_AUTO_JOIN_SUCCESS',
973
                                'message' => 'LABEL_GROUP_AUTO_JOIN_SUCCESS',
1025
                                'reload' => true
974
                                'reload' => true
Línea 1030... Línea 979...
1030
                            'success' => true,
979
                            'success' => true,
1031
                            'data' => 'LABEL_GROUP_AUTO_JOIN_SUCCESS'
980
                            'data' => 'LABEL_GROUP_AUTO_JOIN_SUCCESS'
1032
                        ]);
981
                        ]);
1033
                    }
982
                    }
1034
                }
983
                }
1035
                if($group->accessibility == Group::ACCESSIBILITY_REQUEST_TO_JOIN) {
984
                if ($group->accessibility == Group::ACCESSIBILITY_REQUEST_TO_JOIN) {
1036
                    if($flash) {
985
                    if ($flash) {
1037
                        $flashMessenger->addSuccessMessage('LABEL_GROUP_REQUEST_SUCCESS');
986
                        $flashMessenger->addSuccessMessage('LABEL_GROUP_REQUEST_SUCCESS');
1038
                        
987
 
1039
                        return new JsonModel([
988
                        return new JsonModel([
1040
                            'success' => true,
989
                            'success' => true,
1041
                            'data' => [
990
                            'data' => [
1042
                                'message' => 'LABEL_GROUP_REQUEST_SUCCESS',
991
                                'message' => 'LABEL_GROUP_REQUEST_SUCCESS',
1043
                                'reload' => true
992
                                'reload' => true
1044
                            ]    
993
                            ]
1045
                        ]);
994
                        ]);
1046
                    } else {
995
                    } else {
1047
                        return new JsonModel([
996
                        return new JsonModel([
1048
                            'success' => true,
997
                            'success' => true,
1049
                            'data' => 'LABEL_GROUP_REQUEST_SUCCESS'
998
                            'data' => 'LABEL_GROUP_REQUEST_SUCCESS'
1050
                        ]);
999
                        ]);
1051
                    }
1000
                    }
1052
                }
1001
                }
1053
                
-
 
1054
 
-
 
1055
                
-
 
1056
            } else {
1002
            } else {
1057
                return new JsonModel([
1003
                return new JsonModel([
1058
                    'success' => false,
1004
                    'success' => false,
1059
                    'data' => $groupMapper->getError()
1005
                    'data' => $groupMapper->getError()
1060
                ]);
1006
                ]);
1061
            }
1007
            }
1062
            
-
 
1063
            
-
 
1064
        } else {
1008
        } else {
1065
        
1009
 
1066
            return new JsonModel([
1010
            return new JsonModel([
1067
                'success' => false,
1011
                'success' => false,
1068
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1012
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1069
            ]);
1013
            ]);
1070
        }
1014
        }
1071
        
-
 
1072
    }
1015
    }
1073
    
1016
 
1074
    /**
1017
    /**
1075
     *
1018
     *
1076
     * Generación del listado de perfiles
1019
     * Generación del listado de perfiles
1077
     * {@inheritDoc}
1020
     * {@inheritDoc}
1078
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
1021
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
1079
     */
1022
     */
1080
    public function joinedGroupsAction()
1023
    public function joinedGroupsAction()
1081
    {
1024
    {
1082
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1025
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1083
        $currentUser = $currentUserPlugin->getUser();
1026
        $currentUser = $currentUserPlugin->getUser();
1084
        
1027
 
1085
        $request = $this->getRequest();
1028
        $request = $this->getRequest();
1086
        if($request->isGet()) {
1029
        if ($request->isGet()) {
1087
            
1030
 
1088
            
1031
 
1089
            $headers  = $request->getHeaders();
1032
            $headers  = $request->getHeaders();
1090
            $isJson = false;
1033
            $isJson = false;
1091
            if($headers->has('Accept')) {
1034
            if ($headers->has('Accept')) {
1092
                $accept = $headers->get('Accept');
1035
                $accept = $headers->get('Accept');
1093
                
1036
 
1094
                $prioritized = $accept->getPrioritized();
1037
                $prioritized = $accept->getPrioritized();
1095
                
1038
 
1096
                foreach($prioritized as $key => $value) {
1039
                foreach ($prioritized as $key => $value) {
1097
                    $raw = trim($value->getRaw());
1040
                    $raw = trim($value->getRaw());
1098
                    
1041
 
1099
                    if(!$isJson) {
1042
                    if (!$isJson) {
1100
                        $isJson = strpos($raw, 'json');
1043
                        $isJson = strpos($raw, 'json');
1101
                    }
1044
                    }
1102
                    
-
 
1103
                }
1045
                }
1104
            }
1046
            }
1105
            
1047
 
1106
            if($isJson) {
1048
            if ($isJson) {
1107
                $values = [
1049
                $values = [
1108
                    Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
1050
                    Group::PRIVACY_IS_PRIVATE => 'LABEL_PRIVATE',
1109
                    Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
1051
                    Group::PRIVACY_IS_PUBLIC => 'LABEL_PUBLIC'
1110
                ];
1052
                ];
1111
                
1053
 
1112
                $search = trim(filter_var($this->params()->fromQuery('search', ''), FILTER_SANITIZE_STRING));
1054
                $search = trim(filter_var($this->params()->fromQuery('search', ''), FILTER_SANITIZE_STRING));
Línea 1113... Línea 1055...
1113
 
1055
 
1114
                
1056
 
1115
                $queryMapper = QueryMapper::getInstance($this->adapter);
1057
                $queryMapper = QueryMapper::getInstance($this->adapter);
1116
                
1058
 
1117
                $select = $queryMapper->getSql()->select();
1059
                $select = $queryMapper->getSql()->select();
1118
                $select->columns(['id', 'uuid', 'name', 'privacy',  'image']);
1060
                $select->columns(['id', 'uuid', 'name', 'privacy',  'image']);
1119
                $select->from(['g' => GroupMapper::_TABLE]);
1061
                $select->from(['g' => GroupMapper::_TABLE]);
1120
                $select->join(['gm' => GroupMemberMapper::_TABLE], 'gm.group_id = g.id', []);
1062
                $select->join(['gm' => GroupMemberMapper::_TABLE], 'gm.group_id = g.id', []);
1121
                $select->where->equalTo('g.status', Group::STATUS_ACTIVE);
1063
                $select->where->equalTo('g.status', Group::STATUS_ACTIVE);
1122
                $select->where->in('gm.status', [ GroupMember::STATUS_ACCEPTED, GroupMember::STATUS_AUTO_JOIN]);
1064
                $select->where->in('gm.status', [GroupMember::STATUS_ACCEPTED, GroupMember::STATUS_AUTO_JOIN]);
1123
                $select->where->equalTo('gm.user_id', $currentUser->id);
1065
                $select->where->equalTo('gm.user_id', $currentUser->id);
1124
                $select->where->notEqualTo('g.user_id', $currentUser->id);
1066
                $select->where->notEqualTo('g.user_id', $currentUser->id);
1125
                $select->where->equalTo('g.network_id', $currentUser->network_id);
1067
                $select->where->equalTo('g.network_id', $currentUser->network_id);
1126
                   
1068
 
1127
                if($search) {
1069
                if ($search) {
1128
                    $select->where->like('name', '%' . $search . '%');
1070
                    $select->where->like('name', '%' . $search . '%');
1129
                }
1071
                }
1130
                $select->order('name ASC');
1072
                $select->order('name ASC');
1131
                
1073
 
1132
                $records = $queryMapper->fetchAll($select);
1074
                $records = $queryMapper->fetchAll($select);
1133
                
1075
 
1134
                $items = [];
1076
                $items = [];
1135
                foreach($records as $record)
-
 
1136
                {
1077
                foreach ($records as $record) {
1137
                    
1078
 
1138
                    $item = [
1079
                    $item = [
1139
                        'name' => $record['name'],
1080
                        'name' => $record['name'],
1140
                        'privacy' => $values[$record['privacy']],
1081
                        'privacy' => $values[$record['privacy']],
1141
                        'image' => $this->url()->fromRoute('storage', ['type' => 'group', 'code' => $record['uuid'], 'filename' => $record['image'] ]),
1082
                        'image' => $this->url()->fromRoute('storage', ['type' => 'group', 'code' => $record['uuid'], 'filename' => $record['image']]),
1142
                        'link_view' => $this->url()->fromRoute('group/view', ['id' => $record['uuid'] ]),
1083
                        'link_view' => $this->url()->fromRoute('group/view', ['id' => $record['uuid']]),
1143
                        'link_leave' => $this->url()->fromRoute('group/leave', ['id' => $record['uuid'] ]),
1084
                        'link_leave' => $this->url()->fromRoute('group/leave', ['id' => $record['uuid']]),
1144
                    ];
1085
                    ];
1145
                    
1086
 
1146
                    array_push($items, $item);
1087
                    array_push($items, $item);
1147
                }
1088
                }
1148
                
1089
 
1149
                
1090
 
1150
                
1091
 
1151
                $response = [
1092
                $response = [
1152
                    'success' => true,
1093
                    'success' => true,
1153
                    'data' => $items
1094
                    'data' => $items
1154
                ];
1095
                ];
1155
                
1096
 
1156
                return new JsonModel($response);
-
 
1157
                
-
 
1158
                
1097
                return new JsonModel($response);
1159
            } else {
1098
            } else {
1160
                $this->layout()->setTemplate('layout/layout.phtml');
1099
                $this->layout()->setTemplate('layout/layout.phtml');
1161
                $viewModel = new ViewModel();
1100
                $viewModel = new ViewModel();
1162
                $viewModel->setTemplate('leaders-linked/group/joined-groups.phtml');
1101
                $viewModel->setTemplate('leaders-linked/group/joined-groups.phtml');
1163
                return $viewModel ;
1102
                return $viewModel;
1164
            }
-
 
1165
            
1103
            }
1166
        } else {
1104
        } else {
1167
            return new JsonModel([
1105
            return new JsonModel([
1168
                'success' => false,
1106
                'success' => false,
1169
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1107
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1170
            ]);
1108
            ]);
1171
        }
1109
        }
1172
    }
1110
    }
1173
    
1111
 
1174
    public function invitationsReceivedAction()
1112
    public function invitationsReceivedAction()
1175
    {
1113
    {
1176
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1114
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1177
        $currentUser = $currentUserPlugin->getUser();
1115
        $currentUser = $currentUserPlugin->getUser();
1178
        
1116
 
1179
        $request = $this->getRequest();
1117
        $request = $this->getRequest();
1180
        if($request->isGet()) {
1118
        if ($request->isGet()) {
1181
            
1119
 
1182
            
1120
 
1183
            $headers  = $request->getHeaders();
1121
            $headers  = $request->getHeaders();
1184
            $isJson = false;
1122
            $isJson = false;
1185
            if($headers->has('Accept')) {
1123
            if ($headers->has('Accept')) {
1186
                $accept = $headers->get('Accept');
1124
                $accept = $headers->get('Accept');
1187
                
1125
 
1188
                $prioritized = $accept->getPrioritized();
1126
                $prioritized = $accept->getPrioritized();
1189
                
1127
 
1190
                foreach($prioritized as $key => $value) {
1128
                foreach ($prioritized as $key => $value) {
1191
                    $raw = trim($value->getRaw());
1129
                    $raw = trim($value->getRaw());
1192
                    
1130
 
1193
                    if(!$isJson) {
1131
                    if (!$isJson) {
1194
                        $isJson = strpos($raw, 'json');
1132
                        $isJson = strpos($raw, 'json');
1195
                    }
-
 
1196
                    
1133
                    }
1197
                }
1134
                }
1198
            }
1135
            }
1199
            
1136
 
1200
            if($isJson) {
1137
            if ($isJson) {
1201
                $search = trim(filter_var($this->params()->fromQuery('search', ''), FILTER_SANITIZE_STRING));
1138
                $search = trim(filter_var($this->params()->fromQuery('search', ''), FILTER_SANITIZE_STRING));
1202
                
1139
 
1203
                $queryMapper = QueryMapper::getInstance($this->adapter);
1140
                $queryMapper = QueryMapper::getInstance($this->adapter);
1204
                
1141
 
1205
                $select = $queryMapper->getSql()->select();
1142
                $select = $queryMapper->getSql()->select();
1206
                $select->columns([ 'uuid', 'name', 'image']);
1143
                $select->columns(['uuid', 'name', 'image']);
1207
                $select->from(['g' => GroupMapper::_TABLE]);
1144
                $select->from(['g' => GroupMapper::_TABLE]);
1208
                $select->join(['gm' => GroupMemberMapper::_TABLE], 'gm.group_id  = g.id', []);
1145
                $select->join(['gm' => GroupMemberMapper::_TABLE], 'gm.group_id  = g.id', []);
1209
                $select->where->equalTo('gm.user_id', $currentUser->id);
1146
                $select->where->equalTo('gm.user_id', $currentUser->id);
1210
                $select->where->equalTo('gm.status', GroupMember::STATUS_ADDED_BY_ADMIN);
1147
                $select->where->equalTo('gm.status', GroupMember::STATUS_ADDED_BY_ADMIN);
1211
                $select->where->equalTo('g.status', Group::STATUS_ACTIVE);
1148
                $select->where->equalTo('g.status', Group::STATUS_ACTIVE);
1212
                $select->where->equalTo('g.network_id', $currentUser->network_id);
1149
                $select->where->equalTo('g.network_id', $currentUser->network_id);
1213
                
1150
 
1214
                if($search) {
1151
                if ($search) {
1215
                    $select->where->like('g.name', '%' . $search . '%');
1152
                    $select->where->like('g.name', '%' . $search . '%');
1216
                }
1153
                }
1217
                $select->order('name ASC');
1154
                $select->order('name ASC');
1218
                
1155
 
1219
                //echo $select2->getSqlString($this->adapter->platform); exit;
1156
                //echo $select2->getSqlString($this->adapter->platform); exit;
1220
                
1157
 
1221
                $records = $queryMapper->fetchAll($select);
1158
                $records = $queryMapper->fetchAll($select);
1222
                
1159
 
1223
                $items = [];
1160
                $items = [];
1224
                foreach($records as $record)
-
 
1225
                {
1161
                foreach ($records as $record) {
1226
                    $item = [
1162
                    $item = [
1227
                        'name' => $record['name'],
1163
                        'name' => $record['name'],
1228
                        'image' => $this->url()->fromRoute('storage', ['type' => 'group', 'code' => $record['uuid'], 'filename' => $record['image']]),
1164
                        'image' => $this->url()->fromRoute('storage', ['type' => 'group', 'code' => $record['uuid'], 'filename' => $record['image']]),
1229
                        'link_view' => $this->url()->fromRoute('group/view', ['id' => $record['uuid'] ]),
1165
                        'link_view' => $this->url()->fromRoute('group/view', ['id' => $record['uuid']]),
1230
                        'link_accept' => $this->url()->fromRoute('group/accept', ['id' => $record['uuid'] ]),
1166
                        'link_accept' => $this->url()->fromRoute('group/accept', ['id' => $record['uuid']]),
1231
                        'link_reject' => $this->url()->fromRoute('group/reject', ['id' => $record['uuid'] ]),
1167
                        'link_reject' => $this->url()->fromRoute('group/reject', ['id' => $record['uuid']]),
1232
                    ];
1168
                    ];
1233
                    
1169
 
1234
                    
1170
 
1235
                    array_push($items, $item);
1171
                    array_push($items, $item);
1236
                }
1172
                }
1237
                
1173
 
1238
                $response = [
1174
                $response = [
1239
                    'success' => true,
1175
                    'success' => true,
1240
                    'data' => $items
1176
                    'data' => $items
1241
                ];
1177
                ];
1242
                
1178
 
1243
                return new JsonModel($response);
-
 
1244
                
-
 
1245
                
1179
                return new JsonModel($response);
1246
            } else {
1180
            } else {
1247
                $this->layout()->setTemplate('layout/layout.phtml');
1181
                $this->layout()->setTemplate('layout/layout.phtml');
1248
                $viewModel = new ViewModel();
1182
                $viewModel = new ViewModel();
1249
                $viewModel->setTemplate('leaders-linked/group/invitations-received.phtml');
1183
                $viewModel->setTemplate('leaders-linked/group/invitations-received.phtml');
1250
                return $viewModel ;
1184
                return $viewModel;
1251
            }
-
 
1252
            
1185
            }
1253
        } else {
1186
        } else {
1254
            return new JsonModel([
1187
            return new JsonModel([
1255
                'success' => false,
1188
                'success' => false,
1256
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1189
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1257
            ]);
1190
            ]);
1258
        }
1191
        }
1259
    }
1192
    }
1260
    
1193
 
1261
    public function requestsSentAction()
1194
    public function requestsSentAction()
1262
    {
1195
    {
1263
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1196
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1264
        $currentUser = $currentUserPlugin->getUser();
1197
        $currentUser = $currentUserPlugin->getUser();
1265
        
1198
 
1266
        $request = $this->getRequest();
1199
        $request = $this->getRequest();
1267
        if($request->isGet()) {
1200
        if ($request->isGet()) {
1268
            
1201
 
1269
            
1202
 
1270
            $headers  = $request->getHeaders();
1203
            $headers  = $request->getHeaders();
1271
            $isJson = false;
1204
            $isJson = false;
1272
            if($headers->has('Accept')) {
1205
            if ($headers->has('Accept')) {
1273
                $accept = $headers->get('Accept');
1206
                $accept = $headers->get('Accept');
1274
                
1207
 
1275
                $prioritized = $accept->getPrioritized();
1208
                $prioritized = $accept->getPrioritized();
1276
                
1209
 
1277
                foreach($prioritized as $key => $value) {
1210
                foreach ($prioritized as $key => $value) {
1278
                    $raw = trim($value->getRaw());
1211
                    $raw = trim($value->getRaw());
1279
                    
1212
 
1280
                    if(!$isJson) {
1213
                    if (!$isJson) {
1281
                        $isJson = strpos($raw, 'json');
1214
                        $isJson = strpos($raw, 'json');
1282
                    }
-
 
1283
                    
1215
                    }
1284
                }
1216
                }
1285
            }
1217
            }
1286
            
1218
 
1287
            if($isJson) {
1219
            if ($isJson) {
1288
                $search = trim(filter_var($this->params()->fromQuery('search', ''), FILTER_SANITIZE_STRING));
1220
                $search = trim(filter_var($this->params()->fromQuery('search', ''), FILTER_SANITIZE_STRING));
1289
                
1221
 
1290
                
1222
 
1291
                
1223
 
1292
                $queryMapper = QueryMapper::getInstance($this->adapter);
1224
                $queryMapper = QueryMapper::getInstance($this->adapter);
1293
                
1225
 
1294
                $select = $queryMapper->getSql()->select();
1226
                $select = $queryMapper->getSql()->select();
1295
                $select->columns([ 'uuid', 'name', 'image']);
1227
                $select->columns(['uuid', 'name', 'image']);
1296
                $select->from(['g' => GroupMapper::_TABLE]);
1228
                $select->from(['g' => GroupMapper::_TABLE]);
1297
                $select->join(['gm' => GroupMemberMapper::_TABLE], 'gm.group_id  = g.id', []);
1229
                $select->join(['gm' => GroupMemberMapper::_TABLE], 'gm.group_id  = g.id', []);
1298
                $select->where->equalTo('gm.user_id', $currentUser->id);
1230
                $select->where->equalTo('gm.user_id', $currentUser->id);
1299
                $select->where->equalTo('gm.status', GroupMember::STATUS_JOINING_REQUESTED);
1231
                $select->where->equalTo('gm.status', GroupMember::STATUS_JOINING_REQUESTED);
1300
                $select->where->equalTo('g.status', Group::STATUS_ACTIVE);
1232
                $select->where->equalTo('g.status', Group::STATUS_ACTIVE);
1301
                $select->where->equalTo('g.network_id', $currentUser->network_id);
1233
                $select->where->equalTo('g.network_id', $currentUser->network_id);
1302
                
1234
 
1303
                
1235
 
1304
                if($search) {
1236
                if ($search) {
1305
                    $select->where->like('g.name', '%' . $search . '%');
1237
                    $select->where->like('g.name', '%' . $search . '%');
1306
                }
1238
                }
1307
                $select->order('name ASC');
1239
                $select->order('name ASC');
1308
                
1240
 
1309
                //echo $select2->getSqlString($this->adapter->platform); exit;
1241
                //echo $select2->getSqlString($this->adapter->platform); exit;
1310
                
1242
 
1311
                $records = $queryMapper->fetchAll($select);
1243
                $records = $queryMapper->fetchAll($select);
1312
                
1244
 
1313
                $items = [];
1245
                $items = [];
1314
                foreach($records as $record)
-
 
1315
                {
1246
                foreach ($records as $record) {
1316
                    $item = [
1247
                    $item = [
1317
                        'name' => $record['name'],
1248
                        'name' => $record['name'],
1318
                        'image' => $this->url()->fromRoute('storage', ['type' => 'group', 'code' => $record['uuid'], 'filename' => $record['image']]),
1249
                        'image' => $this->url()->fromRoute('storage', ['type' => 'group', 'code' => $record['uuid'], 'filename' => $record['image']]),
1319
                        'link_view' => $this->url()->fromRoute('group/view', ['id' => $record['uuid'] ]),
1250
                        'link_view' => $this->url()->fromRoute('group/view', ['id' => $record['uuid']]),
1320
                        'link_cancel' => $this->url()->fromRoute('group/cancel', ['id' => $record['uuid'] ]),
1251
                        'link_cancel' => $this->url()->fromRoute('group/cancel', ['id' => $record['uuid']]),
1321
                    ];
1252
                    ];
1322
                    
1253
 
1323
                    
1254
 
1324
                    array_push($items, $item);
1255
                    array_push($items, $item);
1325
                }
1256
                }
1326
                
1257
 
1327
                $response = [
1258
                $response = [
1328
                    'success' => true,
1259
                    'success' => true,
1329
                    'data' => $items
1260
                    'data' => $items
1330
                ];
1261
                ];
1331
                
1262
 
1332
                return new JsonModel($response);
-
 
1333
                
-
 
1334
                
1263
                return new JsonModel($response);
1335
            } else {
1264
            } else {
1336
                $this->layout()->setTemplate('layout/layout.phtml');
1265
                $this->layout()->setTemplate('layout/layout.phtml');
1337
                $viewModel = new ViewModel();
1266
                $viewModel = new ViewModel();
1338
                $viewModel->setTemplate('leaders-linked/group/requests-sent.phtml');
1267
                $viewModel->setTemplate('leaders-linked/group/requests-sent.phtml');
1339
                return $viewModel ;
1268
                return $viewModel;
1340
            }
-
 
1341
            
1269
            }
1342
        } else {
1270
        } else {
1343
            return new JsonModel([
1271
            return new JsonModel([
1344
                'success' => false,
1272
                'success' => false,
1345
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1273
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1346
            ]);
1274
            ]);
1347
        }
1275
        }
1348
    }
-
 
1349
    
-
 
1350
    
1276
    }