Changeset 25092 for extensions/UserAdvManager/trunk/main.inc.php
- Timestamp:
- Oct 23, 2013, 6:02:26 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/UserAdvManager/trunk/main.inc.php
r23902 r25092 74 74 } 75 75 76 // Add new feature in user_list - Password Reset77 // ---------------------------------------------78 if (isset($conf_UAM['PWDRESET']) and $conf_UAM['PWDRESET'] == 'true')79 {80 // Add new column on user_list81 // ---------------------------82 add_event_handler('loc_visible_user_list', 'UAM_loc_visible_user_list');83 84 // Add prefilter on user_list85 // --------------------------86 add_event_handler('loc_begin_admin', 'UAM_PwdReset_Action',60);87 88 /**89 * UAM_PwdReset_Action - Triggered on UAM_PwdReset_Action90 * Handle password reset action in user_list.php91 */92 function UAM_PwdReset_Action()93 {94 global $conf, $user, $template, $lang, $errors;95 96 $page['errors'] = array();97 $page['infos'] = array();98 $page['filtered_users'] = array();99 100 if (isset($_POST['pwdreset']))101 {102 $collection = array();103 104 switch ($_POST['target'])105 {106 case 'all' :107 {108 foreach($page['filtered_users'] as $local_user)109 {110 array_push($collection, $local_user['id']);111 }112 break;113 }114 case 'selection' :115 {116 if (isset($_POST['selection']))117 {118 $collection = $_POST['selection'];119 }120 break;121 }122 }123 124 if (count($collection) == 0)125 {126 array_push($page['errors'], l10n('Select at least one user'));127 }128 }129 130 if (isset($_POST['pwdreset']) and count($collection) > 0)131 {132 if (in_array($conf['guest_id'], $collection))133 {134 array_push($page['errors'], l10n('UAM_Guest cannot be pwdreset'));135 $template->append('errors', l10n('UAM_Guest cannot be pwdreset'));136 }137 if (($conf['guest_id'] != $conf['default_user_id']) and138 in_array($conf['default_user_id'], $collection))139 {140 array_push($page['errors'], l10n('UAM_Default user cannot be pwgreset'));141 $template->append('errors', l10n('UAM_Default user cannot be pwgreset'));142 }143 if (in_array($conf['webmaster_id'], $collection))144 {145 array_push($page['errors'], l10n('UAM_Webmaster cannot be pwdreset'));146 $template->append('errors', l10n('UAM_Webmaster cannot be pwdreset'));147 }148 if (in_array($user['id'], $collection))149 {150 array_push($page['errors'], l10n('UAM_You cannot pwdreset your account'));151 $template->append('errors', l10n('UAM_You cannot pwdreset your account'));152 }153 154 // Generic accounts exclusion (including Adult_Content generic users)155 // ------------------------------------------------------------------156 $query ='157 SELECT u.id158 FROM '.USERS_TABLE.' AS u159 INNER JOIN '.USER_INFOS_TABLE.' AS ui160 ON u.id = ui.user_id161 WHERE ui.status = "generic"162 ;';163 164 $result = pwg_query($query);165 166 while ($row = pwg_db_fetch_assoc($result))167 {168 if (in_array($row['id'], $collection))169 {170 array_push($page['errors'], l10n('UAM_Generic cannot be pwdreset'));171 $errors = l10n('UAM_Generic cannot be pwdreset');172 }173 }174 175 // Admins accounts exclusion176 // --------------------------177 $query ='178 SELECT u.id179 FROM '.USERS_TABLE.' AS u180 INNER JOIN '.USER_INFOS_TABLE.' AS ui181 ON u.id = ui.user_id182 WHERE ui.status = "admin"183 ;';184 185 $result = pwg_query($query);186 187 while ($row = pwg_db_fetch_assoc($result))188 {189 if (in_array($row['id'], $collection))190 {191 array_push($page['errors'], l10n('UAM_Admins cannot be pwdreset'));192 $errors = l10n('UAM_Admins cannot be pwdreset');193 }194 }195 196 $template->append('errors', $errors);197 198 if (count($page['errors']) == 0)199 {200 if (isset($_POST['confirm_pwdreset']) and 1 == $_POST['confirm_pwdreset'])201 {202 foreach ($collection as $user_id)203 {204 UAM_Set_PwdReset($user_id);205 }206 array_push(207 $page['infos'],208 l10n_dec(209 'UAM %d user pwdreseted', 'UAM %d users pwdreseted',210 count($collection)211 )212 );213 $template->append('infos', l10n_dec(214 'UAM %d user pwdreseted', 'UAM %d users pwdreseted',215 count($collection)));216 foreach ($page['filtered_users'] as $filter_key => $filter_user)217 {218 if (in_array($filter_user['id'], $collection))219 {220 unset($page['filtered_users'][$filter_key]);221 }222 }223 }224 else225 {226 array_push($page['errors'], l10n('UAM_You need to confirm pwdreset'));227 $template->append('errors', l10n('UAM_You need to confirm pwdreset'));228 }229 }230 }231 $template->set_prefilter('user_list', 'UAM_PwdReset_Prefilter');232 }233 234 /**235 * UAM_PwdReset_Prefilter236 * Adds action field for password reset in user_list.tpl237 */238 function UAM_PwdReset_Prefilter($content, &$smarty)239 {240 $search = '241 <fieldset>242 <legend>{\'Deletions\'|@translate}</legend>243 <label><input type="checkbox" name="confirm_deletion" value="1"> {\'confirm\'|@translate}</label>244 <input class="submit" type="submit" value="{\'Delete selected users\'|@translate}" name="delete">245 </fieldset>246 ';247 248 $addon = '249 <fieldset>250 <legend>{\'UAM_PwdReset\'|@translate}</legend>251 <label><input type="checkbox" name="confirm_pwdreset" value="1"> {\'confirm\'|@translate}</label>252 <input class="submit" type="submit" value="{\'UAM_Password reset selected users\'|@translate}" name="pwdreset">253 </fieldset>254 ';255 256 $replacement = $addon.$search;257 258 return str_replace($search, $replacement, $content);259 }260 }261 262 76 263 77 // Check options compatibility between UAM and Piwigo at admin page load
Note: See TracChangeset
for help on using the changeset viewer.