Dotclear


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • admin/auth.php

    r372 r356  
    2323$dlang = http::getAcceptLanguage(); 
    2424$dlang = ($dlang == '' ? 'en' : $dlang); 
    25 if ($dlang != 'en' && preg_match('/^[a-z]{2}(-[a-z]{2})?$/',$dlang)) 
     25if ($dlang != 'en') 
    2626{ 
    2727     l10n::set(dirname(__FILE__).'/../locales/'.$dlang.'/main'); 
     
    9090          $page_url.'?akey='.$recover_key; 
    9191           
    92           $headers[] = 'From: '.(defined('DC_ADMIN_MAILFROM') && DC_ADMIN_MAILFROM ? DC_ADMIN_MAILFROM : 'dotclear@local'); 
     92          $headers[] = 'From: dotclear@'.$_SERVER['HTTP_HOST']; 
    9393          $headers[] = 'Content-Type: text/plain; charset=UTF-8;'; 
    9494           
     
    126126} 
    127127# Change password and retry to log 
    128 elseif ($change_pwd) 
    129 { 
    130      try 
    131      { 
    132           $tmp_data = explode('/',$_POST['login_data']); 
    133           if (count($tmp_data) != 3) { 
    134                throw new Exception(); 
    135           } 
    136           $data = array( 
    137                'user_id'=>base64_decode($tmp_data[0]), 
    138                'cookie_admin'=>$tmp_data[1], 
    139                'user_remember'=>$tmp_data[2]=='1' 
    140           ); 
    141           if ($data['user_id'] === false) { 
    142                throw new Exception(); 
    143           } 
    144            
     128elseif ($change_pwd and $data = unserialize(base64_decode($_POST['login_data']))) 
     129{ 
    145130     # Check login informations 
    146131     $check_user = false; 
     
    157142     } 
    158143      
     144     try 
     145     { 
    159146          if (!$core->auth->allowPassChange() || !$check_user) { 
    160147               $change_pwd = false; 
     
    179166          $_SESSION['sess_browser_uid'] = http::browserUID(DC_MASTER_KEY); 
    180167           
    181           if ($data['user_remember']) 
     168          if (!empty($data['blog_id'])) { 
     169               $_SESSION['sess_blog_id'] = $data['blog_id']; 
     170          } 
     171           
     172          if (!empty($data['user_remember'])) 
    182173          { 
    183174               setcookie('dc_admin',$data['cookie_admin'],strtotime('+15 days'),'','',DC_ADMIN_SSL); 
     
    202193     if ($check_user && $core->auth->mustChangePassword()) 
    203194     { 
    204           $login_data = join('/',array( 
    205                base64_encode($user_id), 
    206                $cookie_admin, 
    207                empty($_POST['user_remember'])?'0':'1' 
    208           )); 
     195          $login_data = base64_encode(serialize(array( 
     196               'user_id'=>$user_id, 
     197               'cookie_admin'=>$cookie_admin, 
     198               'blog_id'=>(!empty($_POST['blog']) ? $_POST['blog'] : ''), 
     199               'user_remember'=>!empty($_POST['user_remember']) 
     200          ))); 
    209201           
    210202          if (!$core->auth->allowPassChange()) { 
Note: See TracChangeset for help on using the changeset viewer.

Sites map