X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=dbinstall.php;h=53d0411018014f70082b7027d18da8353884e242;hb=189e8b9874d89f3d5be5b3dd2f32d4e2e5d7e1f5;hp=37b1d09ddedf6000f7a58ae4e8db568c33e31555;hpb=b445bc863566fd9708781242786400273dd0c8a2;p=timetracker.git
diff --git a/dbinstall.php b/dbinstall.php
index 37b1d09d..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["convert11797to11860"]) {
+ 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`");
@@ -1131,10 +1153,15 @@ if ($_POST) {
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();
@@ -1168,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";
@@ -1180,7 +1208,7 @@ if ($_POST) {
DB Install
-
Create database structure (v1.18.60)
+
Create database structure (v1.19.0) (applies only to new installations, do not execute when updating)