Ignore:
Timestamp:
Sep 26, 2011, 10:26:09 PM (13 years ago)
Author:
Eric
Message:
  • Bug 2437 fixed - New feature : Request password renewal for selected users in Piwigo's users management panel.
  • Language files updates.
  • obsolete.list file creation to clean old help directories in languages.
  • Perform database upgrade.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/UserAdvManager/trunk/main.inc.php

    r12189 r12239  
    6262  add_event_handler('get_stuffs_modules', 'register_UAM_stuffs_module');
    6363}
     64
     65// Add new feature in user_list - Password Reset
     66if ((isset($conf_UAM[38]) and $conf_UAM[38] == 'true'))
     67{
     68  // add new column on user_list
     69  add_event_handler('loc_visible_user_list', 'UAM_loc_visible_user_list');
     70
     71  //add prefilter on user_list
     72  add_event_handler('loc_begin_admin', 'UAM_PwdReset_Action',60);
     73 
     74  function UAM_PwdReset_Action()
     75  {
     76    global $conf, $user, $template, $lang, $errors;
     77
     78    $page['errors'] = array();
     79    $page['infos'] = array();
     80    $page['filtered_users'] = array();
     81
     82    if (isset($_POST['pwdreset']))
     83    {
     84      $collection = array();
     85
     86      switch ($_POST['target'])
     87      {
     88        case 'all' :
     89        {
     90          foreach($page['filtered_users'] as $local_user)
     91          {
     92            array_push($collection, $local_user['id']);
     93          }
     94          break;
     95        }
     96        case 'selection' :
     97        {
     98          if (isset($_POST['selection']))
     99          {
     100            $collection = $_POST['selection'];
     101          }
     102          break;
     103        }
     104      }
     105
     106      if (count($collection) == 0)
     107      {
     108        array_push($page['errors'], l10n('Select at least one user'));
     109      }
     110    }
     111
     112    if (isset($_POST['pwdreset']) and count($collection) > 0)
     113    {
     114      if (in_array($conf['guest_id'], $collection))
     115      {
     116        array_push($page['errors'], l10n('UAM_Guest cannot be pwdreset'));
     117        $template->append('errors', l10n('UAM_Guest cannot be pwdreset'));
     118      }
     119      if (($conf['guest_id'] != $conf['default_user_id']) and
     120        in_array($conf['default_user_id'], $collection))
     121      {
     122        array_push($page['errors'], l10n('UAM_Default user cannot be pwgreset'));
     123        $template->append('errors', l10n('UAM_Default user cannot be pwgreset'));
     124      }
     125      if (in_array($conf['webmaster_id'], $collection))
     126      {
     127        array_push($page['errors'], l10n('UAM_Webmaster cannot be pwdreset'));
     128        $template->append('errors', l10n('UAM_Webmaster cannot be pwdreset'));
     129      }
     130      if (in_array($user['id'], $collection))
     131      {
     132        array_push($page['errors'], l10n('UAM_You cannot pwdreset your account'));
     133        $template->append('errors', l10n('UAM_You cannot pwdreset your account'));
     134      }
     135
     136      if (count($page['errors']) == 0)
     137      { 
     138        if (isset($_POST['confirm_pwdreset']) and 1 == $_POST['confirm_pwdreset'])
     139        {
     140          foreach ($collection as $user_id)
     141          {
     142            UAM_Set_PwdReset($user_id);
     143          }
     144          array_push(
     145            $page['infos'],
     146            l10n_dec(
     147              'UAM %d user pwdreseted', 'UAM %d users pwdreseted',
     148              count($collection)
     149              )
     150            );
     151          $template->append('infos', l10n_dec(
     152              'UAM %d user pwdreseted', 'UAM %d users pwdreseted',
     153              count($collection)));
     154          foreach ($page['filtered_users'] as $filter_key => $filter_user)
     155          {
     156            if (in_array($filter_user['id'], $collection))
     157            {
     158              unset($page['filtered_users'][$filter_key]);
     159            }
     160          }
     161        }
     162        else
     163        {
     164          array_push($page['errors'], l10n('UAM_You need to confirm pwdreset'));
     165          $template->append('errors', l10n('UAM_You need to confirm pwdreset'));
     166        }
     167      }
     168    } 
     169    $template->set_prefilter('user_list', 'UAM_PwdReset_Prefilter');
     170  }
     171
     172  function UAM_PwdReset_Prefilter($content, &$smarty)
     173  {
     174    $search = '
     175<fieldset>
     176  <legend>{\'Deletions\'|@translate}</legend>
     177  <label><input type="checkbox" name="confirm_deletion" value="1"> {\'confirm\'|@translate}</label>
     178  <input class="submit" type="submit" value="{\'Delete selected users\'|@translate}" name="delete">
     179</fieldset>
     180';
     181 
     182    $addon = '
     183<fieldset>
     184  <legend>{\'UAM_PwdReset\'|@translate}</legend>
     185  <label><input type="checkbox" name="confirm_pwdreset" value="1"> {\'confirm\'|@translate}</label>
     186  <input class="submit" type="submit" value="{\'UAM_Password reset selected users\'|@translate}" name="pwdreset">
     187</fieldset>
     188';
     189
     190    $replacement = $addon.$search;
     191
     192    return str_replace($search, $replacement, $content);
     193  }
     194}
    64195?>
Note: See TracChangeset for help on using the changeset viewer.