Merged in ronald-quentaprocessmaker/processmaker/HOR-2142-B (pull request #5215)
HOR-2294
This commit is contained in:
@@ -604,6 +604,11 @@ function run_workspace_restore($args, $opts) {
|
||||
|
||||
G::verifyPath(PATH_DATA . 'upgrade', true);
|
||||
|
||||
if(isset($args[1]) && strlen($args[1])>=30){
|
||||
eprintln("Invalid workspace name, insert a maximum of 30 characters.", 'red');
|
||||
return;
|
||||
}
|
||||
|
||||
if (strpos($filename, "/") === false && strpos($filename, '\\') === false) {
|
||||
$filename = PATH_DATA . "backups/$filename";
|
||||
if (!file_exists($filename) && substr_compare($filename, ".tar", -4, 4, true) != 0)
|
||||
|
||||
@@ -139,6 +139,7 @@ class Installer
|
||||
$islocal = (strcmp(substr($this->options['database']['hostname'], 0, strlen('localhost')), 'localhost') === 0) || (strcmp(substr($this->options['database']['hostname'], 0, strlen('127.0.0.1')), '127.0.0.1') === 0);
|
||||
|
||||
$this->wf_site_name = $wf = $this->options['advanced']['ao_db_wf'];
|
||||
$this->wf_user_db = isset($this->options['advanced']['ao_user_wf'])?$this->options['advanced']['ao_user_wf']:uniqid('wf_');
|
||||
|
||||
$this->rbac_site_name = $rb = $this->options['advanced']['ao_db_rb'];
|
||||
$this->report_site_name = $rp = $this->options['advanced']['ao_db_rp'];
|
||||
@@ -156,7 +157,7 @@ class Installer
|
||||
|
||||
if ($this->cc_status == 1) {
|
||||
$host = ($islocal) ? "localhost" : "%";
|
||||
$this->run_query("GRANT ALL PRIVILEGES ON `$wf`.* TO $wf@'$host' IDENTIFIED BY '{$this->options['password']}' WITH GRANT OPTION", "Grant privileges for user $wf on database $wf");
|
||||
$this->run_query("GRANT ALL PRIVILEGES ON `$wf`.* TO {$this->wf_user_db}@'$host' IDENTIFIED BY '{$this->options['password']}' WITH GRANT OPTION", "Grant privileges for user {$this->wf_user_db} on database $wf");
|
||||
}
|
||||
|
||||
/* Dump schema workflow && data */
|
||||
@@ -182,12 +183,12 @@ class Installer
|
||||
$workspace = $this->options['name'];
|
||||
|
||||
$endpoint = sprintf(
|
||||
'%s://%s/sys%s/%s/%s/oauth2/grant',
|
||||
$http,
|
||||
$host,
|
||||
$workspace,
|
||||
$lang,
|
||||
SYS_SKIN
|
||||
'%s://%s/sys%s/%s/%s/oauth2/grant',
|
||||
$http,
|
||||
$host,
|
||||
$workspace,
|
||||
$lang,
|
||||
SYS_SKIN
|
||||
);
|
||||
|
||||
// inserting the outh_client
|
||||
@@ -227,9 +228,9 @@ class Installer
|
||||
|
||||
//Generate the db.php file
|
||||
$db_file = $path_site . 'db.php';
|
||||
$db_text = "<?php\n" . "// Processmaker configuration\n" . "define ('DB_ADAPTER', 'mysql' );\n" . "define ('DB_HOST', '" . $this->options['database']['hostname'] . ":" . $myPort . "' );\n" . "define ('DB_NAME', '" . $wf . "' );\n" . "define ('DB_USER', '" . (($this->cc_status == 1) ? $wf : $this->options['database']['username']) . "' );\n" . "define ('DB_PASS', '" . (($this->cc_status == 1) ? $this->options['password'] : $this->options['database']['password']) . "' );\n" . "define ('DB_RBAC_HOST', '" . $this->options['database']['hostname'] . ":" . $myPort . "' );\n" . "define ('DB_RBAC_NAME', '" . $rb . "' );\n" . "define ('DB_RBAC_USER', '" . (($this->cc_status == 1) ? $rb : $this->options['database']['username']) . "' );\n" . "define ('DB_RBAC_PASS', '" . (($this->cc_status == 1) ? $this->options['password'] : $this->options['database']['password']) . "' );\n" . "define ('DB_REPORT_HOST', '" . $this->options['database']['hostname'] . ":" . $myPort . "' );\n" . "define ('DB_REPORT_NAME', '" . $rp . "' );\n" . "define ('DB_REPORT_USER', '" . (($this->cc_status == 1) ? $rp : $this->options['database']['username']) . "' );\n" . "define ('DB_REPORT_PASS', '" . (($this->cc_status == 1) ? $this->options['password'] : $this->options['database']['password']) . "' );\n";
|
||||
$db_text = "<?php\n" . "// Processmaker configuration\n" . "define ('DB_ADAPTER', 'mysql' );\n" . "define ('DB_HOST', '" . $this->options['database']['hostname'] . ":" . $myPort . "' );\n" . "define ('DB_NAME', '" . $wf . "' );\n" . "define ('DB_USER', '" . (($this->cc_status == 1) ? $this->wf_user_db : $this->options['database']['username']) . "' );\n" . "define ('DB_PASS', '" . (($this->cc_status == 1) ? $this->options['password'] : $this->options['database']['password']) . "' );\n" . "define ('DB_RBAC_HOST', '" . $this->options['database']['hostname'] . ":" . $myPort . "' );\n" . "define ('DB_RBAC_NAME', '" . $rb . "' );\n" . "define ('DB_RBAC_USER', '" . (($this->cc_status == 1) ? $this->wf_user_db : $this->options['database']['username']) . "' );\n" . "define ('DB_RBAC_PASS', '" . (($this->cc_status == 1) ? $this->options['password'] : $this->options['database']['password']) . "' );\n" . "define ('DB_REPORT_HOST', '" . $this->options['database']['hostname'] . ":" . $myPort . "' );\n" . "define ('DB_REPORT_NAME', '" . $rp . "' );\n" . "define ('DB_REPORT_USER', '" . (($this->cc_status == 1) ? $this->wf_user_db : $this->options['database']['username']) . "' );\n" . "define ('DB_REPORT_PASS', '" . (($this->cc_status == 1) ? $this->options['password'] : $this->options['database']['password']) . "' );\n";
|
||||
if (defined('PARTNER_FLAG') || isset($_REQUEST['PARTNER_FLAG'])) {
|
||||
$db_text .= "define ('PARTNER_FLAG', " . ((defined('PARTNER_FLAG') && PARTNER_FLAG != '') ? PARTNER_FLAG : ((isset($_REQUEST['PARTNER_FLAG'])) ? $_REQUEST['PARTNER_FLAG']:'false')) . ");\n";
|
||||
$db_text .= "define ('PARTNER_FLAG', " . ((defined('PARTNER_FLAG') && PARTNER_FLAG != '') ? PARTNER_FLAG : ((isset($_REQUEST['PARTNER_FLAG'])) ? $_REQUEST['PARTNER_FLAG'] : 'false')) . ");\n";
|
||||
if (defined('SYSTEM_NAME')) {
|
||||
$db_text .= " define ('SYSTEM_NAME', '" . SYSTEM_NAME . "');\n";
|
||||
}
|
||||
|
||||
@@ -233,9 +233,11 @@ class workspaceTools
|
||||
|
||||
if ($this->onedb) {
|
||||
$dbInfo = $this->getDBInfo();
|
||||
$dbPrefix = array('DB_NAME' => 'wf_', 'DB_USER' => 'wf_', 'DB_RBAC_NAME' => 'wf_', 'DB_RBAC_USER' => 'wf_', 'DB_REPORT_NAME' => 'wf_', 'DB_REPORT_USER' => 'wf_');
|
||||
$dbPrefix = array('DB_NAME' => 'wf_', 'DB_RBAC_NAME' => 'wf_', 'DB_REPORT_NAME' => 'wf_');
|
||||
$dbPrefixUser = array('DB_USER' => 'wf_', 'DB_RBAC_USER' => 'wf_', 'DB_REPORT_USER' => 'wf_');
|
||||
} else {
|
||||
$dbPrefix = array('DB_NAME' => 'wf_', 'DB_USER' => 'wf_', 'DB_RBAC_NAME' => 'rb_', 'DB_RBAC_USER' => 'rb_', 'DB_REPORT_NAME' => 'rp_', 'DB_REPORT_USER' => 'rp_');
|
||||
$dbPrefix = array('DB_NAME' => 'wf_', 'DB_RBAC_NAME' => 'rb_', 'DB_REPORT_NAME' => 'rp_');
|
||||
$dbPrefixUser = array('DB_USER' => 'wf_', 'DB_RBAC_USER' => 'rb_', 'DB_REPORT_USER' => 'rp_');
|
||||
}
|
||||
|
||||
if (array_search($key, array('DB_HOST', 'DB_RBAC_HOST', 'DB_REPORT_HOST')) !== false) {
|
||||
@@ -261,6 +263,14 @@ class workspaceTools
|
||||
}
|
||||
$this->resetDBDiff[$value] = $dbName;
|
||||
$value = $dbName;
|
||||
} elseif (array_key_exists($key, $dbPrefixUser)) {
|
||||
if ($this->resetDBNames) {
|
||||
$dbName = $this->dbGrantUser;
|
||||
} else {
|
||||
$dbName = $value;
|
||||
}
|
||||
$this->resetDBDiff['DB_USER'] = $dbName;
|
||||
$value = $dbName;
|
||||
}
|
||||
return $matches[1] . $value . $matches[4];
|
||||
}
|
||||
@@ -288,6 +298,10 @@ class workspaceTools
|
||||
$this->resetDBDiff = array();
|
||||
$this->onedb = $onedb;
|
||||
$this->unify = $unify;
|
||||
if ($resetDBNames) {
|
||||
$this->dbGrantUser = uniqid('wf_');
|
||||
}
|
||||
|
||||
|
||||
if (!$this->workspaceExists()) {
|
||||
throw new Exception("Could not find db.php in the workspace");
|
||||
@@ -1716,8 +1730,10 @@ class workspaceTools
|
||||
|
||||
foreach ($metadata->databases as $db) {
|
||||
if ($dbName != $newDBNames[$db->name]) {
|
||||
$dbName = $newDBNames[$db->name];
|
||||
|
||||
$dbName = $dbUser = $newDBNames[$db->name];
|
||||
if(isset($newDBNames['DB_USER'])){
|
||||
$dbUser = $newDBNames['DB_USER'];
|
||||
}
|
||||
if (mysql_select_db($dbName, $link)) {
|
||||
if (!$overwrite) {
|
||||
throw new Exception("Destination Database already exist (use -o to overwrite)");
|
||||
@@ -1727,8 +1743,8 @@ class workspaceTools
|
||||
CLI::logging("+> Restoring database {$db->name} to $dbName\n");
|
||||
$versionBackupEngine = (isset($metadata->backupEngineVersion)) ? $metadata->backupEngineVersion : 1;
|
||||
$workspace->executeSQLScript($dbName, "$tempDirectory/{$db->name}.sql", $aParameters, $versionBackupEngine);
|
||||
$workspace->createDBUser($dbName, $db->pass, "localhost", $dbName);
|
||||
$workspace->createDBUser($dbName, $db->pass, "%", $dbName);
|
||||
$workspace->createDBUser($dbUser, $db->pass, "localhost", $dbName);
|
||||
$workspace->createDBUser($dbUser, $db->pass, "%", $dbName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -724,18 +724,20 @@ class Installer extends Controller
|
||||
|
||||
// CREATE users and GRANT Privileges
|
||||
$wf_workpace = $wf;
|
||||
$wfGrantUser = uniqid('wf_');
|
||||
$rb_workpace = $wf;
|
||||
$rp_workpace = $wf;
|
||||
if (!$userLogged) {
|
||||
$wfPass = G::generate_password( 15 );
|
||||
$this->setGrantPrivilegesMySQL( $wf, $wfPass, $wf, $db_hostname );
|
||||
$this->setGrantPrivilegesMySQL( $rb, $wfPass, $wf, $db_hostname );
|
||||
$this->setGrantPrivilegesMySQL( $rp, $wfPass, $wf, $db_hostname );
|
||||
$this->setGrantPrivilegesMySQL( $wfGrantUser, $wfPass, $wf, $db_hostname );
|
||||
$this->setGrantPrivilegesMySQL( $wfGrantUser, $wfPass, $wf, $db_hostname );
|
||||
$this->setGrantPrivilegesMySQL( $wfGrantUser, $wfPass, $wf, $db_hostname );
|
||||
} else {
|
||||
$wfPass = $db_password;
|
||||
$rbPass = $db_password;
|
||||
$rpPass = $db_password;
|
||||
$wf = $db_username;
|
||||
$wfGrantUser = $db_username;
|
||||
$rb = $db_username;
|
||||
$rp = $db_username;
|
||||
}
|
||||
@@ -758,15 +760,15 @@ class Installer extends Controller
|
||||
$dbText .= sprintf( " define ('DB_ADAPTER', '%s' );\n", 'mysql' );
|
||||
$dbText .= sprintf( " define ('DB_HOST', '%s' );\n", $db_host );
|
||||
$dbText .= sprintf( " define ('DB_NAME', '%s' );\n", $wf_workpace );
|
||||
$dbText .= sprintf( " define ('DB_USER', '%s' );\n", $wf );
|
||||
$dbText .= sprintf( " define ('DB_USER', '%s' );\n", $wfGrantUser );
|
||||
$dbText .= sprintf( " define ('DB_PASS', '%s' );\n", $wfPass );
|
||||
$dbText .= sprintf( " define ('DB_RBAC_HOST', '%s' );\n", $db_host );
|
||||
$dbText .= sprintf( " define ('DB_RBAC_NAME', '%s' );\n", $wf_workpace );
|
||||
$dbText .= sprintf( " define ('DB_RBAC_USER', '%s' );\n", $wf );
|
||||
$dbText .= sprintf( " define ('DB_RBAC_USER', '%s' );\n", $wfGrantUser );
|
||||
$dbText .= sprintf( " define ('DB_RBAC_PASS', '%s' );\n", $wfPass );
|
||||
$dbText .= sprintf( " define ('DB_REPORT_HOST', '%s' );\n", $db_host );
|
||||
$dbText .= sprintf( " define ('DB_REPORT_NAME', '%s' );\n", $wf_workpace );
|
||||
$dbText .= sprintf( " define ('DB_REPORT_USER', '%s' );\n", $wf );
|
||||
$dbText .= sprintf( " define ('DB_REPORT_USER', '%s' );\n", $wfGrantUser );
|
||||
$dbText .= sprintf( " define ('DB_REPORT_PASS', '%s' );\n", $wfPass );
|
||||
|
||||
if (defined('PARTNER_FLAG') || isset($_REQUEST['PARTNER_FLAG'])) {
|
||||
|
||||
@@ -308,7 +308,7 @@ Ext.onReady(function(){
|
||||
xtype: 'textfield',
|
||||
fieldLabel: 'Workspace Name',
|
||||
value:'workflow',
|
||||
maxLength: 29,
|
||||
maxLength: 30,
|
||||
validator: function(v){
|
||||
var t = /^[a-zA-Z_0-9]+$/;
|
||||
return t.test(v);
|
||||
|
||||
@@ -13,7 +13,7 @@ Ext.onReady(function(){
|
||||
xtype:'textfield',
|
||||
value:'sample',
|
||||
width: 200,
|
||||
autoCreate: {tag: 'input', type: 'text', size: '20', autocomplete: 'off', maxlength: '13'},
|
||||
autoCreate: {tag: 'input', type: 'text', size: '20', autocomplete: 'off', maxlength: '30'},
|
||||
allowBlank: false,
|
||||
listeners: {
|
||||
'render': function(c) {
|
||||
|
||||
Reference in New Issue
Block a user