Esempio n. 1
0
 protected function _init()
 {
     $app = App::i();
     $this->_layout = 'home';
     $app->applyHookBoundTo($this, 'theme.init:before');
     $app->hook('<<GET|POST|PUT|DELETE>>(<<*>>.<<*>>):before', function () use($app) {
         $actions = array('ponto_cultura', 'site', 'auth', 'user');
         // /agents/single/{id} : PUT
         if (!in_array($this->id, $actions)) {
             $app->pass();
         }
     });
     $this->_enqueueStyles();
     $this->_enqueueScripts();
     $app->applyHookBoundTo($this, 'theme.init:after');
     $app->hook('view.render(<<*>>):before', function () use($app) {
         $this->assetManager->publishFolder('img/');
         $this->assetManager->publishFolder('fonts/');
     });
     $app->hook('auth.createUser:after', function ($user, $data) use($app) {
         $project = $app->repo('Project')->find(1);
         //By(['owner' => 1], ['id' => 'asc'], 1);
         // define o agente padrão (profile) como rascunho
         $app->disableAccessControl();
         // não sei se é necessário desabilitar
         $user->profile->status = \MapasCulturais\Entities\Agent::STATUS_DRAFT;
         $user->profile->save(true);
         // criando o agente coletivo vazio
         $entidade = new \MapasCulturais\Entities\Agent();
         $entidade->parent = $user->profile;
         $entidade->name = '';
         $entidade->status = \MapasCulturais\Entities\Agent::STATUS_DRAFT;
         $entidade->save(true);
         // criando a inscrição
         //$projeto = $projects[0];
         // relaciona o agente responsável, que é o proprietário da inscrição
         $registration = new \MapasCulturais\Entities\Registration();
         $registration->owner = $user->profile;
         $registration->project = $project;
         // inserir que as inscricoes online estao ativadas
         $registration->save(true);
         $user->cultura_viva_ids = json_encode(['agente_individual' => $user->profile->id, 'agente_coletivo' => $entidade->id, 'inscricao' => $registration->id]);
         $user->save(true);
         // relaciona o agente coletivo
         $registration->createAgentRelation($entidade, 'entidade', false, true, true);
         $app->enableAccessControl();
         //$app->em->flush(); sem o true no save, ele cria um transaction no bd
     });
     if (!$app->user->is('guest')) {
         $this->jsObject['ids'] = json_decode($app->user->cultura_viva_ids);
     }
 }
 function ALL_registra()
 {
     $this->requireAuthentication();
     $app = App::i();
     if (!$app->user->redeCulturaViva) {
         $user = $app->user;
         $project = $app->repo('Project')->find($app->config['redeCulturaViva.projectId']);
         //By(['owner' => 1], ['id' => 'asc'], 1);
         //
         // define o agente padrão (profile) como rascunho
         $app->disableAccessControl();
         // não sei se é necessário desabilitar
         // criando o agente coletivo vazio
         $entidade = new \MapasCulturais\Entities\Agent();
         $entidade->type = 2;
         $entidade->parent = $user->profile;
         $entidade->name = '';
         $entidade->status = \MapasCulturais\Entities\Agent::STATUS_DRAFT;
         // criando o agente coletivo vazio
         $ponto = new \MapasCulturais\Entities\Agent();
         $ponto->type = 2;
         $ponto->parent = $user->profile;
         $ponto->name = '';
         $ponto->status = \MapasCulturais\Entities\Agent::STATUS_DRAFT;
         if (isset($this->data['comCNPJ']) && $this->data['comCNPJ'] && isset($this->data['CNPJ']) && $this->data['CNPJ']) {
             $entidade->cnpj = $this->data['CNPJ'];
             $entidade->tipoOrganizacao = 'entidade';
             $this->_populateAgents($app->user->profile, $entidade, $ponto);
         }
         $ponto->save(true);
         $entidade->save(true);
         $app->user->profile->save(true);
         // criando a inscrição
         // relaciona o agente responsável, que é o proprietário da inscrição
         $registration = new \MapasCulturais\Entities\Registration();
         $registration->owner = $user->profile;
         $registration->project = $project;
         // inserir que as inscricoes online estao ativadas
         $registration->save(true);
         $user->redeCulturaViva = json_encode(['agenteIndividual' => $user->profile->id, 'agenteEntidade' => $entidade->id, 'agentePonto' => $ponto->id, 'inscricao' => $registration->id, 'comCNPJ' => isset($this->data['comCNPJ']) && $this->data['comCNPJ']]);
         $user->save(true);
         // relaciona o agente coletivo
         $registration->createAgentRelation($entidade, 'entidade', false, true, true);
         $registration->createAgentRelation($ponto, 'ponto', false, true, true);
         $app->enableAccessControl();
     }
     if ($app->request->isAjax()) {
         $this->json(true);
     } else {
         $app->redirect($app->createUrl('cadastro', 'index'), 307);
     }
 }