Example #1
0
         if ($planetrow['id'] == $user['id_planet']) {
             db_user_set_by_id($user['id'], "galaxy = {$new_coordinates['galaxy']}, system = {$new_coordinates['system']}, planet = {$new_coordinates['planet']}");
         }
         // $global_data = sys_o_get_updated($user, $planetrow['id'], SN_TIME_NOW);
         sn_db_transaction_commit();
         $user = db_user_by_id($user['id'], true, '*');
         $planetrow = db_planet_by_id($planetrow['id'], true, '*');
         $result = array('STATUS' => ERR_NONE, 'MESSAGE' => $lang['ov_teleport_err_none']);
         sys_redirect('overview.php?mode=manage');
     } catch (exception $e) {
         sn_db_transaction_rollback();
         $result = array('STATUS' => $e->getCode(), 'MESSAGE' => $e->getMessage());
     }
 } elseif (sys_get_param_str('abandon')) {
     //if(sec_password_encode(sys_get_param('abandon_confirm'), $user['salt']) == $user['password']) {
     if (sec_password_check($user, sys_get_param('abandon_confirm'))) {
         if ($user['id_planet'] != $user['current_planet'] && $user['current_planet'] == $planet_id) {
             $destroyed = SN_TIME_NOW + 60 * 60 * 24;
             db_planet_set_by_id($user['current_planet'], "`destruyed`='{$destroyed}', `id_owner`=0");
             db_planet_set_by_parent($user['current_planet'], "`destruyed`='{$destroyed}', `id_owner`=0");
             db_user_set_by_id($user['id'], '`current_planet` = `id_planet`');
             message($lang['ov_delete_ok'], $lang['colony_abandon'], 'overview.php?mode=manage');
         } else {
             message($lang['ov_delete_wrong_planet'], $lang['colony_abandon'], 'overview.php?mode=manage');
         }
     } else {
         message($lang['ov_delete_wrong_pass'], $lang['colony_abandon'], 'overview.php?mode=manage');
     }
 } elseif (($hire = sys_get_param_int('hire')) && in_array($hire, sn_get_groups('governors')) && (!get_unit_param($hire, P_MAX_STACK) || $planetrow['PLANET_GOVERNOR_ID'] != $hire || $planetrow['PLANET_GOVERNOR_ID'] == $hire && $planetrow['PLANET_GOVERNOR_LEVEL'] < get_unit_param($hire, P_MAX_STACK))) {
     sn_db_transaction_start();
     $user = db_user_by_id($user['id'], true);
Example #2
0
/**
 * @param int|array   $user
 *
 * @param string      $new_password_unsafe
 *
 * @param bool|string $old_password_unsafe
 *    <p>false - Проверка текущего пароля не будет производиться</p>
 *    <p>string - Будет произведена проверка текущего пароля на равенство указанной строке</p>
 *
 * @param bool|int $remember_me
 *    <p>false - Кука пользователя изменена не будет</p>
 *    <p>int - Будет изменена кука пользователя и поле rememberme установлено в значение параметра</p>
 *
 * @return array|bool|resource <p><b>true</b> - если пароль изменен успешно<p>
 *    <p>true - если пароль изменен успешно<p>
 *    <p>false - в остальных случаях<p>
 */
function sec_password_change($user, $new_password_unsafe, $old_password_unsafe, $remember_me = false)
{
    // Если старый пароль не равен true - значит надо провести проверку пароля
    // Проверяем старый пароль и меняем только если всё ОК
    if ($old_password_unsafe !== false && !sec_password_check($user, $old_password_unsafe)) {
        return false;
    }
    $salt_unsafe = sec_password_salt_generate();
    $password_encoded = sec_password_encode($new_password_unsafe, $salt_unsafe);
    $salt_safe = db_escape($salt_unsafe);
    $user_id = is_array($user) && !empty($user['id']) ? $user['id'] : $user;
    $result = sec_password_set($user_id, $password_encoded, $salt_safe);
    if ($result && $remember_me !== false) {
        sec_set_cookie_by_user(array('id' => $user_id, 'username' => '', 'password' => $password_encoded), $remember_me);
    }
    return $result;
}