Dotclear

Changeset 365:374950e550f7 for admin


Ignore:
Timestamp:
06/14/11 08:42:47 (14 years ago)
Author:
Dsls <dsls@…>
Branch:
2.3
Message:

Simplified password change fields handling.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • admin/auth.php

    r364 r365  
    126126} 
    127127# Change password and retry to log 
    128 elseif ($change_pwd and $data = unserialize(base64_decode($_POST['login_data']))) 
    129 { 
    130      # Check login informations 
    131      $check_user = false; 
    132      if (isset($data['cookie_admin']) && strlen($data['cookie_admin']) == 104) 
    133      { 
    134           $user_id = substr($data['cookie_admin'],40); 
    135           $user_id = @unpack('a32',@pack('H*',$user_id)); 
    136           if (is_array($user_id)) 
     128elseif ($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           
     145          # Check login informations 
     146          $check_user = false; 
     147          if (isset($data['cookie_admin']) && strlen($data['cookie_admin']) == 104) 
    137148          { 
    138                $user_id = $user_id[1]; 
    139                $user_key = substr($data['cookie_admin'],0,40); 
    140                $check_user = $core->auth->checkUser($user_id,null,$user_key) === true; 
    141           } 
    142      } 
    143       
    144      try 
    145      { 
     149               $user_id = substr($data['cookie_admin'],40); 
     150               $user_id = @unpack('a32',@pack('H*',$user_id)); 
     151               if (is_array($user_id)) 
     152               { 
     153                    $user_id = $user_id[1]; 
     154                    $user_key = substr($data['cookie_admin'],0,40); 
     155                    $check_user = $core->auth->checkUser($user_id,null,$user_key) === true; 
     156               } 
     157          } 
     158      
    146159          if (!$core->auth->allowPassChange() || !$check_user) { 
    147160               $change_pwd = false; 
     
    166179          $_SESSION['sess_browser_uid'] = http::browserUID(DC_MASTER_KEY); 
    167180           
    168           if (!empty($data['blog_id'])) { 
    169                $_SESSION['sess_blog_id'] = $data['blog_id']; 
    170           } 
    171            
    172           if (!empty($data['user_remember'])) 
     181          if ($data['user_remember']) 
    173182          { 
    174183               setcookie('dc_admin',$data['cookie_admin'],strtotime('+15 days'),'','',DC_ADMIN_SSL); 
     
    193202     if ($check_user && $core->auth->mustChangePassword()) 
    194203     { 
    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           ))); 
     204          $login_data = join('/',array( 
     205               base64_encode($user_id), 
     206               $cookie_admin, 
     207               empty($_POST['user_remember'])?'0':'1' 
     208          )); 
    201209           
    202210          if (!$core->auth->allowPassChange()) { 
Note: See TracChangeset for help on using the changeset viewer.

Sites map