public static function install($data, &$fail, &$errno, &$error)
 {
     // Datenbank einrichten
     if (!isset($data['action']) || $data['action'] != 'update') {
         if (!$fail && (isset($data['DB']['db_override']) && $data['DB']['db_override'] === 'override')) {
             $sql = "DROP SCHEMA IF EXISTS `" . $data['DB']['db_name'] . "`;";
             $oldName = $data['DB']['db_name'];
             $data['DB']['db_name'] = null;
             $result = DBRequest::request($sql, false, $data);
             if ($result["errno"] !== 0) {
                 $fail = true;
                 $errno = $result["errno"];
                 $error = isset($result["error"]) ? $result["error"] : '';
             }
             $data['DB']['db_name'] = $oldName;
         }
     }
     if (!$fail) {
         $add = isset($data['DB']['db_ignore']) && $data['DB']['db_ignore'] === 'ignore' || isset($data['action']) && $data['action'] == 'update' ? 'IF NOT EXISTS ' : '';
         $sql = "CREATE SCHEMA {$add}`" . $data['DB']['db_name'] . "` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;";
         $oldName = $data['DB']['db_name'];
         $data['DB']['db_name'] = null;
         $result = DBRequest::request($sql, false, $data);
         if ($result["errno"] !== 0) {
             $fail = true;
             $errno = $result["errno"];
             $error = isset($result["error"]) ? $result["error"] : '';
         }
         $data['DB']['db_name'] = $oldName;
     }
     // CControl+DBQuery2 einrichten
     $res = array();
     if (!$fail) {
         $list = array('DB/CControl', 'DB/DBQuery2');
         $platform = Installation::PlattformZusammenstellen($data);
         for ($i = 0; $i < count($list); $i++) {
             $url = $list[$i];
             //$data['PL']['init'];
             // inits all components
             $result = Request::post($data['PL']['url'] . '/' . $url . '/platform', array(), Platform::encodePlatform($platform));
             $res[$url] = array();
             if (isset($result['content']) && isset($result['status']) && $result['status'] === 201) {
                 $res[$url]['status'] = 201;
             } else {
                 $res[$url]['status'] = 409;
                 $fail = true;
                 if (isset($result['status'])) {
                     $errno = $result['status'];
                     $res[$url]['status'] = $result['status'];
                 }
                 ///if (isset($result['content'])) echo $result['content'];
             }
         }
     }
     return $res;
 }
 public static function install($data, &$fail, &$errno, &$error)
 {
     if (!$fail && (isset($data['action']) && $data['action'] == 'update' || isset($data['DB']['db_user_override_operator']) && $data['DB']['db_user_override_operator'] === 'override')) {
         $oldName = $data['DB']['db_name'];
         $data['DB']['db_name'] = null;
         $sql = "DROP USER '{$data['DB']['db_user_operator']}'@'%';";
         $sql2 = "DROP USER '{$data['DB']['db_user_operator']}'@'localhost';";
         $result = DBRequest::request2($sql, false, $data);
         $result = DBRequest::request2($sql2, false, $data);
         /*if ($result["errno"] !== 0){
               $fail = true; $errno = $result["errno"];$error = isset($result["error"]) ? $result["error"] : '';
           }*/
         $data['DB']['db_name'] = $oldName;
     }
     $userExists = false;
     if (!$fail) {
         $oldName = $data['DB']['db_name'];
         $data['DB']['db_name'] = null;
         $sql = "SELECT count(1) as 'exists' FROM mysql.user WHERE user = '******'DB']['db_user_operator']}';";
         $result = DBRequest::request($sql, false, $data);
         if ($result["errno"] !== 0 || !isset($result["content"])) {
             $fail = true;
             $errno = $result["errno"];
             $error = isset($result["error"]) ? $result["error"] : '';
         } else {
             $result = DBJson::getRows($result['content']);
             if (count($result) > 0 && isset($result[0]['exists']) && $result[0]['exists'] > 0) {
                 $userExists = true;
             }
         }
         $data['DB']['db_name'] = $oldName;
     }
     if (!$fail && !$userExists) {
         $oldName = $data['DB']['db_name'];
         $data['DB']['db_name'] = null;
         $sql = "GRANT CREATE VIEW,EXECUTE,ALTER ROUTINE,CREATE ROUTINE,SHOW VIEW,CREATE TEMPORARY TABLES,INDEX,ALTER,SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,TRIGGER " . "ON `{$oldName}`.* " . "TO '{$data['DB']['db_user_operator']}'@'%' " . "IDENTIFIED BY '{$data['DB']['db_passwd_operator']}';";
         $sql .= "GRANT CREATE VIEW,EXECUTE,ALTER ROUTINE,CREATE ROUTINE,SHOW VIEW,CREATE TEMPORARY TABLES,INDEX,ALTER,SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,TRIGGER " . "ON `{$oldName}`.* " . "TO '{$data['DB']['db_user_operator']}'@'localhost' " . "IDENTIFIED BY '{$data['DB']['db_passwd_operator']}';";
         $result = DBRequest::request2($sql, false, $data);
         if ($result[0]["errno"] !== 0 && (count($result) < 2 || $result[1]["errno"] !== 0)) {
             $fail = true;
             $errno = $result[0]["errno"];
             $error = isset($result[0]["error"]) ? $result[0]["error"] : '';
         }
         $data['DB']['db_name'] = $oldName;
     } elseif ($userExists) {
         $fail = true;
         $errno = 0;
         $error = 'user already exists';
     }
     return null;
 }
