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); } }