Proyectos de Subversion LeadersLinked - Backend

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
9921 nelberth 1
<?php
2
declare(strict_types=1);
3
 
4
namespace LeadersLinked\Controller;
5
 
6
use Laminas\Authentication\AuthenticationService;
7
use Laminas\Authentication\Result as AuthResult;
8
use Laminas\Db\Adapter\AdapterInterface;
16768 efrain 9
 
9921 nelberth 10
use Laminas\Mvc\Controller\AbstractActionController;
11
use Laminas\Mvc\I18n\Translator;
12
use Laminas\Log\LoggerInterface;
13
use Laminas\View\Model\ViewModel;
14
use Laminas\View\Model\JsonModel;
15
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
9931 nelberth 16
use LeadersLinked\Form\CreateFeedForm;
17
use LeadersLinked\Library\Functions;
18
use LeadersLinked\Mapper\UserMapper;
9921 nelberth 19
 
9931 nelberth 20
use LeadersLinked\Mapper\CompanyMapper;
21
use LeadersLinked\Mapper\TopicMapper;
22
use LeadersLinked\Model\Feed;
11194 nelberth 23
use LeadersLinked\Model\HighPerformanceTeamsGroups;
9931 nelberth 24
use LeadersLinked\Mapper\FeedMapper;
25
use LeadersLinked\Mapper\HighPerformanceTeamsGroupsMapper;
26
use LeadersLinked\Model\HighPerformanceTeamsGroupsMembers;
27
use LeadersLinked\Form\HighPerformanceTeamsGroupsMembersForm;
28
use LeadersLinked\Mapper\HighPerformanceTeamsGroupsMembersMapper;
29
 
9921 nelberth 30
class HighPerformanceTeamsGroupsViewForoArticlesViewController extends AbstractActionController
31
{
32
    /**
33
     *
34
     * @var AdapterInterface
35
     */
36
    private $adapter;
37
 
38
    /**
39
     *
40
     * @var  LoggerInterface
41
     */
42
    private $logger;
43
 
44
    /**
45
     *
46
     * @var array
47
     */
48
    private $config;
49
 
50
    /**
51
     *
52
     * @param AdapterInterface $adapter
53
     * @param LoggerInterface $logger
54
     * @param array $config
55
     */
16768 efrain 56
    public function __construct($adapter, $logger, $config)
9921 nelberth 57
    {
16768 efrain 58
        $this->adapter = $adapter;
59
        $this->logger = $logger;
60
        $this->config = $config;
9921 nelberth 61
    }
62
 
63
    public function indexAction()
64
    {
9932 nelberth 65
 
66
        $currentUserPlugin = $this->plugin('currentUserPlugin');
67
        $currentUser = $currentUserPlugin->getUser();
68
        $currentCompany = $currentUserPlugin->getCompany();
11085 nelberth 69
        $group_uuid =  $this->params()->fromRoute('group_id');
70
        $category_uuid =  $this->params()->fromRoute('category_id');
71
        $article_uuid =  $this->params()->fromRoute('article_id');
9932 nelberth 72
        $request = $this->getRequest();
10121 nelberth 73
 
9931 nelberth 74
        if(!$group_uuid) {
75
            $data = [
76
                'success'   => false,
77
                'data'   => 'ERROR_INVALID_PARAMETER'
78
            ];
79
 
80
            return new JsonModel($data);
81
        }
11193 nelberth 82
        if(!$article_uuid) {
83
            $data = [
84
                'success'   => false,
85
                'data'   => 'ERROR_INVALID_PARAMETER'
86
            ];
87
 
88
            return new JsonModel($data);
89
        }
9931 nelberth 90
        if(!$category_uuid) {
91
            $data = [
92
                'success'   => false,
93
                'data'   => 'ERROR_INVALID_PARAMETER'
94
            ];
95
 
96
            return new JsonModel($data);
97
        }
98
 
11193 nelberth 99
 
9931 nelberth 100
        $highPerformanceTeamsGroupsMapper = HighPerformanceTeamsGroupsMapper::getInstance($this->adapter);
101
        $highPerformanceTeamsGroups = $highPerformanceTeamsGroupsMapper->fetchOneByUuid($group_uuid);
11193 nelberth 102
        $this->layout()->setTemplate('layout/layout-backend');
103
        $viewModel = new ViewModel();
9931 nelberth 104
        if (!$highPerformanceTeamsGroups) {
11193 nelberth 105
            $viewModel->setTemplate('leaders-linked/no-access/index.phtml');
106
            return $viewModel;
107
        }
108
        if($highPerformanceTeamsGroups->status != HighPerformanceTeamsGroups::STATUS_ACTIVE) {
109
            $viewModel->setTemplate('leaders-linked/no-access/index.phtml');
110
            return $viewModel;
9931 nelberth 111
 
11193 nelberth 112
        }
113
        $highPerformanceTeamsGroupsMembersMapper = HighPerformanceTeamsGroupsMembersMapper::getInstance($this->adapter);
114
        $highPerformanceTeamsGroupsMember = $highPerformanceTeamsGroupsMembersMapper->fetchOneByGroupIdAndUserId($highPerformanceTeamsGroups->id, $currentUser->id);
9931 nelberth 115
        if(!$highPerformanceTeamsGroupsMember) {
11193 nelberth 116
            $viewModel->setTemplate('leaders-linked/no-access/index.phtml');
117
            return $viewModel;
9931 nelberth 118
        }
119
        if(!($highPerformanceTeamsGroupsMember->status == HighPerformanceTeamsGroupsMembers::STATUS_ACCEPTED || $highPerformanceTeamsGroupsMember->status == HighPerformanceTeamsGroupsMembers::STATUS_ADDED_BY_ADMIN) ){
11193 nelberth 120
            $viewModel->setTemplate('leaders-linked/no-access/index.phtml');
121
            return $viewModel;
9931 nelberth 122
        }
123
 
11193 nelberth 124
        $topicMapper = TopicMapper::getInstance($this->adapter);
125
        $topic = $topicMapper->fetchOneByUuidAndGroupId($category_uuid,$highPerformanceTeamsGroups->id);
126
 
127
        if(!$topic){
128
            $viewModel->setTemplate('leaders-linked/no-access/index.phtml');
129
            return $viewModel;
130
        }
131
 
9921 nelberth 132
        if($request->isGet()) {
9931 nelberth 133
            $formAdd = new CreateFeedForm($this->adapter);
9921 nelberth 134
            $this->layout()->setTemplate('layout/layout-backend');
135
            $viewModel = new ViewModel();
9930 nelberth 136
            $viewModel->setTemplate('leaders-linked/high-performance-teams-groups-view-foro-articles-view/index.phtml');
9931 nelberth 137
            $viewModel->setVariables([
138
                'formAdd' => $formAdd,
139
                'group_uuid'=>$group_uuid,
140
                'group_title'=>$highPerformanceTeamsGroups->title,
10121 nelberth 141
                'category_uuid'=>$category_uuid,
142
                'article_uuid'=>$article_uuid
9931 nelberth 143
            ]);
9921 nelberth 144
            return $viewModel ;
145
 
146
 
147
        } else {
148
            return new JsonModel([
149
                'success' => false,
150
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
151
            ]);;
152
        }
153
    }
154
}