diff options
Diffstat (limited to 'lib/setup/mssql.php')
-rw-r--r-- | lib/setup/mssql.php | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/lib/setup/mssql.php b/lib/setup/mssql.php index b3e08fb4fa5..a1414a9ac57 100644 --- a/lib/setup/mssql.php +++ b/lib/setup/mssql.php @@ -2,14 +2,12 @@ namespace OC\Setup; -class MSSQL { - public static function setupDatabase($dbhost, $dbuser, $dbpass, $dbname, $dbtableprefix) { - $l = \OC_Setup::getTrans(); - +class MSSQL extends AbstractDatabase { + public function setupDatabase() { //check if the database user has admin right - $masterConnectionInfo = array( "Database" => "master", "UID" => $dbuser, "PWD" => $dbpass); + $masterConnectionInfo = array( "Database" => "master", "UID" => $this->dbuser, "PWD" => $this->dbpassword); - $masterConnection = @sqlsrv_connect($dbhost, $masterConnectionInfo); + $masterConnection = @sqlsrv_connect($this->dbhost, $masterConnectionInfo); if(!$masterConnection) { $entry = null; if( ($errors = sqlsrv_errors() ) != null) { @@ -17,26 +15,26 @@ class MSSQL { } else { $entry = ''; } - throw new DatabaseSetupException($l->t('MS SQL username and/or password not valid: %s', array($entry)), - $l->t('You need to enter either an existing account or the administrator.')); + throw new \DatabaseSetupException($this->trans->t('MS SQL username and/or password not valid: %s', array($entry)), + $this->trans->t('You need to enter either an existing account or the administrator.')); } - \OC_Config::setValue('dbuser', $dbuser); - \OC_Config::setValue('dbpassword', $dbpass); + \OC_Config::setValue('dbuser', $this->dbuser); + \OC_Config::setValue('dbpassword', $this->dbpassword); - self::createDBLogin($dbuser, $dbpass, $masterConnection); + $this->createDBLogin($masterConnection); - self::createDatabase($dbname, $masterConnection); + $this->createDatabase($masterConnection); - self::createDBUser($dbuser, $dbname, $masterConnection); + $this->createDBUser($masterConnection); sqlsrv_close($masterConnection); - self::createDatabaseStructure($dbhost, $dbname, $dbuser, $dbpass, $dbtableprefix); + $this->createDatabaseStructure(); } - private static function createDBLogin($name, $password, $connection) { - $query = "SELECT * FROM master.sys.server_principals WHERE name = '".$name."';"; + private function createDBLogin($connection) { + $query = "SELECT * FROM master.sys.server_principals WHERE name = '".$this->dbuser."';"; $result = sqlsrv_query($connection, $query); if ($result === false) { if ( ($errors = sqlsrv_errors() ) != null) { @@ -59,7 +57,7 @@ class MSSQL { \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); } else { if ($row == null) { - $query = "CREATE LOGIN [".$name."] WITH PASSWORD = '".$password."';"; + $query = "CREATE LOGIN [".$this->dbuser."] WITH PASSWORD = '".$this->dbpassword."';"; $result = sqlsrv_query($connection, $query); if (!$result or $result === false) { if ( ($errors = sqlsrv_errors() ) != null) { @@ -75,8 +73,8 @@ class MSSQL { } } - private static function createDBUser($name, $dbname, $connection) { - $query = "SELECT * FROM [".$dbname."].sys.database_principals WHERE name = '".$name."';"; + private function createDBUser($connection) { + $query = "SELECT * FROM [".$this->dbname."].sys.database_principals WHERE name = '".$this->dbuser."';"; $result = sqlsrv_query($connection, $query); if ($result === false) { if ( ($errors = sqlsrv_errors() ) != null) { @@ -99,7 +97,7 @@ class MSSQL { \OC_Log::write('setup.mssql', $entry, \OC_Log::WARN); } else { if ($row == null) { - $query = "USE [".$dbname."]; CREATE USER [".$name."] FOR LOGIN [".$name."];"; + $query = "USE [".$this->dbname."]; CREATE USER [".$this->dbuser."] FOR LOGIN [".$this->dbuser."];"; $result = sqlsrv_query($connection, $query); if (!$result || $result === false) { if ( ($errors = sqlsrv_errors() ) != null) { @@ -112,7 +110,7 @@ class MSSQL { } } - $query = "USE [".$dbname."]; EXEC sp_addrolemember 'db_owner', '".$name."';"; + $query = "USE [".$this->dbname."]; EXEC sp_addrolemember 'db_owner', '".$this->dbuser."';"; $result = sqlsrv_query($connection, $query); if (!$result || $result === false) { if ( ($errors = sqlsrv_errors() ) != null) { @@ -127,8 +125,8 @@ class MSSQL { } } - private static function createDatabase($dbname, $connection) { - $query = "CREATE DATABASE [".$dbname."];"; + private function createDatabase($connection) { + $query = "CREATE DATABASE [".$this->dbname."];"; $result = sqlsrv_query($connection, $query); if (!$result || $result === false) { if ( ($errors = sqlsrv_errors() ) != null) { @@ -141,13 +139,15 @@ class MSSQL { } } - private static function createDatabaseStructure($dbhost, $dbname, $dbuser, $dbpass, $dbtableprefix) { - $connectionInfo = array( "Database" => $dbname, "UID" => $dbuser, "PWD" => $dbpass); + private function createDatabaseStructure() { + $connectionInfo = array( "Database" => $this->dbname, "UID" => $this->dbuser, "PWD" => $this->dbpassword); - $connection = @sqlsrv_connect($dbhost, $connectionInfo); + $connection = @sqlsrv_connect($this->dbhost, $connectionInfo); //fill the database if needed - $query = "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '{$dbname}' AND TABLE_NAME = '{$dbtableprefix}users'"; + $query = "SELECT * FROM INFORMATION_SCHEMA.TABLES" + ." WHERE TABLE_SCHEMA = '".$this->dbname."'" + ." AND TABLE_NAME = '".$this->dbtableprefix."users'"; $result = sqlsrv_query($connection, $query); if ($result === false) { if ( ($errors = sqlsrv_errors() ) != null) { |