1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
<?php
class SpotUpgrader {
private $_db;
private $_dbEngine;
function __construct($dbSettings, $phpSettings) {
$this->_db = new SpotDb($dbSettings);
$this->_db->connect();
$this->_dbEngine = $dbSettings['engine'];
$this->_phpSettings = $phpSettings;
} # ctor
/*
* Upgrade de settings
*/
function settings() {
# Create the settings object
$settings = SpotSettings::singleton($this->_db, $this->_phpSettings);
$spotSettingsUpgrader = new SpotSettingsUpgrader($this->_db, $settings);
$spotSettingsUpgrader->update();
} # settings
/*
* Upgrade de users
*/
function users() {
# Create the settings object
$settings = SpotSettings::singleton($this->_db, $this->_phpSettings);
$spotUserUpgrader = new SpotUserUpgrader($this->_db, $settings);
$spotUserUpgrader->update();
} # users
/*
* Creeert en upgrade de database
*/
function database() {
# Instantieeer een struct object
switch($this->_dbEngine) {
case 'mysql' :
case 'pdo_mysql' : $dbStruct = new SpotStruct_mysql($this->_db); break;
case 'pdo_pgsql' : $dbStruct = new SpotStruct_pgsql($this->_db); break;
case 'pdo_sqlite' : $dbStruct = new SpotStruct_sqlite($this->_db); break;
default : throw new Exception("Unknown database engine");
} # switch
$dbStruct->updateSchema();
} # database
/*
* Optimaliseert de database
*/
function analyze() {
# Instantieeer een struct object
switch($this->_dbEngine) {
case 'mysql' :
case 'pdo_mysql' : $dbStruct = new SpotStruct_mysql($this->_db); break;
case 'pdo_pgsql' : $dbStruct = new SpotStruct_pgsql($this->_db); break;
case 'pdo_sqlite' : $dbStruct = new SpotStruct_sqlite($this->_db); break;
default : throw new Exception("Unknown database engine");
} # switch
$dbStruct->analyze();
} # analyze
/*
* Reset users' group membership
*/
function resetUserGroupMembership() {
# Create the settings object
$settings = SpotSettings::singleton($this->_db, $this->_phpSettings);
$spotUserUpgrader = new SpotUserUpgrader($this->_db, $settings);
$spotUserUpgrader->resetUserGroupMembership($settings->get('systemtype'));
} # resetUserGroupMembership
/*
* Reset securitygroup settings to their default
*/
function resetSecurityGroups() {
# Create the settings object
$settings = SpotSettings::singleton($this->_db, $this->_phpSettings);
$spotUserUpgrader = new SpotUserUpgrader($this->_db, $settings);
$spotUserUpgrader->updateSecurityGroups(true);
} # resetSecurityGroups
/*
* Reset users' filters settings to their default
*/
function resetFilters() {
# Create the settings object
$settings = SpotSettings::singleton($this->_db, $this->_phpSettings);
$spotUserUpgrader = new SpotUserUpgrader($this->_db, $settings);
$spotUserUpgrader->updateUserFilters(true);
} # resetFilters
/*
* Perform a mass change for users' preferences
*/
function massChangeUserPreferences($prefName, $prefValue) {
# Create the settings object
$settings = SpotSettings::singleton($this->_db, $this->_phpSettings);
$spotUserUpgrader = new SpotUserUpgrader($this->_db, $settings);
$spotUserUpgrader->massChangeUserPreferences($prefName, $prefValue);
} # massChangeUserPreferences
/*
* Reset a systems' type to the given setting
*/
function resetSystemType($systemType) {
# Create the settings object
$settings = SpotSettings::singleton($this->_db, $this->_phpSettings);
$spotUserUpgrader = new SpotUserUpgrader($this->_db, $settings);
$spotSettingsUpgrader = new SpotSettingsUpgrader($this->_db, $settings);
# change the systems' type
$spotSettingsUpgrader->setSystemType($systemType);
# and reset all the users' group memberships for all users to match
$spotUserUpgrader->resetUserGroupMembership($systemType);
} # resetSystemType
/*
* Reset a users' password
*/
function resetPassword($username) {
# Create the settings object
$settings = SpotSettings::singleton($this->_db, $this->_phpSettings);
$spotUserUpgrader = new SpotUserUpgrader($this->_db, $settings);
# retrieve the userid
$spotUserUpgrader->resetUserPassword($username, 'spotweb');
} # resetPassword
} # SpotUpgrader
|