public function prepare() { // i18n I18n::bind(); $this->view()->set('lang', I18n::lang()); $db = DatabaseConfig::getInstance(); $db->setDev(NOVOSGA_DEV); $this->context = new Context($this, $db); $this->acessoService = new AcessoService(); $this->add(new \Novosga\Slim\InstallMiddleware($this->context)); $this->add(new \Novosga\Slim\AuthMiddleware($this->context)); }
public static function isNumeracaoServico() { if (App::isInstalled()) { $db = \Novosga\Config\DatabaseConfig::getInstance(); $tipoNumeracao = \Novosga\Model\Configuracao::get($db->createEntityManager(), Senha::TIPO_NUMERACAO); if ($tipoNumeracao) { return $tipoNumeracao->getValor() == Senha::NUMERACAO_SERVICO; } } return false; }
<?php /* * Novo SGA API */ require_once '../../bootstrap.php'; $app = new Slim\Slim(['debug' => false]); $db = \Novosga\Config\DatabaseConfig::getInstance(); $em = $db->createEntityManager(); $server = new \Novosga\Api\OAuth2Server($em); $api = new \Novosga\Api\ApiV1($em); $app->error(function (Exception $e) use($app) { echo json_encode(['error' => $e->getMessage(), 'code' => $e->getCode()]); }); $app->notFound(function () use($app) { echo json_encode(['error' => 'Not found', 'code' => '404']); }); /* * Autentica o usuário retornando o token de acesso. * * POST /token * { * "grant_type": "password", * "username": "******", * "password": "******", * "client_id": "..." * } * < 200 * { * "access_token": "6cdcf2e7a7bbeac1bd76dcbf33cb59b9b7341613", * "expires_in": 3600,
public function do_install(Context $context) { if ($context->request()->isPost()) { $response = new JsonResponse(true, _('Instalação concluída com sucesso')); $conn = null; $session = $context->session(); try { if (App::isInstalled()) { throw new Exception(_('O SGA já está instalado')); } $data = $session->get(InstallData::SESSION_KEY); if (!$data) { throw new Exception(_('Os dados da instalação não foram encontrados. Favor iniciar novamente')); } $db = new DatabaseConfig($data->database); $em = $db->createEntityManager(); $conn = $em->getConnection(); //$conn->beginTransaction(); $version = Configuracao::get($em, 'version'); // atualizando/migrando if ($version) { $scripts = self::migrationScripts($version->getValor(), App::VERSION); foreach ($scripts as $sql) { if (!is_readable($sql)) { $msg = _('Script SQL de instalação não encontrado (%s)'); throw new Exception(sprintf($msg, $sql)); } // executando arquivo sql de migracao $conn->exec(file_get_contents($sql)); } } else { $sqlInitFile = $this->script_create($session->get('adapter')); // verifica se consegue ler o arquivo de criacao do banco if (!is_readable($sqlInitFile)) { $msg = _('Script SQL de instalação não encontrado (%s)'); throw new Exception(sprintf($msg, $sqlInitFile)); } // executando arquivo sql de criacao $conn->exec(file_get_contents($sqlInitFile)); // instalando modulos $service = new \Novosga\Service\ModuloService($em); $modules = $this->modules(); foreach ($modules as $dir) { $service->install($dir, 'sga.' . basename($dir), 1); } // finalizando instalacao com SQL auxiliar $sqlDataFile = $this->script_data(); // verifica se consegue ler o arquivo dos dados iniciais if (!is_readable($sqlDataFile)) { $msg = _('Script SQL de instalação não encontrado (%s)'); throw new Exception(sprintf($msg, $sqlDataFile)); } // executando arquivo sql de dados iniciais $adm = $data->admin; $adm['senha'] = Security::passEncode($adm['senha']); $sql = Strings::format(file_get_contents($sqlDataFile), $adm); $conn->exec($sql); } //$conn->commit(); // atualiza versao no banco Configuracao::set($em, 'version', App::VERSION); // atualizando arquivo de configuracao $db->save(); // se sucesso limpa a sessao $context->session()->clear(); } catch (Exception $e) { if ($conn && $conn->isTransactionActive()) { $conn->rollBack(); } $response->success = false; $response->message = $e->getMessage(); } } else { $response = $this->postErrorResponse(); } return $response; }