Changeset 2704 for trunk/wp-admin/users.php
- Timestamp:
- 07/12/2005 03:53:13 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/wp-admin/users.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/users.php
r2702 r2704 9 9 10 10 switch ($action) { 11 12 case 'promote': 13 check_admin_referer(); 14 15 if (empty($_POST['users'])) { 16 header('Location: users.php'); 17 } 18 19 if ( !current_user_can('edit_users') ) 20 die(__('You can’t edit users.')); 21 22 $userids = $_POST['users']; 23 foreach($userids as $id) { 24 $user = new WP_User($id); 25 $user->set_role($_POST['new_role']); 26 } 27 28 header('Location: users.php?update=promote'); 29 30 break; 31 32 case 'dodelete': 33 34 check_admin_referer(); 35 36 if (empty($_POST['users'])) { 37 header('Location: users.php'); 38 } 39 40 if ( !current_user_can('edit_users') ) 41 die(__('You can’t delete users.')); 42 43 $userids = $_POST['users']; 44 45 foreach($userids as $id) { 46 switch($_POST['delete_option']) { 47 case 'delete': 48 wp_delete_user($id); 49 break; 50 case 'reassign': 51 wp_delete_user($id, $_POST['reassign_user']); 52 break; 53 } 54 } 55 56 header('Location: users.php?update=del'); 57 58 break; 59 60 case 'delete': 61 62 check_admin_referer(); 63 64 if (empty($_POST['users'])) { 65 header('Location: users.php'); 66 } 67 68 if ( !current_user_can('edit_users') ) 69 $error['edit_users'] = __('You can’t delete users.'); 70 71 $userids = $_POST['users']; 72 73 include ('admin-header.php'); 74 ?> 75 <form action="" method="post" name="updateusers" id="updateusers"> 76 <div class="wrap"> 77 <h2><?php _e('Delete Users'); ?></h2> 78 <p><?php _e('You have specified these users for deletion:'); ?></p> 79 <ul> 80 <?php 81 foreach($userids as $id) { 82 $user = new WP_User($id); 83 echo "<li><input type=\"hidden\" name=\"users[]\" value=\"{$id}\" />"; 84 echo "{$id}: {$user->data->user_login}</li>\n"; 85 } 86 $all_logins = $wpdb->get_results("SELECT ID, user_login FROM $wpdb->users ORDER BY user_login"); 87 $user_dropdown = '<select name="reassign_user">'; 88 foreach($all_logins as $login) { 89 if(!in_array($login->ID, $userids)) { 90 $user_dropdown .= "<option value=\"{$login->ID}\">{$login->user_login}</option>"; 91 } 92 } 93 $user_dropdown .= '</select>'; 94 ?> 95 </ul> 96 <p><?php _e('What should be done with posts and links owned by this user?'); ?></p> 97 <ul style="list-style:none;"> 98 <li><label><input type="radio" id="delete_option0" name="delete_option" value="delete" checked="checked" /> 99 <?php _e('Delete all posts and links.'); ?></label></li> 100 <li><input type="radio" id="delete_option1" name="delete_option" value="reassign" /> 101 <?php echo sprintf(__('<label for="delete_option1">Attribute all posts and links to:</label> %s'), $user_dropdown); ?></li> 102 </ul> 103 <input type="hidden" name="action" value="dodelete" /> 104 <p class="submit"><input type="submit" name="submit" value="<?php _e('Confirm Deletion'); ?>" /></p> 105 </div> 106 </form> 107 <?php 108 109 break; 110 11 111 case 'adduser': 12 112 check_admin_referer(); 13 113 14 $user_login = wp_specialchars(trim($_POST['user_login'])); 15 $pass1 = $_POST['pass1']; 16 $pass2 = $_POST['pass2']; 17 $user_email = wp_specialchars(trim($_POST['email'])); 18 $user_firstname = wp_specialchars(trim($_POST['firstname'])); 19 $user_lastname = wp_specialchars(trim($_POST['lastname'])); 20 $user_uri = wp_specialchars(trim($_POST['uri'])); 114 $new_user_login = wp_specialchars(trim($_POST['user_login'])); 115 $new_pass1 = $_POST['pass1']; 116 $new_pass2 = $_POST['pass2']; 117 $new_user_email = wp_specialchars(trim($_POST['email'])); 118 $new_user_firstname = wp_specialchars(trim($_POST['firstname'])); 119 $new_user_lastname = wp_specialchars(trim($_POST['lastname'])); 120 $new_user_uri = wp_specialchars(trim($_POST['uri'])); 121 122 $errors = array(); 21 123 22 124 /* checking that username has been typed */ 23 if ($ user_login == '')24 die (__('<strong>ERROR</strong>: Please enter a username.'));125 if ($new_user_login == '') 126 $errors['user_login'] = __('<strong>ERROR</strong>: Please enter a username.'); 25 127 26 128 /* checking the password has been typed twice */ 27 do_action('check_passwords', array($ user_login, &$pass1, &$pass2));28 if ($ pass1 == '' || $pass2 == '')29 die (__('<strong>ERROR</strong>: Please enter your password twice.'));129 do_action('check_passwords', array($new_user_login, &$new_pass1, &$new_pass2)); 130 if ($new_pass1 == '' || $new_pass2 == '') 131 $errors['pass'] = __('<strong>ERROR</strong>: Please enter your password twice.'); 30 132 31 133 /* checking the password has been typed twice the same */ 32 if ($ pass1 != $pass2)33 die (__('<strong>ERROR</strong>: Please type the same password in the two password fields.'));34 35 $ user_nickname = $user_login;36 37 if ( username_exists( $user_login ) )38 die (__('<strong>ERROR</strong>: This username is already registered, please choose another one.'));134 if ($new_pass1 != $new_pass2) 135 $errors['pass'] = __('<strong>ERROR</strong>: Please type the same password in the two password fields.'); 136 137 $new_user_nickname = $new_user_login; 138 139 if ( username_exists( $new_user_login ) ) 140 $errors['pass'] = __('<strong>ERROR</strong>: This username is already registered, please choose another one.'); 39 141 40 142 /* checking e-mail address */ 41 if (empty($user_email)) { 42 die (__("<strong>ERROR</strong>: please type an e-mail address")); 43 return false; 44 } else if (!is_email($user_email)) { 45 die (__("<strong>ERROR</strong>: the email address isn't correct")); 46 return false; 47 } 48 49 $user_ID = create_user( $user_login, $pass1, $user_email, 0 ); 50 51 update_usermeta( $user_ID, 'first_name', $user_firstname); 52 update_usermeta( $user_ID, 'last_name', $user_lastname); 53 update_usermeta( $user_ID, 'first_name', $user_firstname); 54 55 $stars = ''; 56 for ($i = 0; $i < strlen($pass1); $i = $i + 1) 57 $stars .= '*'; 58 59 $user_login = stripslashes($user_login); 60 $message = sprintf(__('New user registration on your blog %s:'), get_settings('blogname')) . "\r\n\r\n"; 61 $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; 62 $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; 63 64 @wp_mail(get_settings('admin_email'), sprintf(__('[%s] New User Registration'), get_settings('blogname')), $message); 65 header('Location: users.php'); 66 break; 67 68 case 'promote': 69 check_admin_referer(); 70 71 if (empty($_GET['prom'])) { 72 header('Location: users.php'); 73 } 74 75 $id = (int) $_GET['id']; 76 $prom = $_GET['prom']; 77 78 $user_data = get_userdata($id); 79 80 $usertopromote_level = $user_data->user_level; 81 82 if ( $user_level <= $usertopromote_level ) 83 die(__('Can’t change the level of a user whose level is higher than yours.')); 84 85 if ('up' == $prom) { 86 $new_level = $usertopromote_level + 1; 87 } elseif ('down' == $prom) { 88 $new_level = $usertopromote_level - 1; 89 } 90 update_usermeta( $id, $wpdb->prefix . 'user_level', $new_level); 91 92 header('Location: users.php'); 93 94 break; 95 96 case 'delete': 97 98 check_admin_referer(); 99 100 $id = (int) $_GET['id']; 101 102 if (!$id) { 103 header('Location: users.php'); 104 } 105 106 $user_data = get_userdata($id); 107 $usertodelete_level = $user_data->user_level; 108 109 if ($user_level <= $usertodelete_level) 110 die(__('Can’t delete a user whose level is higher than yours.')); 111 112 wp_delete_user($id); 113 114 header('Location: users.php?deleted=true'); 115 116 break; 143 if (empty($new_user_email)) { 144 $errors['user_email'] = __("<strong>ERROR</strong>: please type an e-mail address"); 145 } else if (!is_email($new_user_email)) { 146 $errors['user_email'] = __("<strong>ERROR</strong>: the email address isn't correct"); 147 } 148 149 if(count($errors) == 0) { 150 $user_ID = create_user( $new_user_login, $new_pass1, $new_user_email, 0 ); 151 152 update_usermeta( $user_ID, 'first_name', $new_user_firstname); 153 update_usermeta( $user_ID, 'last_name', $new_user_lastname); 154 update_usermeta( $user_ID, 'first_name', $new_user_firstname); 155 156 $user = new WP_User($user_ID); 157 $user->set_role(get_settings('default_role')); 158 159 $stars = ''; 160 for ($i = 0; $i < strlen($pass1); $i = $i + 1) 161 $stars .= '*'; 162 163 $user_login = stripslashes($new_user_login); 164 $message = sprintf(__('New user registration on your blog %s:'), get_settings('blogname')) . "\r\n\r\n"; 165 $message .= sprintf(__('Username: %s'), $new_user_login) . "\r\n\r\n"; 166 $message .= sprintf(__('E-mail: %s'), $new_user_email) . "\r\n"; 167 168 @wp_mail(get_settings('admin_email'), sprintf(__('[%s] New User Registration'), get_settings('blogname')), $message); 169 header('Location: users.php?update=add'); 170 die(); 171 } 117 172 118 173 default: 119 174 120 175 include ('admin-header.php'); 176 177 $userids = $wpdb->get_col("SELECT ID FROM $wpdb->users;"); 178 179 foreach($userids as $userid) { 180 $tmp_user = new WP_User($userid); 181 $roles = array_keys($tmp_user->roles); 182 $role = $roles[0]; 183 $roleclasses[$role][$tmp_user->data->user_login] = $tmp_user; 184 } 185 121 186 ?> 122 187 123 <?php if (isset($_GET['deleted'])) : ?> 124 <div class="updated"><p><?php _e('User deleted.') ?></p></div> 125 <?php endif; ?> 188 <?php 189 if (isset($_GET['update'])) : 190 switch($_GET['update']) { 191 case 'del': 192 ?> 193 <div class="updated"><p><?php _e('User deleted.'); ?></p></div> 194 <?php 195 break; 196 case 'add': 197 ?> 198 <div class="updated"><p><?php _e('New user created.'); ?></p></div> 199 <?php 200 break; 201 case 'promote': 202 ?> 203 <div class="updated"><p><?php _e('Changed roles.'); ?></p></div> 204 <?php 205 break; 206 } 207 endif; 208 if ( isset($errors) ) : ?> 209 <div class="error"> 210 <ul> 211 <?php 212 foreach($errors as $error) echo "<li>$error</li>"; 213 ?> 214 </ul> 215 </div> 216 <?php 217 endif; 218 ?> 219 220 <form action="" method="post" name="updateusers" id="updateusers"> 126 221 <div class="wrap"> 127 <h2><?php _e('Authors')?></h2>222 <h2><?php _e('User List by Role'); ?></h2> 128 223 <table cellpadding="3" cellspacing="3" width="100%"> 224 <?php 225 foreach($roleclasses as $role => $roleclass) { 226 ksort($roleclass); 227 ?> 228 229 <tr> 230 <th colspan="8" align="left"> 231 <h3><?php echo $wp_roles->role_names[$role]; ?></h3> 232 </th> 233 129 234 <tr> 130 235 <th><?php _e('ID') ?></th> 131 <th><?php _e(' Nickname') ?></th>236 <th><?php _e('Username') ?></th> 132 237 <th><?php _e('Name') ?></th> 133 238 <th><?php _e('E-mail') ?></th> 134 239 <th><?php _e('Website') ?></th> 135 <th><?php _e('Level') ?></th>136 240 <th><?php _e('Posts') ?></th> 137 241 <th> </th> 138 242 </tr> 139 243 <?php 140 $authors =141 $users = get_author_user_ids();142 244 $style = ''; 143 foreach ($ users as $user) {144 $user_data = get_userdata($user);245 foreach ($roleclass as $user_object) { 246 $user_data = &$user_object->data; 145 247 $email = $user_data->user_email; 146 248 $url = $user_data->user_url; … … 152 254 $short_url = substr($short_url, 0, 32).'...'; 153 255 $style = ('class="alternate"' == $style) ? '' : 'class="alternate"'; 154 $numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = '$user ' and post_status = 'publish'");256 $numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = '$user_data->ID' and post_status = 'publish'"); 155 257 if (0 < $numposts) $numposts = "<a href='edit.php?author=$user_data->ID' title='" . __('View posts') . "'>$numposts</a>"; 156 258 echo " 157 259 <tr $style> 158 <td align='center'>$user_data->ID</td>159 <td>< strong>$user_data->user_login</strong></td>160 <td> $user_data->first_name $user_data->last_name</td>260 <td><input type='checkbox' name='users[]' id='user_{$user_data->ID}' value='{$user_data->ID}' /> <label for='user_{$user_data->ID}'>{$user_data->ID}</label></td> 261 <td><label for='user_{$user_data->ID}'><strong>$user_data->user_login</strong></label></td> 262 <td><label for='user_{$user_data->ID}'>$user_data->first_name $user_data->last_name</label></td> 161 263 <td><a href='mailto:$email' title='" . sprintf(__('e-mail: %s'), $email) . "'>$email</a></td> 162 <td><a href='$url' title='website: $url'>$short_url</a></td> 163 <td align='center'>"; 164 if (($user_level >= 2) and ($user_level > $user_data->user_level) and ($user_data->user_level > 0)) 165 echo " <a href=\"users.php?action=promote&id=".$user_data->ID."&prom=down\">-</a> "; 166 echo $user_data->user_level; 167 if (($user_level >= 2) and ($user_level > ($user_data->user_level + 1))) 168 echo " <a href=\"users.php?action=promote&id=".$user_data->ID."&prom=up\">+</a> "; 169 echo "</td><td align='right'>$numposts</td>"; 264 <td><a href='$url' title='website: $url'>$short_url</a></td>"; 265 echo "<td align='right'>$numposts</td>"; 170 266 echo '<td>'; 171 if ( ($user_level >= 2) and ($user_level > $user_data->user_level))267 if (current_user_can('edit_users')) 172 268 echo "<a href='user-edit.php?user_id=$user_data->ID' class='edit'>".__('Edit')."</a>"; 173 269 echo '</td>'; … … 177 273 ?> 178 274 275 276 <?php 277 } 278 ?> 179 279 </table> 280 281 282 <h2><?php _e('Update Users'); ?></h2> 283 <?php 284 $role_select = '<select name="new_role">'; 285 foreach($wp_roles->role_names as $role => $name) { 286 $role_select .= "<option value=\"{$role}\">{$name}</option>"; 287 } 288 $role_select .= '</select>'; 289 ?> 290 <ul style="list-style:none;"> 291 <li><input type="radio" name="action" id="action0" value="delete"> <label for="action0"><?php _e('Delete checked users.'); ?></label></li> 292 <li><input type="radio" name="action" id="action1" value="promote"> <?php echo sprintf(__('<label for="action1">Set the Role of checked users to:</label> %s'), $role_select); ?></li> 293 </ul> 294 <p class="submit"><input type="submit" value="<?php _e('Update »'); ?>"></p> 180 295 </div> 181 182 <?php 183 $users = get_nonauthor_user_ids(); 184 if ($users) { 185 ?> 186 <div class="wrap"> 187 <h2><?php _e('Registered Users') ?></h2> 188 <table cellpadding="3" cellspacing="3" width="100%"> 189 <tr> 190 <th><?php _e('ID') ?></th> 191 <th><?php _e('Nickname') ?></th> 192 <th><?php _e('Name') ?></th> 193 <th><?php _e('E-mail') ?></th> 194 <th><?php _e('Website') ?></th> 195 <th></th> 196 <th></th> 197 <th></th> 198 </tr> 199 <?php 200 $style = ''; 201 foreach ($users as $user) { 202 $user_data = get_userdata($user); 203 $email = $user_data->user_email; 204 $url = $user_data->user_url; 205 $short_url = str_replace('http://', '', $url); 206 $short_url = str_replace('www.', '', $short_url); 207 if ('/' == substr($short_url, -1)) 208 $short_url = substr($short_url, 0, -1); 209 if (strlen($short_url) > 35) 210 $short_url = substr($short_url, 0, 32).'...'; 211 $style = ('class="alternate"' == $style) ? '' : 'class="alternate"'; 212 echo "\n<tr $style> 213 <td align='center'>$user_data->ID</td> 214 <td><strong>$user_data->user_login</strong></td> 215 <td>$user_data->first_name $user_data->last_name</td> 216 <td><a href='mailto:$email' title='" . sprintf(__('e-mail: %s'), $email) . "'>$email</a></td> 217 <td><a href='$url' title='website: $url'>$short_url</a></td> 218 <td align='center'>"; 219 220 if ($user_level >= 6) 221 echo "<a href='users.php?action=promote&id=$user_data->ID&prom=up' class='edit'>". __('Promote') . '</a>'; 222 echo "</td>\n"; 223 echo '<td>'; 224 if (($user_level >= 6) and ($user_level > $user_data->user_level)) 225 echo "<a href='user-edit.php?user_id=$user_data->ID' class='edit'>".__('Edit')."</a>"; 226 echo '</td><td>'; 227 if ($user_level >= 6) 228 echo "<a href='users.php?action=delete&id=$user_data->ID' class='delete' onclick='return confirm(\"" . __('You are about to delete this user \n OK to delete, Cancel to stop.') . "\")'>" . __('Delete'). '</a>'; 229 echo '</td></tr>'; 230 231 } 232 233 ?> 234 235 </table> 236 <p><?php _e('Deleting a user also deletes all posts made by that user.') ?></p> 237 </div> 238 239 <?php 240 } ?> 296 </form> 297 241 298 <div class="wrap"> 242 299 <h2><?php _e('Add New User') ?></h2> … … 247 304 <th scope="row" width="33%"><?php _e('Nickname') ?> 248 305 <input name="action" type="hidden" id="action" value="adduser" /></th> 249 <td width="66%"><input name="user_login" type="text" id="user_login" /></td>306 <td width="66%"><input name="user_login" type="text" id="user_login" value="<?php echo $new_user_login; ?>" /></td> 250 307 </tr> 251 308 <tr> 252 309 <th scope="row"><?php _e('First Name') ?> </th> 253 <td><input name="firstname" type="text" id="firstname" /></td>310 <td><input name="firstname" type="text" id="firstname" value="<?php echo $new_user_firstname; ?>" /></td> 254 311 </tr> 255 312 <tr> 256 313 <th scope="row"><?php _e('Last Name') ?> </th> 257 <td><input name="lastname" type="text" id="lastname" /></td>314 <td><input name="lastname" type="text" id="lastname" value="<?php echo $new_user_lastname; ?>" /></td> 258 315 </tr> 259 316 <tr> 260 317 <th scope="row"><?php _e('E-mail') ?></th> 261 <td><input name="email" type="text" id="email" /></td>318 <td><input name="email" type="text" id="email" value="<?php echo $new_user_email; ?>" /></td> 262 319 </tr> 263 320 <tr> 264 321 <th scope="row"><?php _e('Website') ?></th> 265 <td><input name="uri" type="text" id="uri" /></td>322 <td><input name="uri" type="text" id="uri" value="<?php echo $new_user_uri; ?>" /></td> 266 323 </tr> 267 324 <?php
Note: See TracChangeset
for help on using the changeset viewer.