Exemplo n.º 3
0
 public static function install($data, &$fail, &$errno, &$error)
 {
     if (!$fail) {
         $auth = new Authentication();
         $salt = $auth->generateSalt();
         $passwordHash = $auth->hashPassword($data['DB']['db_passwd_insert'], $salt);
         $sql = "INSERT INTO `User` (`U_id`, `U_username`, `U_email`, `U_lastName`, `U_firstName`, `U_title`, `U_password`, `U_flag`, `U_salt`, `U_failed_logins`, `U_externalId`, `U_studentNumber`, `U_isSuperAdmin`, `U_comment`) VALUES (NULL, '{$data['DB']['db_user_insert']}', '{$data['DB']['db_email_insert']}', '{$data['DB']['db_last_name_insert']}', '{$data['DB']['db_first_name_insert']}', NULL, '{$passwordHash}', 1, '{$salt}', 0, NULL, NULL, 1, NULL);";
         $result = DBRequest::request($sql, false, $data);
         if ($result["errno"] !== 0) {
             $fail = true;
             $errno = $result["errno"];
             $error = isset($result["error"]) ? $result["error"] : '';
         }
     }
     return null;
 }
Exemplo n.º 4
0
 public function getTableReferences()
 {
     Logger::Log('starts GET GetTableReferences', LogLevel::DEBUG);
     if (!file_exists(dirname(__FILE__) . '/config.ini')) {
         $this->_app->response->setStatus(409);
         $this->_app->stop();
     }
     $conf = parse_ini_file(dirname(__FILE__) . '/config.ini', TRUE);
     // starts a query
     ob_start();
     eval("?>" . file_get_contents(dirname(__FILE__) . '/Sql/GetTableReferences.sql'));
     $sql = ob_get_contents();
     ob_end_clean();
     $result = DBRequest::request($sql, false, $conf);
     // checks the correctness of the query
     if ((!isset($result['errno']) || !$result['errno']) && $result['content']) {
         $data = DBJson::getRows($result['content']);
         $res = array();
         foreach ($data as $dat) {
             if (!isset($res)) {
                 $res[$dat['table_name']] = array();
             }
             $res[$dat['table_name']][] = $dat['referenced_table_name'];
         }
         $this->_app->response->setStatus(200);
         $this->_app->response->setBody(json_encode($res));
     } else {
         Logger::Log('GET GetTableReferences failed', LogLevel::ERROR);
         $this->_app->response->setStatus(409);
         $this->_app->response->setBody('');
         $this->_app->stop();
     }
 }