diff --git a/app/MigrationManager.php b/app/MigrationManager.php index dc126a2..bcc06e5 100644 --- a/app/MigrationManager.php +++ b/app/MigrationManager.php @@ -15,6 +15,7 @@ class MigrationManager 'CREATE TABLE IF NOT EXISTS `mcp_offlineim_send` (`id` int(6) NOT NULL DEFAULT 0) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci', 'CREATE TABLE IF NOT EXISTS `mcp_regions_info` (`regionID` CHAR(36) NOT NULL COLLATE utf8_unicode_ci, `RegionVersion` VARCHAR(128) NOT NULL DEFAULT "" COLLATE utf8_unicode_ci, `ProcMem` INT(11) NOT NULL, `Prims` INT(11) NOT NULL, `SimFPS` INT(11) NOT NULL, `PhyFPS` INT(11) NOT NULL, `OfflineTimer` INT(11) NOT NULL DEFAULT 0, PRIMARY KEY (`regionID`) USING BTREE) COLLATE=utf8_unicode_ci ENGINE=InnoDB', 'CREATE TABLE IF NOT EXISTS `mcp_cron_runs` (`Name` VARCHAR(50) NOT NULL, `LastRun` INT(11) UNSIGNED NOT NULL, PRIMARY KEY(`Name`)) ENGINE InnoDB', + 'CREATE TABLE IF NOT EXISTS `mcp_iar_state` (`userID` CHAR(36) NOT NULL COLLATE utf8_unicode_ci, `filesize` BIGINT(20) NOT NULL DEFAULT 0, `iarfilename` VARCHAR(64) NOT NULL COLLATE utf8_unicode_ci, `state` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0, `created` INT(11) UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY (`userID`) USING BTREE) COLLATE=utf8_unicode_ci ENGINE=InnoDB', 'CREATE TRIGGER IF NOT EXISTS del_id_trig AFTER DELETE ON UserAccounts FOR EACH ROW DELETE FROM mcp_user_identities WHERE mcp_user_identities.PrincipalID = OLD.PrincipalID OR mcp_user_identities.IdentityID = OLD.PrincipalID', 'CREATE TRIGGER IF NOT EXISTS del_pwres_trig AFTER DELETE ON UserAccounts FOR EACH ROW DELETE FROM mcp_password_reset WHERE mcp_password_reset.PrincipalID = OLD.PrincipalID' ]; @@ -29,10 +30,14 @@ class MigrationManager ], 2 => [ 'CREATE TABLE IF NOT EXISTS `mcp_cron_runs` (`Name` VARCHAR(50) NOT NULL, `LastRun` INT(11) UNSIGNED NOT NULL, PRIMARY KEY(`Name`)) ENGINE InnoDB' + ], + 3 => [ + 'RENAME TABLE IF EXISTS iarstates TO mcp_iar_state', + 'ALTER TABLE mcp_iar_state MODIFY COLUMN userID CHAR(36) NOT NULL COLLATE utf8_unicode_ci, DROP COLUMN running, ADD COLUMN `state` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 AFTER iarfilename, ADD COLUMN created INT(11) UNSIGNED NOT NULL DEFAULT 0 AFTER `state`' ] ]; - private const MIGRATE_VERSION_CURRENT = 3; + private const MIGRATE_VERSION_CURRENT = 4; private int $migrateVersion; private string $migrateVersionFile; diff --git a/app/page/Profile.php b/app/page/Profile.php index e991b8e..94e5020 100644 --- a/app/page/Profile.php +++ b/app/page/Profile.php @@ -18,11 +18,8 @@ class Profile extends \Mcp\RequestHandler { $tpl = $this->app->template('profile.php')->parent('__dashboard.php'); - $statement = $this->app->db()->prepare("CREATE TABLE IF NOT EXISTS `iarstates` (`userID` VARCHAR(36) NOT NULL COLLATE 'utf8_unicode_ci', `filesize` BIGINT(20) NOT NULL DEFAULT '0', `iarfilename` VARCHAR(64) NOT NULL COLLATE 'utf8_unicode_ci', `running` INT(1) NOT NULL DEFAULT '0', PRIMARY KEY (`userID`) USING BTREE) COLLATE='utf8_unicode_ci' ENGINE=InnoDB;"); - $statement->execute(); - //Prüfe ob IAR grade erstellt wird. - $statementIARCheck = $this->app->db()->prepare('SELECT 1 FROM iarstates WHERE userID =:userID'); + $statementIARCheck = $this->app->db()->prepare('SELECT 1 FROM mcp_iar_state WHERE userID =:userID'); $statementIARCheck->execute(['userID' => $_SESSION['UUID']]); $iarRunning = $statementIARCheck->rowCount() != 0; $statementIARCheck->closeCursor(); @@ -30,17 +27,12 @@ class Profile extends \Mcp\RequestHandler if ($iarRunning) { if (isset($_SESSION['iar_created'])) { $tpl->unsafeVar('iar-message', ''); + unset($_SESSION['iar_created']); } else { $tpl->unsafeVar('iar-message', ''); } $tpl->var('iar-button-state', 'disabled'); } - else { - $tpl->vars([ - 'iar-message' => ' ', - 'iar-state' => '' - ]); - } $opensim = new OpenSim($this->app->db()); @@ -77,7 +69,7 @@ class Profile extends \Mcp\RequestHandler if($validator->isValid($_POST)) { $iarname = md5(time().$_SESSION['UUID'] . rand()).".iar"; - $statementIARSTART = $this->app->db()->prepare('INSERT INTO iarstates (userID, filesize, iarfilename) VALUES (:userID, :filesize, :iarfilename)'); + $statementIARSTART = $this->app->db()->prepare('INSERT INTO mcp_iar_state (userID, filesize, iarfilename) VALUES (:userID, :filesize, :iarfilename)'); $statementIARSTART->execute(['userID' => $_SESSION['UUID'], 'filesize' => 0, 'iarfilename' => $iarname]); $_SESSION['iar_created'] = true;