X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=dbinstall.php;h=53d0411018014f70082b7027d18da8353884e242;hb=13cfff28242767287408e8fd13d992bc6c6e2086;hp=11cd7e95fff43e9ae10c71d172f5a76e382b2aa4;hpb=480abba5e6b6395dd8314392274e041f4f018fa7;p=timetracker.git diff --git a/dbinstall.php b/dbinstall.php index 11cd7e95..53d04110 100644 --- a/dbinstall.php +++ b/dbinstall.php @@ -47,6 +47,25 @@ function ttExecute($sql) { print "Successful update.
\n"; } +// ttGenerateKeys - generates keys for groups that do not have them. +function ttGenerateKeys() { + $mdb2 = getConnection(); + $sql = "select id from tt_groups where group_key is null and status = 1"; + $res = $mdb2->query($sql); + if (is_a($res, 'PEAR_Error')) die($res->getMessage()); + + $numGroups = 0; + while ($val = $res->fetchRow()) { + $group_id = $val['id']; + $group_key = $mdb2->quote(ttRandomString()); + $sql = "update tt_groups set group_key = $group_key where id = $group_id"; + $affected = $mdb2->exec($sql); + if (is_a($affected, 'PEAR_Error')) die($affected->getMessage()); + $numGroups++; + } + print "
Generated keys for $numGroups groups.
\n"; +} + if ($request->isGet()) { echo('

Environment Checks

'); @@ -72,12 +91,15 @@ if ($request->isGet()) { echo('WEB-INF/config.php file exists.
'); // Config file must start with the PHP opening tag. We are checking this because - // a Unicode editor may insert a byte order mark (BOM) before it. This is not good as it will - // spit white space before output in some situations such as in PDF reports. + // a Unicode editor may insert a byte order mark (BOM) before it. + // This is not good as it is printed as unintentional white space in output. + // Consequences: + // 1) PHP redirects may stop working, depending on server settings. + // 2) PDF reports and attachment downloads will become unusable (cannot open files). $file = fopen(APP_DIR.'/WEB-INF/config.php', 'r'); $line = fgets($file); if (strcmp("Error: WEB-INF/config.php file does not start with PHP opening tag.
'); + echo('Error: WEB-INF/config.php file does not start with a PHP opening tag. See explanation.
'); } fclose($file); } else { @@ -972,7 +994,7 @@ if ($_POST) { print "Updated $tt_expense_items_updated tt_expense_items records...
\n"; } - if ($_POST["convert11797to11859"]) { + if ($_POST["convert11797to11900"]) { ttExecute("ALTER TABLE `tt_fav_reports` CHANGE `group_by` `group_by1` varchar(20) default NULL"); ttExecute("ALTER TABLE `tt_fav_reports` ADD `group_by2` varchar(20) default NULL AFTER `group_by1`"); ttExecute("ALTER TABLE `tt_fav_reports` ADD `group_by3` varchar(20) default NULL AFTER `group_by2`"); @@ -1129,10 +1151,17 @@ if ($_POST) { ttExecute("UPDATE `tt_site_config` SET param_value = '1.18.55', modified = now() where param_name = 'version_db' and param_value = '1.18.54'"); ttExecute("CREATE TABLE `tt_files` (`id` int(10) unsigned NOT NULL auto_increment,`group_id` int(10) unsigned,`org_id` int(10) unsigned,`remote_id` bigint(20) unsigned,`entity_type` varchar(32),`entity_id` int(10) unsigned,`file_name` varchar(80) COLLATE utf8mb4_bin NOT NULL,`description` varchar(255) default NULL,`created` datetime default NULL,`created_ip` varchar(45) default NULL,`created_by` int(10) unsigned,`modified` datetime default NULL,`modified_ip` varchar(45) default NULL,`modified_by` int(10) unsigned,`status` tinyint(1) default 1,PRIMARY KEY (`id`))"); ttExecute("UPDATE `tt_site_config` SET param_value = '1.18.59', modified = now() where param_name = 'version_db' and param_value = '1.18.55'"); + ttExecute("ALTER TABLE `tt_files` ADD `file_key` varchar(32) AFTER `remote_id`"); + ttExecute("UPDATE `tt_site_config` SET param_value = '1.18.60', modified = now() where param_name = 'version_db' and param_value = '1.18.59'"); + ttExecute("ALTER TABLE `tt_groups` ADD `group_key` varchar(32) AFTER `org_id`"); + ttExecute("UPDATE `tt_site_config` SET param_value = '1.18.61', modified = now() where param_name = 'version_db' and param_value = '1.18.60'"); + ttGenerateKeys(); + ttExecute("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.61') set rights = replace(rights, 'swap_roles', 'swap_roles,update_work') where rank >= 12"); + ttExecute("update `tt_roles` inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.61') set rights = replace(rights, 'view_all_reports', 'view_all_reports,manage_work,bid_on_work') where rank >= 68"); + ttExecute("UPDATE `tt_site_config` SET param_value = '1.19.0', modified = now() where param_name = 'version_db' and param_value = '1.18.61'"); } if ($_POST["cleanup"]) { - $mdb2 = getConnection(); $inactive_orgs = ttOrgHelper::getInactiveOrgs(); @@ -1166,6 +1195,7 @@ if ($_POST) { ttExecute("OPTIMIZE TABLE tt_user_project_binds"); ttExecute("OPTIMIZE TABLE tt_users"); ttExecute("OPTIMIZE TABLE tt_roles"); + ttExecute("OPTIMIZE TABLE tt_files"); } print "Done.
\n"; @@ -1178,7 +1208,7 @@ if ($_POST) {

DB Install

-
Create database structure (v1.18.59) + Create database structure (v1.19.0)
(applies only to new installations, do not execute when updating)
@@ -1223,8 +1253,8 @@ if ($_POST) { - Update database structure (v1.17.97 to v1.18.59) - + Update database structure (v1.17.97 to v1.19) +