Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3138 | Rev 3298 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
<?php
2466 stevensc 2
 
1 www 3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Controller;
6
 
7
use Laminas\Db\Adapter\AdapterInterface;
8
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
9
use Laminas\Mvc\Controller\AbstractActionController;
10
use Laminas\Log\LoggerInterface;
11
use Laminas\View\Model\ViewModel;
12
use Laminas\View\Model\JsonModel;
13
use LeadersLinked\Model\Page;
14
use LeadersLinked\Mapper\NotificationMapper;
15
use LeadersLinked\Mapper\CompanyMapper;
16
use LeadersLinked\Mapper\CompanyUserMapper;
17
use LeadersLinked\Model\Company;
18
use LeadersLinked\Mapper\PageMapper;
19
use LeadersLinked\Mapper\MessageMapper;
2466 stevensc 20
use LeadersLinked\Mapper\UserMapper;
21
use LeadersLinked\Mapper\UserProfileMapper;
1 www 22
use LeadersLinked\Mapper\CompanyUserRoleMapper;
23
use LeadersLinked\Model\Role;
24
use LeadersLinked\Library\Functions;
2466 stevensc 25
use LeadersLinked\Mapper\ConnectionMapper;
26
use LeadersLinked\Mapper\LocationMapper;
1 www 27
use LeadersLinked\Mapper\PostMapper;
2466 stevensc 28
use LeadersLinked\Mapper\ProfileVisitMapper;
1 www 29
use LeadersLinked\Model\Post;
3138 efrain 30
use LeadersLinked\Mapper\UtilMapper;
1 www 31
 
