Dotclear


Ignore:
Timestamp:
08/02/12 23:08:21 (13 years ago)
Author:
JcDenis
Branch:
default
Children:
861:3e2e678fef61, 1022:6c73aaf901f8
Message:

Fixes a CSRF on users deletion.
Cleaned code on users manager, fixes #1200

File:
1 edited

Legend:

Unmodified
Added
Removed
  • admin/users.php

    r565 r860  
    1515dcPage::checkSuper(); 
    1616 
    17 # Delete users 
    18 if (!empty($delete_users)) 
    19 { 
    20      foreach ($delete_users as $u) 
    21      { 
    22           try 
    23           { 
    24                # --BEHAVIOR-- adminBeforeUserDelete 
    25                $core->callBehavior('adminBeforeUserDelete',$u); 
    26                if ($u != $core->auth->userID()) { 
    27                     $core->delUser($u); 
    28                } 
    29           } 
    30           catch (Exception $e) 
    31           { 
    32                $core->error->add($e->getMessage()); 
    33           } 
    34      } 
    35      if (!$core->error->flag()) { 
    36           http::redirect('users.php?del=1'); 
    37      } 
    38 } 
    39  
    40  
    4117# Creating filter combo boxes 
    4218$sortby_combo = array( 
    43 __('Username') => 'U.user_id', 
     19__('Username') => 'user_id', 
    4420__('Last Name') => 'user_name', 
    4521__('First Name') => 'user_firstname', 
     
    5531# Actions combo box 
    5632$combo_action = array( 
    57      __('Set permissions') => 'setpermissions', 
     33     __('Set permissions') => 'blogs', 
    5834     __('Delete') => 'deleteuser' 
    5935); 
     
    8965     if ($order !== '' && in_array($order,$order_combo)) { 
    9066          $params['order'] = $sortby.' '.$order; 
     67     } else { 
     68          $order='asc'; 
     69     } 
     70      
     71     if ($sortby != 'user_id' || $order != 'asc') { 
    9172          $show_filters = true; 
    9273     } 
     74} else { 
     75     $sortby = 'user_id'; 
     76     $order = 'asc'; 
    9377} 
    9478 
     79# Get users 
    9580try { 
    9681     $rs = $core->getUsers($params); 
     
    10994} 
    11095 
    111 dcPage::open(__('users'),$starting_script); 
     96dcPage::open(__('Users'),$starting_script); 
    11297 
    11398if (!$core->error->flag()) 
     
    115100     if (!empty($_GET['del'])) { 
    116101          echo '<p class="message">'.__('User has been successfully removed.').'</p>'; 
     102     } 
     103     if (!empty($_GET['upd'])) { 
     104               echo '<p class="message">'.__('The permissions have been successfully updated.').'</p>'; 
    117105     } 
    118106      
     
    153141     # Show users 
    154142     $user_list->display($page,$nb_per_page, 
    155      '<form action="dispatcher.php" method="get" id="form-users">'. 
     143     '<form action="users_actions.php" method="post" id="form-users">'. 
    156144      
    157145     '%s'. 
     
    160148     '<p class="col checkboxes-helpers"></p>'. 
    161149      
    162      '<p class="col right"><label for="dispatch_action" class="classic">'. 
     150     '<p class="col right"><label for="action" class="classic">'. 
    163151     __('Selected users action:').' '. 
    164      form::combo('dispatch_action',$combo_action). 
     152     form::combo('action',$combo_action). 
    165153     '</label> '. 
    166154     '<input type="submit" value="'.__('ok').'" />'. 
     155     form::hidden(array('q'),html::escapeHTML($q)). 
     156     form::hidden(array('sortby'),$sortby). 
     157     form::hidden(array('order'),$order). 
     158     form::hidden(array('page'),$page). 
     159     form::hidden(array('nb'),$nb_per_page). 
     160     $core->formNonce(). 
    167161     '</p>'. 
    168162     '</div>'. 
Note: See TracChangeset for help on using the changeset viewer.

Sites map