WordPress.org

Make WordPress Core

Changeset 2872


Ignore:
Timestamp:
09/14/05 00:03:02 (10 years ago)
Author:
ryan
Message:

User create/update rework. Introduce wp_insert_user(), wp_create_user(), wp_update_user(), add_user(), update_user(), wp_new_user_notification().

Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/admin-functions.php

    r2866 r2872  
    343343         
    344344    return $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$category_nicename'"); 
     345} 
     346 
     347// Creates a new user from the "Users" form using $_POST information. 
     348 
     349function add_user() { 
     350    return update_user();    
     351} 
     352 
     353function update_user($user_id = 0) { 
     354     
     355    if ( $user_id != 0 ) { 
     356        $update = true; 
     357        $user->ID = $user_id; 
     358        $userdata = get_userdata($user_id); 
     359        $user->user_login = $userdata->user_login; 
     360    } else { 
     361        $update = false; 
     362        $user = ''; 
     363    } 
     364     
     365    if ( isset($_POST['user_login']) ) 
     366        $user->user_login = wp_specialchars(trim($_POST['user_login'])); 
     367 
     368    $pass1 = $pass2 = ''; 
     369    if ( isset($_POST['pass1']) ) 
     370        $pass1 = $_POST['pass1']; 
     371    if ( isset($_POST['pass2']) ) 
     372        $pass2 = $_POST['pass2']; 
     373 
     374    if ( isset($_POST['email']) ) 
     375        $user->user_email = wp_specialchars(trim($_POST['email'])); 
     376    if ( isset($_POST['url']) ) { 
     377        $user->user_url = wp_specialchars(trim($_POST['url'])); 
     378        $user->user_url = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $user->user_url) ? $user->user_url : 'http://' . $user->user_url;  
     379    } 
     380    if ( isset($_POST['first_name']) ) 
     381        $user->first_name = wp_specialchars(trim($_POST['first_name'])); 
     382    if ( isset($_POST['last_name']) ) 
     383        $user->last_name = wp_specialchars(trim($_POST['last_name'])); 
     384    if ( isset($_POST['nickname']) ) 
     385        $user->nickname = wp_specialchars(trim($_POST['nickname'])); 
     386    if ( isset($_POST['display_name']) ) 
     387        $user->display_name = wp_specialchars(trim($_POST['display_name'])); 
     388    if ( isset($_POST['description']) ) 
     389        $user->description = wp_specialchars(trim($_POST['description'])); 
     390    if ( isset($_POST['jabber']) ) 
     391        $user->jabber = wp_specialchars(trim($_POST['jabber'])); 
     392    if ( isset($_POST['aim']) ) 
     393        $user->aim = wp_specialchars(trim($_POST['aim'])); 
     394    if ( isset($_POST['yim']) ) 
     395        $user->yim = wp_specialchars(trim($_POST['yim'])); 
     396 
     397    $errors = array(); 
     398         
     399    /* checking that username has been typed */ 
     400    if ($user->user_login == '') 
     401        $errors['user_login'] = __('<strong>ERROR</strong>: Please enter a username.'); 
     402 
     403    /* checking the password has been typed twice */ 
     404    do_action('check_passwords', array($user->user_login, &$pass1, &$pass2)); 
     405     
     406    if ( !$update ) { 
     407        if ( $pass1 == '' || $pass2 == '' ) 
     408            $errors['pass'] = __('<strong>ERROR</strong>: Please enter your password twice.'); 
     409    } else { 
     410        if ( ( empty($pass1) && !empty($pass2) ) || ( empty($pass2) && !empty($pass1) ) ) 
     411            $errors['pass'] = __("<strong>ERROR</strong>: you typed your new password only once."); 
     412    } 
     413     
     414    /* checking the password has been typed twice the same */ 
     415    if ($pass1 != $pass2) 
     416        $errors['pass'] = __('<strong>ERROR</strong>: Please type the same password in the two password fields.'); 
     417 
     418    if ( !empty($pass1) ) 
     419        $user->user_pass = $pass1; 
     420     
     421    if ( !$update && username_exists( $user_login ) ) 
     422        $errors['user_login'] = __('<strong>ERROR</strong>: This username is already registered, please choose another one.'); 
     423 
     424    /* checking e-mail address */ 
     425    if (empty($user->user_email)) { 
     426        $errors['user_email'] = __("<strong>ERROR</strong>: please type an e-mail address"); 
     427    } else if (!is_email($user->user_email)) { 
     428        $errors['user_email'] = __("<strong>ERROR</strong>: the email address isn't correct"); 
     429    } 
     430 
     431    if ( count($errors) != 0 ) 
     432        return $errors; 
     433     
     434    if ( $update ) { 
     435        $user_id = wp_update_user(get_object_vars($user)); 
     436    } else { 
     437        $user_id = wp_insert_user(get_object_vars($user)); 
     438        wp_new_user_notification($user_id); 
     439    } 
     440     
     441    return $errors; 
    345442} 
    346443 
  • trunk/wp-admin/admin.php

    r2865 r2872  
    77require_once(ABSPATH . 'wp-admin/admin-functions.php'); 
    88require_once(ABSPATH . 'wp-admin/admin-db.php'); 
     9require_once(ABSPATH . WPINC . '/registration-functions.php'); 
     10 
    911auth_redirect(); 
    1012 
  • trunk/wp-admin/import/mt.php

    r2800 r2872  
    3636        $importdata = preg_replace("/\n--------\n/", "--MT-ENTRY--\n", $importdata); 
    3737        $this->posts = explode("--MT-ENTRY--", $importdata); 
     38        unset($importdata); 
     39         
     40         
    3841    } 
    3942     
     
    4245        if ('' == MTEXPORT) die("You must edit the MTEXPORT line as described on the <a href='import-mt.php'>previous page</a> to continue."); 
    4346     
    44         $this->get_entries();    
     47        $this->get_entries(); 
    4548    } 
    4649     
  • trunk/wp-admin/profile-update.php

    r2845 r2872  
    55check_admin_referer(); 
    66 
    7 if ( empty($_POST['email']) ) 
    8     die (__("<strong>ERROR</strong>: please type your e-mail address")); 
    9 elseif ( !is_email($_POST['email']) ) 
    10     die (__("<strong>ERROR</strong>: the e-mail address isn't correct")); 
     7$errors = update_user($user_ID); 
    118 
    12 $pass1 = $_POST['pass1']; 
    13 $pass2 = $_POST['pass2']; 
    14 do_action('check_passwords', array($user_login, &$pass1, &$pass2)); 
    15  
    16 if ( '' == $pass1 ) { 
    17     if ( '' != $pass2 ) 
    18         die (__('<strong>ERROR</strong>: you typed your new password only once. Go back to type it twice.')); 
    19     $updatepassword = ''; 
    20 } else { 
    21     if ('' == $pass2) 
    22         die (__('<strong>ERROR</strong>: you typed your new password only once. Go back to type it twice.')); 
    23     if ( $pass1 != $pass2 ) 
    24         die (__('<strong>ERROR</strong>: you typed two different passwords. Go back to correct that.')); 
    25     $newuser_pass = $pass1; 
    26     $updatepassword = "user_pass=MD5('$newuser_pass'), "; 
    27     wp_clearcookie(); 
    28     wp_setcookie($user_login, $newuser_pass); 
     9if (count($errors) != 0) { 
     10    foreach ($errors as $id => $error) { 
     11        echo $error . '<br/>'; 
     12    } 
     13    exit; 
    2914} 
    30  
    31 $first_name = wp_specialchars($_POST['first_name']); 
    32 $last_name = wp_specialchars($_POST['last_name']); 
    33 $display_name = wp_specialchars($_POST['display_name']); 
    34 $nickname = $_POST['nickname']; 
    35 $nicename = sanitize_title($nickname); 
    36 $jabber = wp_specialchars($_POST['jabber']); 
    37 $aim = wp_specialchars($_POST['aim']); 
    38 $yim = wp_specialchars($_POST['yim']); 
    39 $email = wp_specialchars($_POST['email']); 
    40 $url = wp_specialchars($_POST['url']); 
    41 $url = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $url) ? $url : 'http://' . $url;  
    42 $user_description = $_POST['user_description']; 
    43  
    44 $result = $wpdb->query("UPDATE $wpdb->users SET $updatepassword user_email='$email', user_url='$url', user_nicename = '$nicename', display_name = '$display_name' WHERE ID = '$user_ID'"); 
    45  
    46 update_usermeta( $user_ID, 'first_name', $first_name ); 
    47 update_usermeta( $user_ID, 'last_name', $last_name ); 
    48 update_usermeta( $user_ID, 'nickname', $nickname ); 
    49 update_usermeta( $user_ID, 'description', $user_description ); 
    50 update_usermeta( $user_ID, 'jabber', $jabber ); 
    51 update_usermeta( $user_ID, 'aim', $aim ); 
    52 update_usermeta( $user_ID, 'yim', $yim ); 
    53  
    54 do_action('profile_update', $user_ID); 
    5515 
    5616if ( 'profile' == $_POST['from'] ) 
  • trunk/wp-admin/profile.php

    r2844 r2872  
    2929<legend><?php _e('Name'); ?></legend> 
    3030<p><label><?php _e('Username: (no editing)'); ?><br /> 
    31 <input type="text" name="username" value="<?php echo $profiledata->user_login; ?>" disabled="disabled" /> 
     31<input type="text" name="user_login" value="<?php echo $profiledata->user_login; ?>" disabled="disabled" /> 
    3232</label></p> 
    3333<p><label><?php _e('First name:') ?><br /> 
     
    8484<legend><?php _e('About yourself'); ?></legend> 
    8585<p class="desc"><?php _e('Share a little biographical information to fill out your profile. This may be shown publicly.'); ?></p> 
    86 <p><textarea name="user_description" rows="5" cols="30"><?php echo $profiledata->user_description ?></textarea></p> 
     86<p><textarea name="description" rows="5" cols="30"><?php echo $profiledata->description ?></textarea></p> 
    8787</fieldset> 
    8888 
  • trunk/wp-admin/user-edit.php

    r2762 r2872  
    3434 
    3535$errors = array(); 
    36 if(empty($wp_user)) { 
    37     $wp_user = new WP_User($user_id); 
    38     $edituser = &$wp_user->data; 
    39 } 
    4036 
    41 if (!current_user_can('edit_users')) $errors['head'] = __('You do not have permission to edit this user.'); 
    42  
    43 /* checking the nickname has been typed */ 
    44 if (empty($_POST["new_nickname"])) { 
    45     $errors['nickname'] = __("<strong>ERROR</strong>: please enter your nickname (can be the same as your username)"); 
    46 } 
    47  
    48 $new_user_login  = wp_specialchars($_POST['new_user_login']); 
    49 $pass1 = $_POST['pass1']; 
    50 $pass2 = $_POST['pass2']; 
    51 do_action('check_passwords', array($new_user_login, &$pass1, &$pass2)); 
    52  
    53 if ( '' == $pass1 ) { 
    54     if ( '' != $pass2 ) 
    55         $errors['pass'] = __("<strong>ERROR</strong>: you typed your new password only once."); 
    56     $updatepassword = ''; 
    57 } else { 
    58     if ( '' == $pass2) 
    59         $errors['pass'] = __("<strong>ERROR</strong>: you typed your new password only once."); 
    60     if ( $pass1 != $pass2 ) 
    61         $errors['pass'] = __("<strong>ERROR</strong>: you typed two different passwords."); 
    62     $new_pass = $pass1; 
    63     $updatepassword = "user_pass=MD5('$new_pass'), "; 
    64 } 
    65  
    66 $edituser->user_login       = wp_specialchars($_POST['new_user_login']); 
    67 $edituser->user_nicename    = sanitize_title($new_nickname, $user_id); 
    68 $edituser->user_email       = wp_specialchars($_POST['new_email']); 
    69 $edituser->user_url         = wp_specialchars($_POST['new_url']); 
    70 $edituser->user_url         = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $edituser->user_url) ? $edituser->user_url : 'http://' . $edituser->user_url;  
    71 $edituser->display_name     = wp_specialchars($_POST['display_name']); 
    72  
    73 $edituser->first_name  = wp_specialchars($_POST['new_firstname']); 
    74 $edituser->last_name   = wp_specialchars($_POST['new_lastname']); 
    75 $edituser->nickname    = $_POST['new_nickname']; 
    76 $edituser->icq         = wp_specialchars($_POST['new_icq']); 
    77 $edituser->aim         = wp_specialchars($_POST['new_aim']); 
    78 $edituser->msn         = wp_specialchars($_POST['new_msn']); 
    79 $edituser->yim         = wp_specialchars($_POST['new_yim']); 
    80 $edituser->description = $_POST['new_description']; 
     37if (!current_user_can('edit_users')) 
     38    $errors['head'] = __('You do not have permission to edit this user.'); 
     39else 
     40    $errors = update_user($user_id); 
    8141 
    8242if(count($errors) == 0) { 
    83     $result = $wpdb->query("UPDATE $wpdb->users SET user_login = '$edituser->user_login', $updatepassword user_email='$edituser->user_email', user_url='$edituser->user_url', user_nicename = '$edituser->user_nicename', display_name = '$edituser->display_name' WHERE ID = '$user_id'"); 
    84      
    85     update_usermeta( $user_id, 'first_name', $edituser->firstname ); 
    86     update_usermeta( $user_id, 'last_name', $edituser->lastname ); 
    87     update_usermeta( $user_id, 'nickname', $edituser->nickname ); 
    88     update_usermeta( $user_id, 'description', $edituser->description ); 
    89     update_usermeta( $user_id, 'icq', $edituser->icq ); 
    90     update_usermeta( $user_id, 'aim', $edituser->aim ); 
    91     update_usermeta( $user_id, 'msn', $edituser->msn ); 
    92     update_usermeta( $user_id, 'yim', $edituser->yim ); 
    93      
    94     $wp_user->set_role($_POST['new_role']); 
    95      
    9643    header("Location: user-edit.php?user_id=$user_id&updated=true"); 
    97 } else { 
    98     $wp_user->roles = array($_POST['new_role'] => true); 
     44    exit; 
    9945} 
    10046 
     
    10248include ('admin-header.php'); 
    10349 
    104 if(empty($wp_user)) { 
    105     $wp_user = new WP_User($user_id); 
    106     $edituser = &$wp_user->data; 
    107 } 
     50$profileuser = new WP_User($user_id); 
     51$profiledata = $profileuser->data; 
    10852 
    10953if (!current_user_can('edit_users')) $errors['head'] = __('You do not have permission to edit this user.'); 
     
    11559</div> 
    11660<?php endif; ?> 
    117 <?php if ( isset($errors) ) : ?> 
     61<?php if ( count($errors) != 0 ) : ?> 
    11862<div class="error"> 
    11963    <ul> 
     
    12771<div class="wrap"> 
    12872<h2><?php _e('Edit User'); ?></h2> 
    129 <form name="edituser" id="edituser" action="user-edit.php" method="post"> 
    130 <table width="99%"  border="0" cellspacing="2" cellpadding="3"> 
    131     <tr> 
    132         <th width="33%" scope="row"><?php _e('Username:') ?></th> 
    133         <td width="73%"><input type="text" name="new_user_login" id="new_user_login" value="<?php echo $edituser->user_login; ?>" /></td> 
    134     </tr> 
    135     <tr> 
    136         <th scope="row"><?php _e('Role:') ?></th> 
    137         <td><select name="new_role" id="new_role"><?php  
    138         foreach($wp_roles->role_names as $role => $name) { 
    139             $selected = (empty($wp_user->roles[$role])) ? '' : 'selected="selected"'; 
    140             echo "<option {$selected} value=\"{$role}\">{$name}</option>"; 
    141         } 
    142         ?></select></td> 
    143     </tr> 
    144     <tr> 
    145         <th scope="row"><?php _e('Posts:') ?></th> 
    146         <td><?php echo get_usernumposts($edituser->ID); ?></td> 
    147     </tr> 
    148 <?php if ( isset($edituser->user_registered) && ('0000-00-00 00:00:00' != $edituser->user_registered) ) { ?> 
    149     <tr> 
    150         <th scope="row"><?php _e('Registered on:') ?></th> 
    151         <td><?php echo substr($edituser->user_registered, 0, 11); ?></td> 
    152     </tr> 
    153 <?php } ?> 
    154     <tr> 
    155         <th scope="row"><?php _e('First name:') ?></th> 
    156         <td><input type="text" name="new_firstname" id="new_firstname" value="<?php echo $edituser->first_name ?>" /></td> 
    157     </tr> 
    158     <tr> 
    159         <th scope="row"><?php _e('Last name:') ?></th> 
    160         <td><input type="text" name="new_lastname" id="new_lastname2" value="<?php echo $edituser->last_name ?>" /></td> 
    161     </tr> 
    162     <tr> 
    163         <th scope="row"><?php _e('Profile:') ?></th> 
    164         <td><textarea name="new_description" rows="5" id="new_description" style="width: 99%; "><?php echo $edituser->description ?></textarea></td> 
    165     </tr> 
    166     <tr> 
    167         <th scope="row"><?php _e('Nickname:') ?></th> 
    168         <td><input type="text" name="new_nickname" id="new_nickname" value="<?php echo $edituser->nickname ?>" /></td> 
    169     </tr> 
    170     <tr> 
    171         <th scope="row"><?php _e('E-mail:') ?></th> 
    172         <td><input type="text" name="new_email" id="new_email" value="<?php echo $edituser->user_email ?>" /></td> 
    173     </tr> 
    174     <tr> 
    175         <th scope="row"><?php _e('Website:') ?></th> 
    176         <td><input type="text" name="new_url" id="new_url" value="<?php echo $edituser->user_url ?>" /></td> 
    177     </tr> 
    178     <tr> 
    179         <th scope="row"><?php _e('ICQ:') ?></th> 
    180         <td><input type="text" name="new_icq" id="new_icq" value="<?php if ($edituser->icq > 0) { echo $edituser->icq; } ?>" /></td> 
    181     </tr> 
    182     <tr> 
    183         <th scope="row"><?php _e('AIM:') ?></th> 
    184         <td><input type="text" name="new_aim" id="new_aim" value="<?php echo $edituser->aim ?>" /></td> 
    185     </tr> 
    186     <tr> 
    187         <th scope="row"><?php _e('MSN IM:') ?> 
    188         </th> 
    189         <td><input type="text" name="new_msn" id="new_msn" value="<?php echo $edituser->msn ?>" /></td> 
    190     </tr> 
    191     <tr> 
    192         <th scope="row"><?php _e('Yahoo IM:') ?> 
    193         </th> 
    194         <td><input type="text" name="new_yim" id="new_yim" value="<?php echo $edituser->yim ?>" /> 
    195         </td> 
    196     </tr> 
    197     <tr> 
    198         <th scope="row"><?php _e('Identity on blog:') ?> 
    199         </th> 
    200         <td>    <select name="display_name"> 
    201         <option value="<?php echo $edituser->display_name; ?>"><?php echo $edituser->display_name; ?></option> 
    202         <option value="<?php echo $edituser->nickname ?>"><?php echo $edituser->nickname ?></option> 
    203         <option value="<?php echo $edituser->user_login ?>"><?php echo $edituser->user_login ?></option> 
    204     <?php if ( !empty( $edituser->first_name ) ) : ?> 
    205         <option value="<?php echo $edituser->first_name ?>"><?php echo $edituser->first_name ?></option> 
    206     <?php endif; ?> 
    207     <?php if ( !empty( $edituser->last_name ) ) : ?> 
    208         <option value="<?php echo $edituser->last_name ?>"><?php echo $edituser->last_name ?></option> 
    209     <?php endif; ?> 
    210     <?php if ( !empty( $edituser->first_name ) && !empty( $edituser->last_name ) ) : ?> 
    211         <option value="<?php echo $edituser->first_name." ".$edituser->last_name ?>"><?php echo $edituser->first_name." ".$edituser->last_name ?></option> 
    212         <option value="<?php echo $edituser->last_name." ".$edituser->first_name ?>"><?php echo $edituser->last_name." ".$edituser->first_name ?></option> 
    213     <?php endif; ?> 
    214       </select> 
    215         </td> 
    216     </tr> 
     73 
     74<form name="profile" id="your-profile" action="user-edit.php" method="post"> 
     75<p> 
     76<input type="hidden" name="from" value="profile" /> 
     77<input type="hidden" name="checkuser_id" value="<?php echo $user_ID ?>" /> 
     78</p> 
     79 
     80<fieldset> 
     81<legend><?php _e('Name'); ?></legend> 
     82<p><label><?php _e('Username: (no editing)'); ?><br /> 
     83<input type="text" name="user_login" value="<?php echo $profiledata->user_login; ?>" disabled="disabled" /> 
     84</label></p> 
     85<p><label><?php _e('First name:') ?><br /> 
     86<input type="text" name="first_name" value="<?php echo $profiledata->first_name ?>" /></label></p> 
     87 
     88<p><label><?php _e('Last name:') ?><br /> 
     89<input type="text" name="last_name"  value="<?php echo $profiledata->last_name ?>" /></label></p> 
     90 
     91<p><label><?php _e('Nickname:') ?><br /> 
     92<input type="text" name="nickname" value="<?php echo $profiledata->nickname ?>" /></label></p> 
     93 
     94</p><label><?php _e('Display name publicly as:') ?> <br /> 
     95<select name="display_name"> 
     96<option value="<?php echo $profiledata->display_name; ?>"><?php echo $profiledata->display_name; ?></option> 
     97<option value="<?php echo $profiledata->nickname ?>"><?php echo $profiledata->nickname ?></option> 
     98<option value="<?php echo $profiledata->user_login ?>"><?php echo $profiledata->user_login ?></option> 
     99<?php if ( !empty( $profiledata->first_name ) ) : ?> 
     100<option value="<?php echo $profiledata->first_name ?>"><?php echo $profiledata->first_name ?></option> 
     101<?php endif; ?> 
     102<?php if ( !empty( $profiledata->last_name ) ) : ?> 
     103<option value="<?php echo $profiledata->last_name ?>"><?php echo $profiledata->last_name ?></option> 
     104<?php endif; ?> 
     105<?php if ( !empty( $profiledata->first_name ) && !empty( $profiledata->last_name ) ) : ?> 
     106<option value="<?php echo $profiledata->first_name." ".$profiledata->last_name ?>"><?php echo $profiledata->first_name." ".$profiledata->last_name ?></option> 
     107<option value="<?php echo $profiledata->last_name." ".$profiledata->first_name ?>"><?php echo $profiledata->last_name." ".$profiledata->first_name ?></option> 
     108<?php endif; ?> 
     109</select></label></p> 
     110</fieldset> 
     111 
     112<fieldset> 
     113<legend><?php _e('Contact Info'); ?></legend> 
     114 
     115<p><label><?php _e('E-mail: (required)') ?><br /> 
     116<input type="text" name="email" value="<?php echo $profiledata->user_email ?>" /></label></p> 
     117 
     118<p><label><?php _e('Website:') ?><br /> 
     119<input type="text" name="url" value="<?php echo $profiledata->user_url ?>" /> 
     120</label></p> 
     121 
     122<p><label><?php _e('AIM:') ?><br /> 
     123<input type="text" name="aim" value="<?php echo $profiledata->aim ?>" /> 
     124</label></p> 
     125 
     126<p><label><?php _e('Yahoo IM:') ?><br /> 
     127<input type="text" name="yim" value="<?php echo $profiledata->yim ?>" /> 
     128</label></p> 
     129 
     130<p><label><?php _e('Jabber / Google Talk:') ?> 
     131<input type="text" name="jabber" value="<?php echo $profiledata->jabber ?>" /></label> 
     132</p> 
     133</fieldset> 
     134<br clear="all" /> 
     135<fieldset> 
     136<legend><?php _e('About the user'); ?></legend> 
     137<p class="desc"><?php _e('Share a little biographical information to fill out your profile. This may be shown publicly.'); ?></p> 
     138<p><textarea name="description" rows="5" cols="30"><?php echo $profiledata->description ?></textarea></p> 
     139</fieldset> 
     140 
    217141<?php 
    218 do_action('edit_user_profile'); 
    219  
    220142$show_password_fields = apply_filters('show_password_fields', true); 
    221143if ( $show_password_fields ) : 
    222144?> 
    223     <tr> 
    224         <th scope="row"><?php _e('New <strong>Password</strong> (Leave blank to stay the same.)') ?></th> 
    225         <td><input type="password" name="pass1" size="16" value="" /> 
    226             <br /> 
    227             <input type="password" name="pass2" size="16" value="" /></td> 
    228     </tr> 
     145<fieldset> 
     146<legend><?php _e("Update User's Password"); ?></legend> 
     147<p class="desc"><?php _e("If you would like to change the user's password type a new one twice below. Otherwise leave this blank."); ?></p> 
     148<p><label><?php _e('New Password:'); ?><br /> 
     149<input type="password" name="pass1" size="16" value="" /> 
     150</label></p> 
     151<p><label><?php _e('Type it one more time:'); ?><br /> 
     152<input type="password" name="pass2" size="16" value="" /> 
     153</label></p> 
     154</fieldset> 
    229155<?php endif; ?> 
    230 </table> 
    231   <p class="submit"> 
     156 
     157<?php do_action('edit_user_profile'); ?> 
     158 
     159<br clear="all" /> 
     160  <table width="99%"  border="0" cellspacing="2" cellpadding="3" class="editform"> 
     161    <?php 
     162    if(count($profileuser->caps) > count($profileuser->roles)): 
     163    ?> 
     164    <tr> 
     165      <th scope="row"><?php _e('Additional Capabilities:') ?></th> 
     166      <td><?php  
     167            $output = ''; 
     168            foreach($profileuser->caps as $cap => $value) { 
     169                if(!$wp_roles->is_role($cap)) { 
     170                    if($output != '') $output .= ', '; 
     171                    $output .= $value ? $cap : "Denied: {$cap}"; 
     172                } 
     173            } 
     174            echo $output; 
     175            ?></td> 
     176    </tr> 
     177    <?php 
     178    endif; 
     179    ?> 
     180  </table> 
     181<p class="submit"> 
    232182    <input type="hidden" name="action" value="update" /> 
    233183    <input type="hidden" name="user_id" id="user_id" value="<?php echo $user_id; ?>" /> 
    234184    <input type="submit" value="<?php _e('Update User &raquo;') ?>" name="submit" /> 
    235   </p> 
     185 </p> 
    236186</form> 
    237187</div> 
    238  
    239188<?php 
    240189break; 
  • trunk/wp-admin/users.php

    r2847 r2872  
    111111case 'adduser': 
    112112    check_admin_referer(); 
    113  
    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(); 
    123          
    124     /* checking that username has been typed */ 
    125     if ($new_user_login == '') 
    126         $errors['user_login'] = __('<strong>ERROR</strong>: Please enter a username.'); 
    127  
    128     /* checking the password has been typed 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.'); 
    132  
    133     /* checking the password has been typed twice the same */ 
    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.'); 
    141  
    142     /* checking e-mail address */ 
    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  
    170         do_action('user_register', $user_id); 
    171  
     113     
     114    $errors = add_user(); 
     115     
     116    if(count($errors) == 0) { 
    172117        header('Location: users.php?update=add'); 
    173118        die(); 
     
    311256    <tr> 
    312257      <th scope="row"><?php _e('First Name') ?> </th> 
    313       <td><input name="firstname" type="text" id="firstname" value="<?php echo $new_user_firstname; ?>" /></td> 
     258      <td><input name="first_name" type="text" id="first_name" value="<?php echo $new_user_firstname; ?>" /></td> 
    314259    </tr> 
    315260    <tr> 
    316261      <th scope="row"><?php _e('Last Name') ?> </th> 
    317       <td><input name="lastname" type="text" id="lastname" value="<?php echo $new_user_lastname; ?>" /></td> 
     262      <td><input name="last_name" type="text" id="last_name" value="<?php echo $new_user_lastname; ?>" /></td> 
    318263    </tr> 
    319264    <tr> 
     
    323268    <tr> 
    324269      <th scope="row"><?php _e('Website') ?></th> 
    325       <td><input name="uri" type="text" id="uri" value="<?php echo $new_user_uri; ?>" /></td> 
     270      <td><input name="url" type="text" id="url" value="<?php echo $new_user_uri; ?>" /></td> 
    326271    </tr> 
    327272<?php 
  • trunk/wp-includes/functions.php

    r2856 r2872  
    12641264} 
    12651265 
     1266function clean_user_cache($id) { 
     1267    if ( isset( $cache_userdata[$id] ) ) 
     1268        unset( $cache_userdata[$id] ); 
     1269} 
     1270 
    12661271function wp_head() { 
    12671272    do_action('wp_head'); 
  • trunk/wp-includes/pluggable-functions.php

    r2827 r2872  
    320320endif; 
    321321 
     322if ( !function_exists('wp_new_user_notification') ) : 
     323function wp_new_user_notification($user_id, $plaintext_pass = '') { 
     324    $user = new WP_User($user_id); 
     325     
     326    $stars = ''; 
     327    for ($i = 0; $i < strlen($pass1); $i = $i + 1) 
     328        $stars .= '*'; 
     329     
     330    $user_login = stripslashes($user->data->user_login); 
     331    $user_email = stripslashes($user->data->user_email); 
     332     
     333    $message  = sprintf(__('New user registration on your blog %s:'), get_settings('blogname')) . "\r\n\r\n"; 
     334    $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; 
     335    $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; 
     336     
     337    @wp_mail(get_settings('admin_email'), sprintf(__('[%s] New User Registration'), get_settings('blogname')), $message); 
     338 
     339    if ( empty($plaintext_pass) ) 
     340        return; 
     341 
     342    $message  = sprintf(__('Username: %s'), $user_login) . "\r\n"; 
     343    $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n"; 
     344    $message .= get_settings('siteurl') . "/wp-login.php\r\n"; 
     345         
     346    wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_settings('blogname')), $message); 
     347     
     348} 
     349endif; 
     350 
    322351?> 
  • trunk/wp-includes/registration-functions.php

    r2735 r2872  
    99} 
    1010 
    11 function create_user( $username, $password, $email, $user_level ) { 
     11function wp_insert_user($userdata) { 
    1212    global $wpdb; 
    13     $username = $wpdb->escape( $username ); 
    14     $email    = $wpdb->escape( $email ); 
    15     $password = md5( $password ); 
    16     $user_nicename = sanitize_title( $username ); 
    17     $now = gmdate('Y-m-d H:i:s'); 
    1813 
    19     $query = "INSERT INTO $wpdb->users  
    20         (user_login, user_pass, user_email, user_registered, user_nicename, display_name) 
     14    extract($userdata); 
     15 
     16    // Are we updating or creating? 
     17    if ( !empty($ID) ) { 
     18        $update = true; 
     19    } else { 
     20        $update = false; 
     21        // Password is not hashed when creating new user. 
     22        $user_pass = md5($user_pass); 
     23    } 
     24     
     25    if ( empty($user_nicename) ) 
     26        $user_nicename = sanitize_title( $user_login ); 
     27 
     28    if ( empty($display_name) ) 
     29        $display_name = $user_login; 
     30         
     31    if ( empty($nickname) ) 
     32        $nickname = $user_login; 
     33             
     34    if ( empty($user_registered) ) 
     35        $user_registered = gmdate('Y-m-d H:i:s'); 
     36 
     37    if ( $update ) { 
     38        $query = "UPDATE $wpdb->users SET user_pass='$user_pass' user_email='$user_email', user_url='$user_url', user_nicename = '$user_nicename', display_name = '$display_name' WHERE ID = '$ID'"; 
     39        $query = apply_filters('update_user_query', $query); 
     40        $wpdb->query( $query ); 
     41        $user_id = $ID; 
     42    } else { 
     43        $query = "INSERT INTO $wpdb->users  
     44        (user_login, user_pass, user_email, user_url, user_registered, user_nicename, display_name) 
    2145    VALUES  
    22         ('$username', '$password', '$email', '$now', '$user_nicename', '$username')"; 
    23     $query = apply_filters('create_user_query', $query); 
    24     $wpdb->query( $query ); 
    25     $user_id = $wpdb->insert_id; 
     46        ('$user_login', '$user_pass', '$user_email', '$user_url', '$user_registered', '$user_nicename', '$display_name')"; 
     47        $query = apply_filters('create_user_query', $query); 
     48        $wpdb->query( $query ); 
     49        $user_id = $wpdb->insert_id; 
     50    } 
     51     
     52    clean_user_cache($user_id); 
     53    clean_user_cache($user_login); 
    2654 
    27     $user_level = (int) $user_level; 
    28     update_usermeta( $user_id, $wpdb->prefix . 'user_level', $user_level); 
    29     $user = new WP_User($user_id); 
    30     $user->set_role(get_settings('default_role')); 
     55    update_usermeta( $user_id, 'first_name', $first_name); 
     56    update_usermeta( $user_id, 'last_name', $last_name); 
     57    update_usermeta( $user_id, 'nickname', $nickname ); 
     58    update_usermeta( $user_id, 'description', $description ); 
     59    update_usermeta( $user_id, 'jabber', $jabber ); 
     60    update_usermeta( $user_id, 'aim', $aim ); 
     61    update_usermeta( $user_id, 'yim', $yim ); 
     62     
     63    if ( !$update ) { 
     64        $user = new WP_User($user_id); 
     65        $user->set_role(get_settings('default_role')); 
     66    } 
     67     
     68    if ( $update ) 
     69        do_action('profile_update', $user_id); 
     70    else 
     71        do_action('user_register', $user_id); 
     72         
     73    return $user_id;     
     74} 
     75 
     76function wp_update_user($userdata) { 
     77    global $wpdb; 
     78 
     79    $ID = (int) $userdata['ID']; 
     80     
     81    // First, get all of the original fields 
     82    $user = get_userdata($ID);   
     83 
     84    // Escape data pulled from DB. 
     85    $user = add_magic_quotes(get_object_vars($user)); 
     86 
     87    // If password is changing, hash it now. 
     88    if ( ! empty($userdata['user_pass']) ) { 
     89        $plaintext_pass = $userdata['user_pass']; 
     90        $userdata['user_pass'] = md5($userdata['user_pass']); 
     91    } 
     92     
     93    // Merge old and new fields with new fields overwriting old ones. 
     94    $userdata = array_merge($user, $userdata); 
     95    $user_id = wp_insert_user($userdata); 
     96 
     97    // Update the cookies if the password changed.   
     98    if ( isset($plaintext_pass) ) { 
     99        wp_clearcookie(); 
     100        wp_setcookie($userdata['user_login'], $plaintext_pass); 
     101    } 
    31102     
    32103    return $user_id; 
    33104} 
    34105 
     106function wp_create_user( $username, $password, $email ) { 
     107    global $wpdb; 
     108     
     109    $user_login = $wpdb->escape( $username ); 
     110    $user_email = $wpdb->escape( $email ); 
     111    $user_pass = $password; 
     112 
     113    $userdata = compact('user_login', 'user_email', 'user_pass'); 
     114    return wp_insert_user($userdata); 
     115} 
     116 
     117 
     118function create_user( $username, $password, $email ) { 
     119    return wp_create_user( $username, $password, $email );   
     120} 
     121 
     122 
    35123?> 
  • trunk/wp-register.php

    r2732 r2872  
    3131        $errors['user_login'] = __('<strong>ERROR</strong>: This username is already registered, please choose another one.'); 
    3232 
    33     $password = substr( md5( uniqid( microtime() ) ), 0, 7); 
     33    if ( 0 == count($errors) ) { 
     34        $password = substr( md5( uniqid( microtime() ) ), 0, 7); 
    3435 
    35     $user_id = create_user( $user_login, $password, $user_email, 0 ); 
    36     if ( !$user_id ) { 
    37         $errors['user_id'] = sprintf(__('<strong>ERROR</strong>: Couldn&#8217;t register you... please contact the <a href="mailto:%s">webmaster</a> !'), get_settings('admin_email')); 
     36        $user_id = wp_create_user( $user_login, $password, $user_email ); 
     37        if ( !$user_id ) 
     38            $errors['user_id'] = sprintf(__('<strong>ERROR</strong>: Couldn&#8217;t register you... please contact the <a href="mailto:%s">webmaster</a> !'), get_settings('admin_email')); 
     39        else 
     40            wp_new_user_notification($user_id, $password); 
    3841    } 
    39  
    40     if(count($errors) == 0) { 
    41         $user = new WP_User($user_id); 
    42         $user->set_role(get_settings('default_role')); 
    4342     
    44         do_action('user_register', $user_id); 
    45      
    46      
    47         $stars = ''; 
    48         for ($i = 0; $i < strlen($pass1); $i = $i + 1) { 
    49             $stars .= '*'; 
    50         } 
    51          
    52         $message  = sprintf(__('Username: %s'), $user_login) . "\r\n"; 
    53         $message .= sprintf(__('Password: %s'), $password) . "\r\n"; 
    54         $message .= get_settings('siteurl') . "/wp-login.php\r\n"; 
    55          
    56         wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_settings('blogname')), $message); 
    57      
    58         $message  = sprintf(__('New user registration on your blog %s:'), get_settings('blogname')) . "\r\n\r\n"; 
    59         $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; 
    60         $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; 
    61      
    62         @wp_mail(get_settings('admin_email'), sprintf(__('[%s] New User Registration'), get_settings('blogname')), $message); 
    63  
     43    if ( 0 == count($errors) ) { 
     44             
    6445    ?> 
    6546<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
Note: See TracChangeset for help on using the changeset viewer.