Example #1
0
 public function testLoadFileWithAnotherPrefix()
 {
     USVN_Db_Table::$prefix = "fake_";
     USVN_Db_Utils::loadFile($this->db, $this->testfile);
     $list_tables = $this->db->listTables();
     $this->assertEquals(3, sizeof($list_tables));
     $this->assertTrue(in_array('fake_users', $list_tables));
     $this->assertTrue(in_array('fake_groups', $list_tables));
 }
Example #2
0
File: DB.php Project: phpscr/usvn
    protected function setUp()
    {
        parent::setUp();
        $params = array('host' => 'localhost', 'username' => 'usvn-test', 'password' => 'usvn-test', 'dbname' => 'usvn-test');
        if (getenv('DB') == "PDO_SQLITE" || getenv('DB') === false) {
            $this->_clean();
            Install::installDb('tests/db.ini', dirname(__FILE__) . '/../../SQL/', 'localhost', 'usvn-test', 'usvn-test', 'tests/usvn.db', 'usvn_', 'PDO_SQLITE', false);
            $params['dbname'] = "tests/usvn.db";
            $this->db = Zend_Db::factory('PDO_SQLITE', $params);
            file_put_contents('tests/test.ini', '
database.adapterName = "PDO_SQLITE"
database.prefix = "usvn_"
database.options.host = "localhost"
database.options.username = "******"
database.options.password = "******"
database.options.dbname = "' . getcwd() . '/tests/usvn.db"
subversion.passwd = "' . getcwd() . '/tests/htpasswd"
', FILE_APPEND);
        } else {
            $this->db = Zend_Db::factory(getenv('DB'), $params);
            $this->_clean();
            Install::installDb('tests/db.ini', dirname(__FILE__) . '/../../SQL/', 'localhost', 'usvn-test', 'usvn-test', 'usvn-test', 'usvn_', getenv('DB'), false);
            file_put_contents('tests/test.ini', '
database.adapterName = "' . getenv('DB') . '"
database.prefix = "usvn_"
database.options.host = "localhost"
database.options.username = "******"
database.options.password = "******"
database.options.dbname = "usvn-test"
subversion.passwd = "' . getcwd() . '/tests/htpasswd"
', FILE_APPEND);
        }
        Zend_Db_Table::setDefaultAdapter($this->db);
        USVN_Db_Table::$prefix = "usvn_";
        $config = new USVN_Config_Ini('tests/test.ini', 'general');
        Zend_Registry::set('config', $config);
    }
Example #3
0
 * @since 0.6.4
 * @package tools
 *
 * This software has been written at EPITECH <http://www.epitech.net>
 * EPITECH, European Institute of Technology, Paris - FRANCE -
 * This project has been realised as part of
 * end of studies project.
 *
 * $Id$
 */
defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../app'));
require_once '../../app/bootstrap.php';
if (!isset($argv[2]) || isset($argv[3])) {
    echo "Usage: usvn-import-htpasswd.php config-file htpasswd-file\n";
    exit(1);
}
$configfile = $argv[1];
$htpasswdfile = $argv[2];
try {
    $config = new USVN_Config_Ini($configfile, 'general');
    USVN_Translation::initTranslation($config->translation->locale, APPLICATION_PATH . '/locale');
    Zend_Db_Table::setDefaultAdapter(Zend_Db::factory($config->database->adapterName, $config->database->options->toArray()));
    Zend_Db_Table::getDefaultAdapter()->getProfiler()->setEnabled(true);
    USVN_Db_Table::$prefix = $config->database->prefix;
    Zend_Registry::set('config', $config);
    $import = new USVN_ImportHtpasswd($htpasswdfile);
} catch (Exception $e) {
    echo $e->getMessage() . "\n";
    exit(1);
}
exit(0);
Example #4
0
 /**
  * This method will test connection to the database, load database schemas
  * and finally write the config file.
  *
  * Throw an exception in case of problems.
  *
  * @param string Path to the USVN config file
  * @param string Path to the SQL files
  * @param string Database host
  * @param string Database user
  * @param string Database password
  * @param string Database name
  * @param string Database table prefix (ex: usvn_)
  * @param string Database type (mysql or sqlite)
  * @param boolean Create the database before installing
  * @throw USVN_Exception
  */
 public static function installDb($config_file, $path_sql, $host, $user, $password, $database, $prefix, $adapter, $createdb)
 {
     $params = array('host' => $host, 'username' => $user, 'password' => $password, 'dbname' => $database);
     if ($createdb && ($adapter == 'PDO_MYSQL' || $adapter == 'MYSQLI')) {
         try {
             $tmp_params = $params;
             if ($adapter == 'PDO_MYSQL' || $adapter == 'MYSQLI') {
                 $tmp_params['dbname'] = 'mysql';
             }
             $db = Zend_Db::factory($adapter, $tmp_params);
             if ($adapter == 'PDO_MYSQL') {
                 $db->query("CREATE DATABASE `{$database}`;");
             } else {
                 if ($adapter == 'MYSQLI') {
                     $cnx = $db->getConnection();
                     $cnx->query("CREATE DATABASE `{$database}`;");
                 }
             }
             $db->closeConnection();
         } catch (Exception $e) {
             throw new USVN_Exception(T_("Can't create database\n") . $e->getMessage());
         }
     }
     try {
         $db = Zend_Db::factory($adapter, $params);
         $db->getConnection();
     } catch (Exception $e) {
         throw new USVN_Exception(T_("Can't connect to database.\n") . ' ' . $e->getMessage());
     }
     Zend_Db_Table::setDefaultAdapter($db);
     USVN_Db_Table::$prefix = $prefix;
     try {
         if ($adapter == 'PDO_MYSQL' || $adapter == 'MYSQLI') {
             USVN_Db_Utils::loadFile($db, $path_sql . '/mysql.sql');
         } else {
             if ($adapter == 'PDO_SQLITE') {
                 USVN_Db_Utils::loadFile($db, $path_sql . '/sqlite.sql');
             } else {
                 throw new USVN_Exception(T_("Invalid adapter %s.\n") . $adapter);
             }
         }
     } catch (Exception $e) {
         try {
             USVN_Db_Utils::deleteAllTables($db, $prefix);
         } catch (Exception $e2) {
         }
         $db->closeConnection();
         throw new USVN_Exception(T_("Can't load SQL file.\n") . $e->getMessage());
     }
     $db->closeConnection();
     try {
         $config = Install::_loadConfig($config_file);
         $array = array('adapterName' => $adapter, 'prefix' => $prefix, 'options' => array('host' => $host, 'username' => $user, 'password' => $password, 'dbname' => $database));
         if ($adapter == 'PDO_SQLITE') {
             unset($array['options']['host']);
             unset($array['options']['username']);
             unset($array['options']['password']);
         }
         $config->database = $array;
         $config->save();
     } catch (Exception $e) {
         USVN_Db_Utils::deleteAllTables($db, $prefix);
         $db->closeConnection();
         throw new USVN_Exception(T_("Can't write config file %s.\n") . ' ' . $e->getMessage(), $config_file);
     }
 }
Example #5
0
 /**
  * Overload delete's method to generate the authz file.
  *
  * @param  string $parentTableClassname
  * @param  array  $primaryKey
  * @return int    Number of affected rows
  */
 public function delete($where)
 {
     $res = parent::delete($where);
     USVN_Authz::generate();
     return $res;
 }
Example #6
0
 /**
  * Updates existing rows.
  *
  * @param array Column-value pairs.
  * @param string An SQL WHERE clause.
  * @return int The number of rows updated.
  */
 public function update(array $data, $where)
 {
     $res = parent::update($data, $where);
     $this->updateHtpasswd();
     return $res;
 }