32
class HomeController extends AbstractActionController
33
{
34
    /**
35
     *
36
     * @var AdapterInterface
37
     */
38
    private $adapter;
2466 stevensc 39
 
40
 
1 www 41
    /**
42
     *
43
     * @var AbstractAdapter
44
     */
45
    private $cache;
2466 stevensc 46
 
1 www 47
    /**
48
     *
49
     * @var  LoggerInterface
50
     */
51
    private $logger;
52
 
2466 stevensc 53
 
1 www 54
    /**
55
     *
56
     * @var array
57
     */
58
    private $config;
2466 stevensc 59
 
1 www 60
    /**
61
     *
62
     * @param AdapterInterface $adapter
63
     * @param AbstractAdapter $cache
64
     * @param LoggerInterface $logger
65
     * @param array $config
66
     */
2466 stevensc 67
    public function __construct($adapter, $cache, $logger,  $config)
1 www 68
    {
69
        $this->adapter      = $adapter;
70
        $this->cache        = $cache;
71
        $this->logger       = $logger;
72
        $this->config       = $config;
73
    }
2466 stevensc 74
 
75
 
76
 
1 www 77
    public function indexAction()
78
    {
79
 
80
        $authService = new \Laminas\Authentication\AuthenticationService();
2466 stevensc 81
        if ($authService->hasIdentity()) {
82
            return $this->redirect()->toRoute('dashboard');
1 www 83
        } else {
2466 stevensc 84
            return $this->redirect()->toRoute('signin');
1 www 85
        }
86
    }
2466 stevensc 87
 
88
 
1 www 89
    public function dashboardAction()
90
    {
91
        $this->layout()->setTemplate('layout/layout.phtml');
92
        $viewModel = new ViewModel();
93
        $viewModel->setTemplate('leaders-linked/home/dashboard.phtml');
2466 stevensc 94
        return $viewModel;
1 www 95
    }
2466 stevensc 96
 
97
 
98
 
1 www 99
    public function privacyPolicyAction()
100
    {
101
        $pageMapper = PageMapper::getInstance($this->adapter);
102
        $page = $pageMapper->fetchOne(Page::PAGE_ID_PRIVACY_POLICY);
2466 stevensc 103
 
1 www 104
        $this->layout()->setTemplate('layout/layout.phtml');
105
        $viewModel = new ViewModel();
106
        $viewModel->setTemplate('leaders-linked/home/privacy-policy.phtml');
107
        $viewModel->setVariable('page', $page);
2466 stevensc 108
        return $viewModel;
1 www 109
    }
2466 stevensc 110
 
1 www 111
    public function cookiesAction()
112
    {
113
        $pageMapper = PageMapper::getInstance($this->adapter);
114
        $page = $pageMapper->fetchOne(Page::PAGE_ID_COOKIES);
2466 stevensc 115
 
1 www 116
        $this->layout()->setTemplate('layout/layout.phtml');
117
        $viewModel = new ViewModel();
118
        $viewModel->setTemplate('leaders-linked/home/cookies.phtml');
119
        $viewModel->setVariable('page', $page);
2466 stevensc 120
        return $viewModel;
1 www 121
    }
2466 stevensc 122
 
1 www 123
    public function professionalismPolicyAction()
124
    {
125
        //
2466 stevensc 126
 
1 www 127
        $pageMapper = PageMapper::getInstance($this->adapter);
128
        $page = $pageMapper->fetchOne(Page::PAGE_ID_PROFESSIONALISM_POLICY);
2466 stevensc 129
 
1 www 130
        $this->layout()->setTemplate('layout/layout.phtml');
131
        $viewModel = new ViewModel();
132
        $viewModel->setTemplate('leaders-linked/home/professionalism-policy');
133
        $viewModel->setVariable('page', $page);
2466 stevensc 134
        return $viewModel;
1 www 135
    }
2466 stevensc 136
 
137
 
1 www 138
    public function termsAndConditionsAction()
139
    {
140
        $pageMapper = PageMapper::getInstance($this->adapter);
141
        $page = $pageMapper->fetchOne(Page::PAGE_ID_TERMS_AND_CONDITIONS);
2466 stevensc 142
 
1 www 143
        $this->layout()->setTemplate('layout/layout.phtml');
144
        $viewModel = new ViewModel();
145
        $viewModel->setTemplate('leaders-linked/home/terms-and-conditions.phtml');
146
        $viewModel->setVariable('page', $page);
2466 stevensc 147
        return $viewModel;
1 www 148
    }
2466 stevensc 149
 
1 www 150
    public function checkSessionAction()
151
    {
152
 
153
        $request = $this->getRequest();
2466 stevensc 154
        if ($request->isGet()) {
155
 
1 www 156
            $currentUserPlugin = $this->plugin('currentUserPlugin');
2466 stevensc 157
            if (!$currentUserPlugin->hasIdentity()) {
1 www 158
                $flashMessenger = $this->plugin('FlashMessenger');
159
                $flashMessenger->addErrorMessage('ERROR_SESSION_NOT_FOUND');
2466 stevensc 160
 
1 www 161
                $response = [
162
                    'success' => false,
163
                    'data' => [
164
                        'message' =>  'ERROR_SESSION_NOT_FOUND',
165
                        'url' => $this->url()->fromRoute('signout')
166
                    ]
167
                ];
2466 stevensc 168
 
1 www 169
                return new JsonModel($response);
170
            }
2466 stevensc 171
 
1 www 172
            $currentUser = $currentUserPlugin->getUser();
2466 stevensc 173
 
174
 
175
            if ($currentUser->last_activity_on) {
1 www 176
                $last_activity_on = strtotime($currentUser->last_activity_on);
177
            } else {
178
                $last_activity_on = strtotime('-1 day');
179
            }
180
 
181
            $expiry_time = $last_activity_on + $this->config['leaderslinked.security.last_activity_expired'];
182
            if (time() > $expiry_time) {
2466 stevensc 183
                //$flashMessenger = $this->plugin('FlashMessenger');
184
                //$flashMessenger->addErrorMessage('ERROR_SESSION_EXPIRED');
1 www 185
 
186
                $response = [
187
                    'success' => false,
188
                    'data' => [
189
                        'message' => 'ERROR_SESSION_EXPIRED',
190
                        'url' => $this->url()->fromRoute('signout')
191
                    ]
192
                ];
193
            } else {
194
                $notificationMapper = NotificationMapper::getInstance($this->adapter);
195
                $total_notifications = $notificationMapper->fetchUnreadNotificationsCount($currentUser->id);
2466 stevensc 196
 
197
                $messageMapper = MessageMapper::getInstance($this->adapter);
1 www 198
                $total_messages =  $messageMapper->fetchCountUnreadMessagesReceiverId($currentUser->id);
199
                $response = [
200
                    'success' => true,
201
                    'data' => [
202
                        'total_notifications' => $total_notifications,
203
                        'total_messages' => $total_messages
204
                    ]
205
                ];
206
            }
207
        } else {
208
            $response = [
209
                'success' => false,
210
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
211
            ];
212
        }
2466 stevensc 213
 
1 www 214
        return new JsonModel($response);
215
    }
2466 stevensc 216
 
3262 efrain 217
 
1 www 218
    public function postAction()
219
    {
220
        $id = $this->params()->fromRoute('id');
2466 stevensc 221
 
1 www 222
        $postMapper = PostMapper::getInstance($this->adapter);
223
        $post = $postMapper->fetchOneByUuid($id);
2466 stevensc 224
 
225
        if (!$post || $post->status != Post::STATUS_ACTIVE) {
1 www 226
            $flashMessenger = $this->plugin('FlashMessenger');
2466 stevensc 227
 
228
            if (!$id) {
1 www 229
                $flashMessenger->addErrorMessage('ERROR_POST_NOT_AVAILABLE');
230
                return $this->redirect()->toRoute('dashboard');
231
            }
232
        }
2466 stevensc 233
 
234
 
1 www 235
        $this->layout()->setTemplate('layout/layout.phtml');
236
        $viewModel = new ViewModel();
237
        $viewModel->setTemplate('leaders-linked/home/post.phtml');
238
        $viewModel->setVariable('post', $post);
2466 stevensc 239
        return $viewModel;
1 www 240
    }
241
}