summaryrefslogtreecommitdiffstats
path: root/wp-inst/wp-admin
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-09-21 08:21:19 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-09-21 08:21:19 +0000
commit64bdfd85b39f9487cd474e7786ee5ca7e5ee32cc (patch)
treeea02137931d66b94f371012625bca4a0e139bcb4 /wp-inst/wp-admin
parent025638bbd3cbc2f189d7150549a1425b590bcfa8 (diff)
downloadwordpress-mu-64bdfd85b39f9487cd474e7786ee5ca7e5ee32cc.tar.gz
wordpress-mu-64bdfd85b39f9487cd474e7786ee5ca7e5ee32cc.tar.xz
wordpress-mu-64bdfd85b39f9487cd474e7786ee5ca7e5ee32cc.zip
WP Merge
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@349 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-inst/wp-admin')
-rw-r--r--wp-inst/wp-admin/admin-db.php57
-rw-r--r--wp-inst/wp-admin/edit-form-advanced.php2
-rw-r--r--wp-inst/wp-admin/edit-page-form.php2
-rw-r--r--wp-inst/wp-admin/upgrade-schema.php180
4 files changed, 113 insertions, 128 deletions
diff --git a/wp-inst/wp-admin/admin-db.php b/wp-inst/wp-admin/admin-db.php
index e6c8584..7ef41b0 100644
--- a/wp-inst/wp-admin/admin-db.php
+++ b/wp-inst/wp-admin/admin-db.php
@@ -12,34 +12,27 @@ function get_others_drafts( $user_id ) {
global $wpdb;
$user = get_userdata( $user_id );
$level_key = $wpdb->prefix . 'user_level';
- if ( 1 < $user->user_level ) {
- $editable = get_editable_user_ids( $user_id );
+
+ $editable = get_editable_user_ids( $user_id );
- if( !$editable ) {
- $other_drafts = '';
- } else {
- $editable = join(',', $editable);
- $other_drafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'draft' AND post_author IN ($editable) AND post_author != '$user_id' ");
- }
+ if( !$editable ) {
+ $other_drafts = '';
} else {
- $other_drafts = false;
+ $editable = join(',', $editable);
+ $other_drafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'draft' AND post_author IN ($editable) AND post_author != '$user_id' ");
}
+
return apply_filters('get_others_drafts', $other_drafts);
}
function get_editable_authors( $user_id ) {
global $wpdb;
- $user = get_userdata( $user_id );
- $level_key = $wpdb->prefix . 'user_level';
-
- if ( 7 > $user->user_level ) // TODO: ROLE SYSTEM
- return false;
$editable = get_editable_user_ids( $user_id );
- if( !$editable )
- return false;
- else {
+ if( !$editable ) {
+ return false;
+ } else {
$editable = join(',', $editable);
$authors = $wpdb->get_results( "SELECT * FROM $wpdb->users WHERE ID IN ($editable)" );
}
@@ -49,24 +42,24 @@ function get_editable_authors( $user_id ) {
function get_editable_user_ids( $user_id, $exclude_zeros = true ) {
global $wpdb;
- $user = get_userdata( $user_id );
+
+ $user = new WP_User( $user_id );
+
+ if ( ! $user->has_cap('edit_others_posts') ) {
+ echo "no cap<br/>";
+ if ( $user->has_cap('edit_posts') || $exclude_zeros == false )
+ return array($user->id);
+ else
+ return false;
+ }
+
$level_key = $wpdb->prefix . 'user_level';
- $query = "SELECT * FROM $wpdb->usermeta WHERE meta_key = '$level_key'";
+ $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'";
if ( $exclude_zeros )
$query .= " AND meta_value != '0'";
- $possible = $wpdb->get_results( $query );
-
- if ( !$possible )
- return false;
-
- $user_ids = array();
- foreach ( $possible as $mark )
- if ( intval($mark->meta_value) <= $user->user_level )
- $user_ids[] = $mark->user_id;
- if ( empty( $user_ids ) )
- return false;
- return $user_ids;
+
+ return $wpdb->get_col( $query );
}
function get_author_user_ids() {
@@ -87,4 +80,4 @@ function get_nonauthor_user_ids() {
return $wpdb->get_col( $query );
}
-?> \ No newline at end of file
+?>
diff --git a/wp-inst/wp-admin/edit-form-advanced.php b/wp-inst/wp-admin/edit-form-advanced.php
index 3524c53..8818da0 100644
--- a/wp-inst/wp-admin/edit-form-advanced.php
+++ b/wp-inst/wp-admin/edit-form-advanced.php
@@ -105,7 +105,7 @@ addLoadEvent(focusit);
</fieldset>
<?php endif; ?>
-<?php if ( $authors = get_editable_authors( $current_user->ID ) ) : // TODO: ROLE SYSTEM ?>
+<?php if ( $authors = get_editable_authors( $current_user->id ) ) : // TODO: ROLE SYSTEM ?>
<fieldset id="authordiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Post author'); ?>:</h3>
<div class="dbx-content">
diff --git a/wp-inst/wp-admin/edit-page-form.php b/wp-inst/wp-admin/edit-page-form.php
index 96b8d69..23d19e2 100644
--- a/wp-inst/wp-admin/edit-page-form.php
+++ b/wp-inst/wp-admin/edit-page-form.php
@@ -83,7 +83,7 @@ addLoadEvent(focusit);
<div class="dbx-content"><input name="post_name" type="text" size="13" id="post_name" value="<?php echo $post->post_name ?>" /></div>
</fieldset>
-<?php if ( $authors = get_editable_authors( $current_user->ID ) ) : // TODO: ROLE SYSTEM ?>
+<?php if ( $authors = get_editable_authors( $current_user->id ) ) : // TODO: ROLE SYSTEM ?>
<fieldset id="authordiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Post author'); ?>:</h3>
<div class="dbx-content">
diff --git a/wp-inst/wp-admin/upgrade-schema.php b/wp-inst/wp-admin/upgrade-schema.php
index da4565b..6a171a5 100644
--- a/wp-inst/wp-admin/upgrade-schema.php
+++ b/wp-inst/wp-admin/upgrade-schema.php
@@ -134,7 +134,7 @@ CREATE TABLE $wpdb->users (
user_status int(11) NOT NULL default '0',
display_name varchar(250) NOT NULL default '',
PRIMARY KEY (ID),
- KEY user_login (user_login)
+ KEY user_login_key (user_login)
);
CREATE TABLE $wpdb->usermeta (
umeta_id bigint(20) NOT NULL auto_increment,
@@ -282,99 +282,91 @@ function populate_options() {
}
function populate_roles() {
- global $table_prefix;
+ global $wp_roles;
- $roles = array ('administrator' =>
- array('name' => __('Administrator'),
- 'capabilities' => array(
- 'edit_posts' => true,
- 'edit_others_posts' => true,
- 'edit_published_posts' => true,
- 'publish_posts' => true,
- 'edit_pages' => true,
- 'moderate_comments' => true,
- 'manage_categories' => true,
- 'manage_links' => true,
- 'upload_files' => true,
- 'manage_options' => true,
- 'switch_themes' => true,
- 'edit_themes' => true,
- 'activate_plugins' => true,
- 'edit_plugins' => true,
- 'edit_users' => true,
- 'edit_files' => true,
- 'unfiltered_html' => true,
- 'import' => true,
- 'read' => true,
- 'level_10' => true,
- 'level_9' => true,
- 'level_8' => true,
- 'level_7' => true,
- 'level_6' => true,
- 'level_5' => true,
- 'level_4' => true,
- 'level_3' => true,
- 'level_2' => true,
- 'level_1' => true,
- 'level_0' => true
- )),
-
- 'editor' =>
- array('name' => __('Editor'),
- 'capabilities' => array(
- 'edit_posts' => true,
- 'edit_others_posts' => true,
- 'edit_published_posts' => true,
- 'publish_posts' => true,
- 'edit_pages' => true,
- 'moderate_comments' => true,
- 'manage_categories' => true,
- 'manage_links' => true,
- 'upload_files' => true,
- 'unfiltered_html' => true,
- 'read' => true,
- 'level_7' => true,
- 'level_6' => true,
- 'level_5' => true,
- 'level_4' => true,
- 'level_3' => true,
- 'level_2' => true,
- 'level_1' => true,
- 'level_0' => true
- )),
-
- 'author' =>
- array('name' => __('Author'),
- 'capabilities' => array(
- 'edit_posts' => true,
- 'publish_posts' => true,
- 'upload_files' => true,
- 'read' => true,
- 'level_2' => true,
- 'level_1' => true,
- 'level_0' => true
- )),
-
- 'contributor' =>
- array('name' => __('Contributor'),
- 'capabilities' => array(
- 'edit_posts' => true,
- 'read' => true,
- 'level_1' => true,
- 'level_0' => true
- )),
-
- 'subscriber' =>
- array('name' => __('Subscriber'),
- 'capabilities' => array(
- 'read' => true,
- 'level_0' => true
- ))
- );
- // FIXME: Temporary code to reset roles and caps if flag is set.
- if ( defined('RESET_CAPS') )
- update_option($table_prefix . 'user_roles', $roles);
- else
- add_option($table_prefix . 'user_roles', $roles);
+ // Add roles
+ $wp_roles->add_role('administrator', __('Administrator'));
+ $wp_roles->add_role('editor', __('Editor'));
+ $wp_roles->add_role('author', __('Author'));
+ $wp_roles->add_role('contributor', __('Contributor'));
+ $wp_roles->add_role('subscriber', __('Subscriber'));
+
+ // Add caps for Administrator role
+ $role = $wp_roles->get_role('administrator');
+ $role->add_cap('switch_themes');
+ $role->add_cap('edit_themes');
+ $role->add_cap('activate_plugins');
+ $role->add_cap('edit_plugins');
+ $role->add_cap('edit_users');
+ $role->add_cap('edit_files');
+ $role->add_cap('manage_options');
+ $role->add_cap('moderate_comments');
+ $role->add_cap('manage_categories');
+ $role->add_cap('manage_links');
+ $role->add_cap('upload_files');
+ $role->add_cap('import');
+ $role->add_cap('unfiltered_html');
+ $role->add_cap('edit_posts');
+ $role->add_cap('edit_others_posts');
+ $role->add_cap('edit_published_posts');
+ $role->add_cap('publish_posts');
+ $role->add_cap('edit_pages');
+ $role->add_cap('read');
+ $role->add_cap('level_10');
+ $role->add_cap('level_9');
+ $role->add_cap('level_8');
+ $role->add_cap('level_7');
+ $role->add_cap('level_6');
+ $role->add_cap('level_6');
+ $role->add_cap('level_4');
+ $role->add_cap('level_3');
+ $role->add_cap('level_2');
+ $role->add_cap('level_1');
+ $role->add_cap('level_0');
+
+ // Add caps for Editor role
+ $role = $wp_roles->get_role('editor');
+ $role->add_cap('moderate_comments');
+ $role->add_cap('manage_categories');
+ $role->add_cap('manage_links');
+ $role->add_cap('upload_files');
+ $role->add_cap('unfiltered_html');
+ $role->add_cap('edit_posts');
+ $role->add_cap('edit_others_posts');
+ $role->add_cap('edit_published_posts');
+ $role->add_cap('publish_posts');
+ $role->add_cap('edit_pages');
+ $role->add_cap('read');
+ $role->add_cap('level_7');
+ $role->add_cap('level_6');
+ $role->add_cap('level_6');
+ $role->add_cap('level_4');
+ $role->add_cap('level_3');
+ $role->add_cap('level_2');
+ $role->add_cap('level_1');
+ $role->add_cap('level_0');
+
+ // Add caps for Author role
+ $role = $wp_roles->get_role('author');
+ $role->add_cap('upload_files');
+ $role->add_cap('edit_posts');
+ $role->add_cap('publish_posts');
+ $role->add_cap('read');
+ $role->add_cap('level_2');
+ $role->add_cap('level_1');
+ $role->add_cap('level_0');
+
+ // Add caps for Contributor role
+ $role = $wp_roles->get_role('contributor');
+ $role->add_cap('edit_posts');
+ $role->add_cap('read');
+ $role->add_cap('level_1');
+ $role->add_cap('level_0');
+
+ // Add caps for Subscriber role
+ $role = $wp_roles->get_role('subscriber');
+ $role->add_cap('read');
+ $role->add_cap('level_0');
}
+
?>