From 151e726b7bb00a3f46a64bb10c71011bd56dca34 Mon Sep 17 00:00:00 2001 From: donncha Date: Wed, 13 Jul 2005 16:52:09 +0000 Subject: Merge from WP Core, things are broken right now. git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@20 7be80a69-a1ef-0310-a953-fb0f7c49ff36 --- wp-inst/wp-admin/admin-functions.php | 44 ++++++---- wp-inst/wp-admin/menu-header.php | 7 +- wp-inst/wp-admin/menu.php | 68 +++++++-------- wp-inst/wp-admin/options-general.php | 13 ++- wp-inst/wp-admin/options-writing.php | 10 +-- wp-inst/wp-admin/profile.php | 99 +++++++++++++-------- wp-inst/wp-admin/upgrade-functions.php | 11 ++- wp-inst/wp-admin/upgrade-schema.php | 6 +- wp-inst/wp-admin/user-edit.php | 128 ++++++++++++++++----------- wp-inst/wp-admin/wp-admin.css | 9 +- wp-inst/wp-includes/functions.php | 6 +- wp-inst/wp-includes/pluggable-functions.php | 35 +++++++- wp-inst/wp-register.php | 129 ++++++++++++++++------------ 13 files changed, 341 insertions(+), 224 deletions(-) (limited to 'wp-inst') diff --git a/wp-inst/wp-admin/admin-functions.php b/wp-inst/wp-admin/admin-functions.php index cb3fcff..e6d0521 100644 --- a/wp-inst/wp-admin/admin-functions.php +++ b/wp-inst/wp-admin/admin-functions.php @@ -301,26 +301,33 @@ function wp_delete_category($cat_ID) { return 1; } -function wp_delete_user($id) { +function wp_delete_user($id, $reassign = 'novalue') { global $wpdb; $id = (int) $id; - - $post_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_author = $id"); - - if ($post_ids) { - $post_ids = implode(',', $post_ids); - - // Delete comments, *backs - $wpdb->query("DELETE FROM $wpdb->comments WHERE comment_post_ID IN ($post_ids)"); - // Clean cats - $wpdb->query("DELETE FROM $wpdb->post2cat WHERE post_id IN ($post_ids)"); - // Clean post_meta - $wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id IN ($post_ids)"); + + if($reassign == 'novalue') { + $post_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_author = $id"); + + if ($post_ids) { + $post_ids = implode(',', $post_ids); + + // Delete comments, *backs + $wpdb->query("DELETE FROM $wpdb->comments WHERE comment_post_ID IN ($post_ids)"); + // Clean cats + $wpdb->query("DELETE FROM $wpdb->post2cat WHERE post_id IN ($post_ids)"); + // Clean post_meta + $wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id IN ($post_ids)"); + // Delete posts + $wpdb->query("DELETE FROM $wpdb->posts WHERE post_author = $id"); + } + // Clean links $wpdb->query("DELETE FROM $wpdb->links WHERE link_owner = $id"); - // Delete posts - $wpdb->query("DELETE FROM $wpdb->posts WHERE post_author = $id"); + } else { + $reassign = (int)$reassign; + $wpdb->query("UPDATE $wpdb->posts SET post_author = {$reassign} WHERE post_author = {$id}"); + $wpdb->query("UPDATE $wpdb->links SET link_owner = {$reassign} WHERE link_owner = {$id}"); } // FINALLY, delete user @@ -996,14 +1003,13 @@ function user_can_access_admin_page() { global $pagenow; global $menu; global $submenu; - global $user_level; $parent = get_admin_page_parent(); foreach ($menu as $menu_array) { //echo "parent array: " . $menu_array[2]; if ($menu_array[2] == $parent) { - if ($user_level < $menu_array[1]) { + if ( !current_user_can($menu_array[1]) ) { return false; } else { break; @@ -1014,7 +1020,7 @@ function user_can_access_admin_page() { if (isset($submenu[$parent])) { foreach ($submenu[$parent] as $submenu_array) { if ($submenu_array[2] == $pagenow) { - if ($user_level < $submenu_array[1]) { + if ( !current_user_can($submenu_array[1]) ) { return false; } else { return true; @@ -1395,4 +1401,4 @@ function documentation_link( $for ) { return; } -?> \ No newline at end of file +?> diff --git a/wp-inst/wp-admin/menu-header.php b/wp-inst/wp-admin/menu-header.php index b661146..6807a9e 100644 --- a/wp-inst/wp-admin/menu-header.php +++ b/wp-inst/wp-admin/menu-header.php @@ -11,7 +11,7 @@ foreach ($menu as $item) { // 0 = name, 1 = user_level, 2 = file if (( strcmp($self, $item[2]) == 0 && empty($parent_file)) || ($parent_file && ($item[2] == $parent_file))) $class = ' class="current"'; - if ($user_level >= $item[1]) { + if ( current_user_can($item[1]) ) { if ( file_exists(ABSPATH . "wp-content/plugins/{$item[2]}") ) echo "\n\t
  • {$item[0]}
  • "; else @@ -31,9 +31,8 @@ if ( isset($submenu["$parent_file"]) ) : - \ No newline at end of file + diff --git a/wp-inst/wp-admin/menu.php b/wp-inst/wp-admin/menu.php index c087250..1f31a28 100644 --- a/wp-inst/wp-admin/menu.php +++ b/wp-inst/wp-admin/menu.php @@ -4,51 +4,49 @@ // Menu item name // The minimum level the user needs to access the item: between 0 and 10 // The URL of the item's file -$menu[0] = array(__('Dashboard'), 0, 'index.php'); -if( $wpblog == 'main' && $user_level == 10) { - $menu[1] = array(__('Site Admin'), 10, 'wpmu-admin.php' ); -} -$menu[5] = array(__('Write'), 1, 'post.php'); -$menu[10] = array(__('Manage'), 1, 'edit.php'); -$menu[20] = array(__('Links'), 5, 'link-manager.php'); -$menu[25] = array(__('Presentation'), 8, 'themes.php'); -$menu[30] = array(__('Plugins'), 8, 'plugins.php'); -$menu[35] = array(__('Users'), 0, 'profile.php'); -$menu[40] = array(__('Options'), 6, 'options-general.php'); +$menu[0] = array(__('Dashboard'), 'read', 'index.php'); +$menu[5] = array(__('Write'), 'edit_posts', 'post.php'); +$menu[10] = array(__('Manage'), 'edit_posts', 'edit.php'); +$menu[20] = array(__('Links'), 'manage_links', 'link-manager.php'); +$menu[25] = array(__('Presentation'), 'switch_themes', 'themes.php'); +$menu[30] = array(__('Plugins'), 'activate_plugins', 'plugins.php'); +$menu[35] = array(__('Users'), 'read', 'profile.php'); +$menu[40] = array(__('Options'), 'manage_options', 'options-general.php'); if ( get_option('use_fileupload') ) - $menu[45] = array(__('Upload'), get_settings('fileupload_minlevel'), 'upload.php'); + $menu[45] = array(__('Upload'), 'upload_files', 'upload.php'); -$submenu[ 'wpmu-admin.php' ][5] = array( 'Blogs', 10, 'wpmu-blogs.php' ); -$submenu[ 'wpmu-admin.php' ][10] = array( 'Users', 10, 'wpmu-users.php' ); -$submenu['post.php'][5] = array(__('Write Post'), 1, 'post.php'); -$submenu['post.php'][10] = array(__('Write Page'), 5, 'page-new.php'); +$submenu['post.php'][5] = array(__('Write Post'), 'edit_posts', 'post.php'); +$submenu['post.php'][10] = array(__('Write Page'), 'edit_pages', 'page-new.php'); -$submenu['edit.php'][5] = array(__('Posts'), 1, 'edit.php'); -$submenu['edit.php'][10] = array(__('Pages'), 5, 'edit-pages.php'); -$submenu['edit.php'][15] = array(__('Categories'), 1, 'categories.php'); -$submenu['edit.php'][20] = array(__('Comments'), 1, 'edit-comments.php'); +$submenu['edit.php'][5] = array(__('Posts'), 'edit_posts', 'edit.php'); +$submenu['edit.php'][10] = array(__('Pages'), 'edit_pages', 'edit-pages.php'); +$submenu['edit.php'][15] = array(__('Categories'), 'manage_categories', 'categories.php'); +$submenu['edit.php'][20] = array(__('Comments'), 'edit_posts', 'edit-comments.php'); $awaiting_mod = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'"); -$submenu['edit.php'][25] = array(sprintf(__("Awaiting Moderation (%s)"), $awaiting_mod), 1, 'moderation.php'); -$submenu['edit.php'][30] = array(__('Files'), 8, 'templates.php'); +$submenu['edit.php'][25] = array(sprintf(__("Awaiting Moderation (%s)"), $awaiting_mod), 'edit_posts', 'moderation.php'); +$submenu['edit.php'][30] = array(__('Files'), 'edit_files', 'templates.php'); -$submenu['link-manager.php'][5] = array(__('Manage Links'), 5, 'link-manager.php'); -$submenu['link-manager.php'][10] = array(__('Add Link'), 5, 'link-add.php'); -$submenu['link-manager.php'][15] = array(__('Link Categories'), 5, 'link-categories.php'); -$submenu['link-manager.php'][20] = array(__('Import Links'), 5, 'link-import.php'); +$submenu['link-manager.php'][5] = array(__('Manage Links'), 'manage_links', 'link-manager.php'); +$submenu['link-manager.php'][10] = array(__('Add Link'), 'manage_links', 'link-add.php'); +$submenu['link-manager.php'][15] = array(__('Link Categories'), 'manage_links', 'link-categories.php'); +$submenu['link-manager.php'][20] = array(__('Import Links'), 'manage_links', 'link-import.php'); -$submenu['profile.php'][5] = array(__('Your Profile'), 0, 'profile.php'); -$submenu['profile.php'][10] = array(__('Authors & Users'), 5, 'users.php'); +$submenu['profile.php'][5] = array(__('Your Profile'), 'read', 'profile.php'); +$submenu['profile.php'][10] = array(__('Authors & Users'), 'edit_users', 'users.php'); -$submenu['options-general.php'][5] = array(__('General'), 6, 'options-general.php'); -$submenu['options-general.php'][10] = array(__('Writing'), 6, 'options-writing.php'); -$submenu['options-general.php'][15] = array(__('Reading'), 6, 'options-reading.php'); -$submenu['options-general.php'][20] = array(__('Discussion'), 6, 'options-discussion.php'); -$submenu['options-general.php'][30] = array(__('Miscellaneous'), 6, 'options-misc.php'); +$submenu['options-general.php'][5] = array(__('General'), 'manage_options', 'options-general.php'); +$submenu['options-general.php'][10] = array(__('Writing'), 'manage_options', 'options-writing.php'); +$submenu['options-general.php'][15] = array(__('Reading'), 'manage_options', 'options-reading.php'); +$submenu['options-general.php'][20] = array(__('Discussion'), 'manage_options', 'options-discussion.php'); +$submenu['options-general.php'][30] = array(__('Miscellaneous'), 'manage_options', 'options-misc.php'); -$submenu['plugins.php'][5] = array(__('Plugins'), 8, 'plugins.php'); +$submenu['plugins.php'][5] = array(__('Plugins'), 'activate_plugins', 'plugins.php'); -$submenu['themes.php'][5] = array(__('Themes'), 8, 'themes.php'); +$submenu['themes.php'][5] = array(__('Themes'), 'switch_themes', 'themes.php'); + +$submenu[ 'wpmu-admin.php' ][5] = array( 'Blogs', 10, 'wpmu-blogs.php' ); +$submenu[ 'wpmu-admin.php' ][10] = array( 'Users', 10, 'wpmu-users.php' ); // Create list of page plugin hook names. foreach ($menu as $menu_page) { diff --git a/wp-inst/wp-admin/options-general.php b/wp-inst/wp-admin/options-general.php index 2a09684..95d5aa1 100644 --- a/wp-inst/wp-admin/options-general.php +++ b/wp-inst/wp-admin/options-general.php @@ -11,7 +11,7 @@ include('admin-header.php');

    - + @@ -40,6 +40,17 @@ include('admin-header.php'); + + + +
    +
    diff --git a/wp-inst/wp-admin/options-writing.php b/wp-inst/wp-admin/options-writing.php index 792e3be..e0f5e92 100644 --- a/wp-inst/wp-admin/options-writing.php +++ b/wp-inst/wp-admin/options-writing.php @@ -11,7 +11,7 @@ include('admin-header.php');

    - + @@ -39,12 +39,6 @@ endforeach; ?> - - - -

    -
    -
    @@ -98,4 +92,4 @@ endforeach; - \ No newline at end of file + diff --git a/wp-inst/wp-admin/profile.php b/wp-inst/wp-admin/profile.php index 4fe4162..66ec010 100644 --- a/wp-inst/wp-admin/profile.php +++ b/wp-inst/wp-admin/profile.php @@ -24,6 +24,38 @@ require_once('../wp-config.php'); auth_redirect(); switch($action) { +case 'IErightclick': + + $bookmarklet_height= 550; + + ?> + + + + + +
    + +

    To have a one-click bookmarklet, just copy and paste this
    into a new text file:

    + +
    +

    Save it as wordpress.reg, and double-click on this file in an Explorer
    + window. Answer Yes to the question, and restart Internet Explorer.

    + That's it, you can now right-click in an IE window and select
    + 'Post to WP' to make the bookmarklet appear. :)

    + +

    +

    + +
    +

    +
    + - - - - - -
    - -

    To have a one-click bookmarklet, just copy and paste this
    into a new text file:

    - -
    -

    Save it as wordpress.reg, and double-click on this file in an Explorer
    - window. Answer Yes to the question, and restart Internet Explorer.

    - That's it, you can now right-click in an IE window and select
    - 'Post to WP' to make the bookmarklet appear. :)

    - -

    -

    - -
    -

    -
    - data; $bookmarklet_height= 440; @@ -159,8 +160,15 @@ if (isset($updated)) { ?> user_login; ?> - - user_level; ?> + + roles as $role => $value) { + if($output != '') $output .= ', '; + $output .= $wp_roles->role_names[$role]; + } + echo $output; + ?> @@ -169,6 +177,25 @@ if (isset($updated)) { ?> echo $posts; ?> + caps) > count($profileuser->roles)): + ?> + + + caps as $cap => $value) { + if(!$wp_roles->is_role($cap)) { + if($output != '') $output .= ', '; + $output .= $value ? $cap : "Denied: {$cap}"; + } + } + echo $output; + ?> + + @@ -229,6 +256,8 @@ if (isset($updated)) { ?> diff --git a/wp-inst/wp-admin/upgrade-functions.php b/wp-inst/wp-admin/upgrade-functions.php index e6ee8c8..3c60393 100644 --- a/wp-inst/wp-admin/upgrade-functions.php +++ b/wp-inst/wp-admin/upgrade-functions.php @@ -759,20 +759,19 @@ function translate_level_to_role($level) { case 10: case 9: case 8: - return 'publisher'; + return 'administrator'; case 7: case 6: case 5: - return 'managing_editor'; + return 'editor'; case 4: case 3: - return 'copy_editor'; case 2: - return 'staff_writer'; + return 'author'; case 1: - return 'freelancer'; + return 'contributor'; case 0: - return 'visitor'; + return 'subscriber'; } } diff --git a/wp-inst/wp-admin/upgrade-schema.php b/wp-inst/wp-admin/upgrade-schema.php index 0388640..b5292ad 100644 --- a/wp-inst/wp-admin/upgrade-schema.php +++ b/wp-inst/wp-admin/upgrade-schema.php @@ -247,11 +247,13 @@ function populate_options() { add_option('html_type', 'text/html'); // 1.5.1 add_option('use_trackback', 0); + // 1.6 + add_option('default_role', 'Inactive'); populate_roles(); // Delete unused options - $unusedoptions = array ('blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'fileupload_allowedusers', 'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference', 'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char', 'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1', 'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5', 'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9', 'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat', 'default_geourl_lon', 'use_default_geourl', 'weblogs_xml_url'); + $unusedoptions = array ('blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'fileupload_allowedusers', 'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference', 'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char', 'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1', 'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5', 'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9', 'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat', 'default_geourl_lon', 'use_default_geourl', 'weblogs_xml_url', 'new_users_can_blog'); foreach ($unusedoptions as $option) : delete_option($option); endforeach; @@ -276,7 +278,7 @@ function populate_roles() { 'edit_pages' => true, 'manage_categories' => true, 'manage_links' => true, - 'upload_images' => true, + 'upload_files' => true, 'manage_options' => true, 'switch_themes' => true, 'edit_themes' => true, diff --git a/wp-inst/wp-admin/user-edit.php b/wp-inst/wp-admin/user-edit.php index adac5a0..20737b2 100644 --- a/wp-inst/wp-admin/user-edit.php +++ b/wp-inst/wp-admin/user-edit.php @@ -22,16 +22,27 @@ for ($i=0; $iuser_level >= $user_level) die( __('You do not have permission to edit this user.') ); +$errors = array(); +if(empty($wp_user)) { + $wp_user = new WP_User($user_id); + $edituser = &$wp_user->data; +} + +if (!current_user_can('edit_users')) $errors['head'] = __('You do not have permission to edit this user.'); /* checking the nickname has been typed */ if (empty($_POST["new_nickname"])) { - die (__("ERROR: please enter your nickname (can be the same as your username)")); - return false; + $errors['nickname'] = __("ERROR: please enter your nickname (can be the same as your username)"); } $new_user_login = wp_specialchars($_POST['new_user_login']); @@ -41,60 +52,61 @@ do_action('check_passwords', array($new_user_login, &$pass1, &$pass2)); if ( '' == $pass1 ) { if ( '' != $pass2 ) - die (__("ERROR: you typed your new password only once. Go back to type it twice.")); + $errors['pass'] = __("ERROR: you typed your new password only once."); $updatepassword = ''; } else { if ( '' == $pass2) - die (__("ERROR: you typed your new password only once. Go back to type it twice.")); + $errors['pass'] = __("ERROR: you typed your new password only once."); if ( $pass1 != $pass2 ) - die (__("ERROR: you typed two different passwords. Go back to correct that.")); + $errors['pass'] = __("ERROR: you typed two different passwords."); $new_pass = $pass1; $updatepassword = "user_pass=MD5('$new_pass'), "; } -$new_firstname = wp_specialchars($_POST['new_firstname']); -$new_lastname = wp_specialchars($_POST['new_lastname']); -$new_nickname = $_POST['new_nickname']; -$new_nicename = sanitize_title($new_nickname, $user_id); -$new_icq = wp_specialchars($_POST['new_icq']); -$new_aim = wp_specialchars($_POST['new_aim']); -$new_msn = wp_specialchars($_POST['new_msn']); -$new_yim = wp_specialchars($_POST['new_yim']); -$new_email = wp_specialchars($_POST['new_email']); -$new_url = wp_specialchars($_POST['new_url']); -$new_url = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $new_url) ? $new_url : 'http://' . $new_url; -$display_name = wp_specialchars($_POST['display_name']); -$new_description = $_POST['new_description']; - -$result = $wpdb->query("UPDATE $wpdb->users SET user_login = '$new_user_login', $updatepassword user_email='$new_email', user_url='$new_url', user_nicename = '$new_nicename', display_name = '$display_name' WHERE ID = '$user_id'"); - -update_usermeta( $user_id, 'first_name', $new_firstname ); -update_usermeta( $user_id, 'last_name', $new_lastname ); -update_usermeta( $user_id, 'nickname', $new_nickname ); -update_usermeta( $user_id, 'description', $new_description ); -update_usermeta( $user_id, 'icq', $new_icq ); -update_usermeta( $user_id, 'aim', $new_aim ); -update_usermeta( $user_id, 'msn', $new_msn ); -update_usermeta( $user_id, 'yim', $new_yim ); - -header("Location: user-edit.php?user_id=$user_id&updated=true"); - -break; - -case 'switchposts': - -check_admin_referer(); - -/* TODO: Switch all posts from one user to another user */ - -break; +$edituser->user_login = wp_specialchars($_POST['new_user_login']); +$edituser->user_nicename = sanitize_title($new_nickname, $user_id); +$edituser->user_email = wp_specialchars($_POST['new_email']); +$edituser->user_url = wp_specialchars($_POST['new_url']); +$edituser->user_url = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $edituser->user_url) ? $edituser->user_url : 'http://' . $edituser->user_url; +$edituser->display_name = wp_specialchars($_POST['display_name']); + +$edituser->first_name = wp_specialchars($_POST['new_firstname']); +$edituser->last_name = wp_specialchars($_POST['new_lastname']); +$edituser->nickname = $_POST['new_nickname']; +$edituser->icq = wp_specialchars($_POST['new_icq']); +$edituser->aim = wp_specialchars($_POST['new_aim']); +$edituser->msn = wp_specialchars($_POST['new_msn']); +$edituser->yim = wp_specialchars($_POST['new_yim']); +$edituser->description = $_POST['new_description']; + +if(count($errors) == 0) { + $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'"); + + update_usermeta( $user_id, 'first_name', $edituser->firstname ); + update_usermeta( $user_id, 'last_name', $edituser->lastname ); + update_usermeta( $user_id, 'nickname', $edituser->nickname ); + update_usermeta( $user_id, 'description', $edituser->description ); + update_usermeta( $user_id, 'icq', $edituser->icq ); + update_usermeta( $user_id, 'aim', $edituser->aim ); + update_usermeta( $user_id, 'msn', $edituser->msn ); + update_usermeta( $user_id, 'yim', $edituser->yim ); + + $wp_user->set_role($_POST['new_role']); + + header("Location: user-edit.php?user_id=$user_id&updated=true"); +} else { + $wp_user->roles = array($_POST['new_role'] => true); +} default: include ('admin-header.php'); -$edituser = get_userdata($user_id); +if(empty($wp_user)) { + $wp_user = new WP_User($user_id); + $edituser = &$wp_user->data; +} -if ($edituser->user_level >= $user_level) die( __('You do not have permission to edit this user.') ); +if (!current_user_can('edit_users')) $errors['head'] = __('You do not have permission to edit this user.'); ?> @@ -102,6 +114,15 @@ if ($edituser->user_level >= $user_level) die( __('You do not have permission to

    + +
    +
      + $error"; + ?> +
    +
    +

    @@ -112,14 +133,19 @@ if ($edituser->user_level >= $user_level) die( __('You do not have permission to - - user_level; ?> + + ID); ?> -user_registered ) { ?> +user_registered) && ('0000-00-00 00:00:00' != $edituser->user_registered) ) { ?> user_registered, 0, 11); ?> @@ -135,7 +161,7 @@ if ($edituser->user_level >= $user_level) die( __('You do not have permission to - + @@ -189,6 +215,8 @@ if ($edituser->user_level >= $user_level) die( __('You do not have permission to diff --git a/wp-inst/wp-admin/wp-admin.css b/wp-inst/wp-admin/wp-admin.css index d2e47c1..59b776d 100644 --- a/wp-inst/wp-admin/wp-admin.css +++ b/wp-inst/wp-admin/wp-admin.css @@ -246,6 +246,13 @@ textarea, input, select { padding: 0 1em 0 1em; } +.error { + background: #FFEFF7; + border: 1px solid #c69; + margin: 1em 5% 10px; + padding: 0 1em 0 1em; +} + .wrap { background: #fff; border: 1px solid #ccc; @@ -679,4 +686,4 @@ a.dbx-toggle-hilite-closed, a.dbx-toggle-hilite-closed:visited { -moz-opacity: 0.8; -khtml-opacity: 0.8; filter: alpha(opacity=80); -} \ No newline at end of file +} diff --git a/wp-inst/wp-includes/functions.php b/wp-inst/wp-includes/functions.php index af027d7..7afec8c 100644 --- a/wp-inst/wp-includes/functions.php +++ b/wp-inst/wp-includes/functions.php @@ -1219,10 +1219,10 @@ function update_post_caches(&$posts) { function update_category_cache() { global $cache_categories, $wpdb; if($dogs = $wpdb->get_results("SELECT * FROM $wpdb->categories")): - foreach ($dogs as $catt) - $cache_categories[$catt->cat_ID] = $catt; + foreach ($dogs as $catt) + $cache_categories[$catt->cat_ID] = $catt; return true; - else: + else : return false; endif; } diff --git a/wp-inst/wp-includes/pluggable-functions.php b/wp-inst/wp-includes/pluggable-functions.php index 4d25ffd..5ca2328 100644 --- a/wp-inst/wp-includes/pluggable-functions.php +++ b/wp-inst/wp-includes/pluggable-functions.php @@ -31,7 +31,7 @@ function get_userdata( $user_id ) { $user_id = (int) $user_id; if ( $user_id == 0 ) return false; - + if ( isset( $cache_userdata[$user_id] ) ) return $cache_userdata[$user_id]; @@ -52,13 +52,42 @@ function get_userdata( $user_id ) { } $cache_userdata[$user_id] = $user; - $cache_userdata[$cache_userdata[$userid]->user_login] =& $cache_userdata[$user_id]; return $cache_userdata[$user_id]; } endif; +if ( !function_exists('update_user_cache') ) : +function update_user_cache() { + global $cache_userdata, $wpdb; + $level_key = $wpdb->prefix . 'user_level'; + $user_ids = $wpdb->get_col("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'"); + $user_ids = join(',', $user_ids); + $query = apply_filters('user_cache_query', "SELECT * FROM $wpdb->users WHERE ID IN ($user_ids)"); + if ( $users = $wpdb->get_results( $query ) ) : + foreach ($users as $user) : + $metavalues = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user->ID'"); + foreach ( $metavalues as $meta ) { + @ $value = unserialize($meta->meta_value); + if ($value === FALSE) + $value = $meta->meta_value; + $user->{$meta->meta_key} = $value; + // We need to set user_level from meta, not row + if ( $wpdb->prefix . 'user_level' == $meta->meta_key ) + $user->user_level = $meta->meta_value; + } + + $cache_userdata[$user->ID] = $user; + $cache_userdata[$user->user_login] =& $cache_userdata[$user->ID]; + endforeach; + return true; + else : + return false; + endif; +} +endif; + if ( !function_exists('get_userdatabylogin') ) : function get_userdatabylogin($user_login) { global $cache_userdata, $wpdb; @@ -279,4 +308,4 @@ function wp_notify_moderator($comment_id) { } endif; -?> \ No newline at end of file +?> diff --git a/wp-inst/wp-register.php b/wp-inst/wp-register.php index 4a3e0d3..327c7fc 100644 --- a/wp-inst/wp-register.php +++ b/wp-inst/wp-register.php @@ -14,47 +14,52 @@ case 'register': $user_login = sanitize_user( $_POST['user_login'] ); $user_email = $_POST['user_email']; + + $errors = array(); if ( $user_login == '' ) - die (__('ERROR: Please enter a username.')); + $errors['user_login'] = __('ERROR: Please enter a username.'); /* checking e-mail address */ if ($user_email == '') { - die (__('ERROR: Please type your e-mail address.')); + $errors['user_email'] = __('ERROR: Please type your e-mail address.'); } else if (!is_email($user_email)) { - die (__('ERROR: The email address isn’t correct.')); + $errors['user_email'] = __('ERROR: The email address isn’t correct.'); } - if ( username_exists( $user_login ) ) - die (__('ERROR: This username is already registered, please choose another one.')); + if ( username_exists( $user_login ) ) + $errors['user_login'] = __('ERROR: This username is already registered, please choose another one.'); - $user_level = get_settings('new_users_can_blog'); $password = substr( md5( uniqid( microtime() ) ), 0, 7); - $user_id = create_user( $user_login, $password, $user_email, $user_level ); - - do_action('user_register', $user_id); - + $user_id = create_user( $user_login, $password, $user_email, 0 ); if ( !$user_id ) { - die (sprintf(__('ERROR: Couldn’t register you... please contact the webmaster !'), get_settings('admin_email'))); + $errors['user_id'] = sprintf(__('ERROR: Couldn’t register you... please contact the webmaster !'), get_settings('admin_email')); } - $stars = ''; - for ($i = 0; $i < strlen($pass1); $i = $i + 1) { - $stars .= '*'; - } + if(count($errors) == 0) { + $user = new WP_User($user_id); + $user->set_role(get_settings('default_role')); - $message = sprintf(__('Username: %s'), $user_login) . "\r\n"; - $message .= sprintf(__('Password: %s'), $password) . "\r\n"; - $message .= get_settings('siteurl') . "/wp-login.php\r\n"; + do_action('user_register', $user_id); - wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_settings('blogname')), $message); - - $message = sprintf(__('New user registration on your blog %s:'), get_settings('blogname')) . "\r\n\r\n"; - $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; - $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; - - @wp_mail(get_settings('admin_email'), sprintf(__('[%s] New User Registration'), get_settings('blogname')), $message); + + $stars = ''; + for ($i = 0; $i < strlen($pass1); $i = $i + 1) { + $stars .= '*'; + } + + $message = sprintf(__('Username: %s'), $user_login) . "\r\n"; + $message .= sprintf(__('Password: %s'), $password) . "\r\n"; + $message .= get_settings('siteurl') . "/wp-login.php\r\n"; + + wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_settings('blogname')), $message); + + $message = sprintf(__('New user registration on your blog %s:'), get_settings('blogname')) . "\r\n\r\n"; + $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; + $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; + + @wp_mail(get_settings('admin_email'), sprintf(__('[%s] New User Registration'), get_settings('blogname')), $message); ?> @@ -81,34 +86,9 @@ case 'register': - - - - - WordPress » <?php _e('Registration Currently Disabled') ?> - - - - - - -
    -

    -


    - -

    -
    - - - - -

    WordPress

    - + +
    +
      + $error"; + ?> +
    +
    +

    -

    -


    +

    +


    A password will be emailed to you.

    @@ -150,5 +138,32 @@ default: + + + + WordPress » <?php _e('Registration Currently Disabled') ?> + + + + + + +
    +

    +


    + +

    +
    + + + + + \ No newline at end of file +?> -- cgit