Exemple #1
0
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') {