echo '<li>Administrative user found.</li>'; // Get the user's permissions from the DB $perms = array(); $sql = 'SELECT name FROM ' . TABLE_PREFIX . 'permission AS p, ' . TABLE_PREFIX . 'user_role AS ur, ' . TABLE_PREFIX . 'role_permission AS rp' . ' WHERE p.id=rp.permission_id AND rp.role_id=ur.role_id AND ur.user_id=' . $user->id; $PDO = Record::getConnection(); $stmt = $PDO->prepare($sql); $stmt->execute(); while ($perm = $stmt->fetchObject()) { $perms[] = $perm->name; } if (!in_array('admin_edit', $perms)) { die('<strong>Upgrade failed!</strong> Administrative permissions not correct.'); } echo '<li>Administrative user has appropriate permissions...</li>'; // Check administrative user's password if (!AuthUser::validatePassword($user, $data['pwd'])) { die('<strong>Upgrade failed!</strong> Administrative password not correct.'); } echo '<li>Administrative password correct...</li>'; /***** SAFETY CHECKS DONE, CONTINUE WITH ACTUAL UPGRADE ******/ echo '<li>Starting database upgrade...<ul>'; // MYSQL if ($driver == 'mysql') { singleUpgradeStatement($PDO, "ALTER TABLE " . TABLE_PREFIX . "user ADD CONSTRAINT uc_email UNIQUE (email)", 'Added constraints to user table...'); } // SQLITE if ($driver == 'sqlite') { singleUpgradeStatement($PDO, "CREATE UNIQUE INDEX uc_email ON " . TABLE_PREFIX . "user (email)", 'Added constraints to user table...'); } // POSTGRESQL if ($driver == 'pgsql') {