summaryrefslogtreecommitdiffstats
path: root/wp-inst/wp-admin/admin-db.php
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-07-12 11:27:54 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-07-12 11:27:54 +0000
commit4f3bce79bfb5851cef9e7bc655c91bb3093cc401 (patch)
tree10a0991fddeb0e075d7fa46e2b40e5dbc64d1e88 /wp-inst/wp-admin/admin-db.php
downloadwordpress-mu-4f3bce79bfb5851cef9e7bc655c91bb3093cc401.tar.gz
wordpress-mu-4f3bce79bfb5851cef9e7bc655c91bb3093cc401.tar.xz
wordpress-mu-4f3bce79bfb5851cef9e7bc655c91bb3093cc401.zip
Initial Import
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@1 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-inst/wp-admin/admin-db.php')
-rw-r--r--wp-inst/wp-admin/admin-db.php90
1 files changed, 90 insertions, 0 deletions
diff --git a/wp-inst/wp-admin/admin-db.php b/wp-inst/wp-admin/admin-db.php
new file mode 100644
index 0000000..b657edd
--- /dev/null
+++ b/wp-inst/wp-admin/admin-db.php
@@ -0,0 +1,90 @@
+<?php
+
+function get_users_drafts( $user_id ) {
+ global $wpdb;
+ $user_id = (int) $user_id;
+ $query = "SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'draft' AND post_author = $user_id ORDER BY ID DESC";
+ $query = apply_filters('get_users_drafts', $query);
+ return $wpdb->get_results( $query );
+}
+
+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 );
+
+ 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' ");
+ }
+ } else {
+ $other_drafts = false;
+ }
+ 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 {
+ $editable = join(',', $editable);
+ $authors = $wpdb->get_results( "SELECT * FROM $wpdb->users WHERE ID IN ($editable)" );
+ }
+
+ return apply_filters('get_editable_authors', $authors);
+}
+
+function get_editable_user_ids( $user_id, $exclude_zeros = true ) {
+ global $wpdb;
+ $user = get_userdata( $user_id );
+ $level_key = $wpdb->prefix . 'user_level';
+
+ $query = "SELECT * 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;
+}
+
+function get_author_user_ids() {
+ global $wpdb;
+ $level_key = $wpdb->prefix . 'user_level';
+
+ $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value != '0'";
+
+ return $wpdb->get_col( $query );
+}
+
+function get_nonauthor_user_ids() {
+ global $wpdb;
+ $level_key = $wpdb->prefix . 'user_level';
+
+ $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value = '0'";
+
+ return $wpdb->get_col( $query );
+}
+
+?> \ No newline at end of file