[TikiWiki-commits] [Git][tikiwiki/tiki][27.x] [FIX] Restore installer api_tiki handling removed in new_user_validation fix
"ushindi bienvenu \(@usbbush\) via TikiWiki-cvs" <[email protected]>
| Newsgroups | gmane.comp.cms.tiki.cvs |
|---|---|
| Message-ID | <6a8c006fb84f5_382d4b7d0560fa@gitlab-sidekiq-low-urgency-cpu-bound-v2-84c6d76758-bg9qn.mail> |
ushindi bienvenu pushed to branch 27.x at Tiki Wiki CMS Groupware / Tiki
Commits:
331d9629 by Espoir Baraka at 2026-08-24T08:18:08+00:00
[FIX] Restore installer api_tiki handling removed in new_user_validation fix
---
* [FIX] Restore installer api_tiki handling removed in new_user_validation fix
See merge request tikiwiki/tiki!11038
- - - - -
2 changed files:
- installer/tiki-installer.php
- tiki-change_password.php
Changes:
=====================================
installer/tiki-installer.php
=====================================
@@ -27,6 +27,7 @@ $inputConfiguration = [
'convert_to_utf8' => 'xss',
'db' => 'alpha',
'dbinfo' => 'alpha',
+ 'defaultpass' => 'raw',
'email_test_cc' => 'digits',
'email_test_to' => 'email',
'use_proxy' => 'alpha',
@@ -172,6 +173,15 @@ $prefs['lang_use_db'] = 'n';
// Which step of the installer
if (empty($_POST['install_step'])) {
$install_step = '0';
+
+ if (isset($_REQUEST['setdbversion'])) {
+ // Sets dbversion_tiki when installing the WebDeploy package
+ $db = fopen('db/' . $tikidomainslash . 'local.php', 'a');
+ require_once 'lib/setup/twversion.class.php';
+ $TWV = new TWVersion();
+ fwrite($db, "\n\$dbversion_tiki='" . $TWV->getBaseVersion() . "';\n");
+ fclose($db);
+ }
} else {
$install_step = $_POST['install_step'];
@@ -308,6 +318,20 @@ if ($errors) {
// if local then build dsn and try to connect
// then get con or nocon
+//adodb settings
+
+if (! defined('ADODB_FORCE_NULLS')) {
+ define('ADODB_FORCE_NULLS', 1);
+}
+
+if (! defined('ADODB_ASSOC_CASE')) {
+ define('ADODB_ASSOC_CASE', 2);
+}
+
+if (! defined('ADODB_CASE_ASSOC')) { // typo in adodb's driver for sybase? // so do we even need this without sybase? What's this?
+ define('ADODB_CASE_ASSOC', 2);
+}
+
require_once('lib/tikilib.php');
// Get list of available languages
@@ -325,21 +349,38 @@ $dbconn = (TikiDb::isAvailable()) ? TikiDb::get() : false;
$installer = null;
if (file_exists($local)) {
// include the file to get the variables
+ $default_api_tiki = $api_tiki;
+ $api_tiki = '';
include $local;
if (! $client_charset_forced = isset($client_charset)) {
$client_charset = '';
}
+ $previousDbApi = $api_tiki;
+ if (empty($api_tiki)) {
+ $api_tiki_forced = false;
+ $api_tiki = $default_api_tiki;
+ if (! empty($dbversion_tiki) && $dbversion_tiki[0] < 4) {
+ $previousDbApi = 'adodb'; // AdoDB was the default DB abstraction layer before 4.0
+ }
+ } else {
+ $api_tiki_forced = true;
+ }
+
+ unset($default_api_tiki);
// In case of replication, ignore it during installer.
unset($shadow_dbs, $shadow_user, $shadow_pass, $shadow_host);
+ if ($dbversion_tiki == '1.10') {
+ $dbversion_tiki = '2.0';
+ }
$dbconn = false;
$smarty->assign('resetdb', 'n');
- if ($dbconn = initTikiDB($host_tiki, $user_tiki, $pass_tiki, $dbs_tiki, $client_charset, $dbTiki)) {
+ if ($dbconn = initTikiDB($api_tiki, $host_tiki, $user_tiki, $pass_tiki, $dbs_tiki, $client_charset, $dbTiki)) {
$smarty->assign('resetdb', isset($_POST['reset']) ? 'y' : 'n');
$installer = Installer::getInstance();
if (! $client_charset_forced) {
- write_local_php($host_tiki, $user_tiki, $pass_tiki, $dbs_tiki, $client_charset, '');
+ write_local_php($host_tiki, $user_tiki, $pass_tiki, $dbs_tiki, $client_charset, ($api_tiki_forced ? $api_tiki : ''), $dbversion_tiki);
$logslib->add_log('install', 'database credentials written to file with hostname=' . $host_tiki
. '; dbname=' . $dbs_tiki . '; dbuser=' . $user_tiki);
}
@@ -367,7 +408,7 @@ if (file_exists($local)) {
}
if ($dbconn && has_tiki_db()) {
- $admin_acc = has_admin();
+ $admin_acc = has_admin($api_tiki);
}
if ($admin_acc == 'n') {
@@ -425,6 +466,7 @@ if (
&& ! empty($_POST['root_pass'])
) {
$dbconn = initTikiDB(
+ $api_tiki,
$_POST['host'],
$_POST['root_user'],
$_POST['root_pass'],
@@ -434,6 +476,7 @@ if (
);
} else {
$dbconn = initTikiDB(
+ $api_tiki,
$_POST['host'],
$_POST['user'],
$_POST['pass'],
@@ -485,10 +528,13 @@ if ($dbconn) {
// Some initializations to avoid PHP error messages
$smarty->assign('tikidb_created', false);
$smarty->assign('tikidb_is20', false);
+$smarty->assign('tikidb_oldPerms', 0);
if ($dbconn) {
$has_tiki_db = has_tiki_db();
$smarty->assign('tikidb_created', $has_tiki_db);
+ $oldPerms = $installer->getOne('SELECT COUNT(*) FROM `users_permissions` WHERE `permDesc` = \'Can view categorized items\'');
+ $smarty->assign('tikidb_oldPerms', $oldPerms);
if ($install_step == '6' && $has_tiki_db) {
if (isset($_POST['install_type']) && $_POST['install_type'] === 'scratch') {
@@ -499,7 +545,7 @@ if ($dbconn) {
}
update_preferences($prefs);
$smarty->assign('admin_email', get_admin_email());
- $smarty->assign('upgradefix', 'y');
+ $smarty->assign('upgradefix', (empty($dbversion_tiki) || $dbversion_tiki[0] < 4) ? 'y' : 'n');
}
$smarty->assign('tikidb_is20', has_tiki_db_20());
}
@@ -533,6 +579,8 @@ if (
// Set Administrator password
$randompass = TikiLib::lib('user')->genPass();
set_system_administrator_password($randompass);
+ $_SESSION['install_admin_defaultpass'] = $randompass;
+ $_SESSION['install_type'] = 'scratch';
$smarty->assign('defaultpass', $randompass);
$default_password_field = '<input type="hidden" name="defaultpass" value="' . $randompass . '">';
$smarty->assign('default_password_field', $default_password_field);
@@ -626,6 +674,11 @@ if ($install_step == '9') {
touch('db/' . $tikidomainslash . 'lock');
}
+ $install_admin_defaultpass = $_POST['defaultpass'] ?? $_SESSION['install_admin_defaultpass'] ?? null;
+ if (empty($install_type) && ! empty($_SESSION['install_type'])) {
+ $install_type = $_SESSION['install_type'];
+ }
+
$userlib = TikiLib::lib('user');
$cachelib = TikiLib::lib('cache');
if (session_id()) {
@@ -636,6 +689,11 @@ if ($install_step == '9') {
if ($install_type == 'scratch') {
initialize_prefs(true);
TikiLib::lib('unifiedsearch')->rebuild();
+ if (! empty($install_admin_defaultpass)) {
+ $_SESSION['pending_new_user_password'] = ['user' => 'admin'];
+ $_SESSION['last_validation'] = ['user' => 'admin', 'pass' => $install_admin_defaultpass];
+ $defaultpass = $install_admin_defaultpass;
+ }
// Always pass oldpass so first admin password setup cannot rely on a forgeable flag
$u = 'tiki-change_password.php?user=admin&oldpass=' . urlencode($defaultpass ?? 'admin') . '&newuser=y';
$tikilib = TikiLib::lib('tiki');
=====================================
tiki-change_password.php
=====================================
@@ -75,8 +75,7 @@ if ($server_new_user_validation) {
$smarty->assign('userlogin', $_REQUEST["user"]);
if (
- empty($_REQUEST['oldpass'])
- && $server_new_user_validation
+ $server_new_user_validation
&& ! empty($_SESSION['last_validation']['pass'])
) {
$smarty->assign('oldpass', $_SESSION['last_validation']['pass']);
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/331d9629aab56af83277aaaa32fd7a6fb7af43e8
--
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/331d9629aab56af83277aaaa32fd7a6fb7af43e8
You're receiving this email because of your account on gitlab.com. Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help
_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs