public function testHasAccent() { $this->assertTrue(p4string::hasAccent('azertyuéjn')); $this->assertFalse(p4string::hasAccent('azertyujn')); $this->assertFalse(p4string::hasAccent('')); $this->assertTrue(p4string::hasAccent('é')); }
/** * Mount a databox * * @param Application $app The silex application * @param Request $request The current HTTP request * @return RedirectResponse */ public function databaseMount(Application $app, Request $request) { if ('' === ($dbName = trim($request->request->get('new_dbname', '')))) { return $app->redirectPath('admin_databases', ['success' => 0, 'error' => 'no-empty']); } if (\p4string::hasAccent($dbName)) { return $app->redirectPath('admin_databases', ['success' => 0, 'error' => 'special-chars']); } if (null === $request->request->get('new_settings')) { try { $connexion = $app['conf']->get(['main', 'database']); $hostname = $connexion['host']; $port = $connexion['port']; $user = $connexion['user']; $password = $connexion['password']; $app['phraseanet.appbox']->get_connection()->beginTransaction(); $base = \databox::mount($app, $hostname, $port, $user, $password, $dbName); $base->registerAdmin($app['authentication']->getUser()); $app['phraseanet.appbox']->get_connection()->commit(); return $app->redirectPath('admin_database', ['databox_id' => $base->get_sbas_id(), 'success' => 1, 'reload-tree' => 1]); } catch (\Exception $e) { $app['phraseanet.appbox']->get_connection()->rollBack(); return $app->redirectPath('admin_databases', ['success' => 0, 'error' => 'mount-failed']); } } if (null !== $request->request->get('new_settings') && null !== ($hostname = $request->request->get('new_hostname')) && null !== ($port = $request->request->get('new_port')) && null !== ($userDb = $request->request->get('new_user')) && null !== ($passwordDb = $request->request->get('new_password'))) { try { $app['phraseanet.appbox']->get_connection()->beginTransaction(); $base = \databox::mount($app, $hostname, $port, $userDb, $passwordDb, $dbName); $base->registerAdmin($app['authentication']->getUser()); $app['phraseanet.appbox']->get_connection()->commit(); return $app->redirectPath('admin_database', ['databox_id' => $base->get_sbas_id(), 'success' => 1, 'reload-tree' => 1]); } catch (\Exception $e) { $app['phraseanet.appbox']->get_connection()->rollBack(); return $app->redirectPath('admin_databases', ['success' => 0, 'error' => 'mount-failed']); } } }