summaryrefslogtreecommitdiffstats
path: root/wp-inst
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-08-16 16:31:36 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2005-08-16 16:31:36 +0000
commit4f514fd08e9359cd18b6fcd765d6818cd0dc76b8 (patch)
treea0cc1fe1b450d0c2e6b928149623638f1499614b /wp-inst
parent8c4f6c868e99cd25778e8f905c088d0b8d138e99 (diff)
downloadwordpress-mu-4f514fd08e9359cd18b6fcd765d6818cd0dc76b8.tar.gz
wordpress-mu-4f514fd08e9359cd18b6fcd765d6818cd0dc76b8.tar.xz
wordpress-mu-4f514fd08e9359cd18b6fcd765d6818cd0dc76b8.zip
Edit roles of blog users.
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@198 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-inst')
-rw-r--r--wp-inst/wp-admin/wpmu-blogs.php31
-rw-r--r--wp-inst/wp-admin/wpmu-edit.php18
2 files changed, 45 insertions, 4 deletions
diff --git a/wp-inst/wp-admin/wpmu-blogs.php b/wp-inst/wp-admin/wpmu-blogs.php
index 6d79220..93a064d 100644
--- a/wp-inst/wp-admin/wpmu-blogs.php
+++ b/wp-inst/wp-admin/wpmu-blogs.php
@@ -150,15 +150,29 @@ switch( $_GET[ 'action' ] ) {
print "<h3>Blog Users</h3>";
if( is_array( $blogusers ) ) {
print "<table width='100%'><caption>Current Users</caption>";
- print "<tr><th>User</th><th>Remove</th><th></th></tr>";
+ print "<tr><th>User</th><th>Role</th><th>Remove</th><th></th></tr>";
reset( $blogusers );
while( list( $key, $val ) = each( $blogusers ) )
{
+ $t = @unserialize( $val->meta_value );
+ if( is_array( $t ) ) {
+ reset( $t );
+ $existing_role = key( $t );
+ }
print "<tr><td>" . $val->user_login . "</td>";
if( $val->user_id != $current_user->data->ID ) {
+ ?>
+ <td><select name="role[<?php echo $val->user_id ?>]" id="new_role"><?php
+ foreach($wp_roles->role_names as $role => $name) {
+ $selected = '';
+ if( $role == $existing_role )
+ $selected = 'selected="selected"';
+ echo "<option {$selected} value=\"{$role}\">{$name}</option>";
+ }
+ ?></select></td> <?php
print "<td><input title='Click to remove user' type='checkbox' name='blogusers[" . $val->user_id . "]'></td>";
} else {
- print "<td><b>N/A</b></td>";
+ print "<td><b>N/A</b></td><td><b>N/A</b></td>";
}
print "<td><a href='user-edit.php?user_id=" . $val->user_id . "'>Edit</td></tr>";
}
@@ -168,8 +182,19 @@ switch( $_GET[ 'action' ] ) {
?>
<p>As you type WordPress will offer you a choice of usernames.<br /> Click them to select and hit <em>Update Options</em> to add the user.</p>
<table>
-<tr><td>User&nbsp;Login: </td><td><input type="text" name="newuser" id="newuser"></td><td><a href="javascript:doSearch();">Search</a></td></tr>
+<tr><th scope="row">User&nbsp;Login: </th><td><input type="text" name="newuser" id="newuser"></td><td><a href="javascript:doSearch();">Search</a></td></tr>
<tr><td></td><td colspan='2'><div style='display:none; height: 60px; width: 100px; overflow: auto; border: 1px solid #ccc; background: #eee; margin: 5px; padding: 5px;' id="searchresults"><?php _e( 'Search Results' ) ?></div></td> </tr>
+ <tr>
+ <th scope="row"><?php _e('Role:') ?></th>
+ <td><select name="new_role" id="new_role"><?php
+ foreach($wp_roles->role_names as $role => $name) {
+ $selected = '';
+ if( $role == 'subscriber' )
+ $selected = 'selected="selected"';
+ echo "<option {$selected} value=\"{$role}\">{$name}</option>";
+ }
+ ?></select></td>
+ </tr>
</table>
<br />
<p class="submit">
diff --git a/wp-inst/wp-admin/wpmu-edit.php b/wp-inst/wp-admin/wpmu-edit.php
index 544be37..cf9e650 100644
--- a/wp-inst/wp-admin/wpmu-edit.php
+++ b/wp-inst/wp-admin/wpmu-edit.php
@@ -110,6 +110,22 @@ switch( $_GET[ 'action' ] ) {
$wpdb->query( $query );
}
+ // user roles
+ if( is_array( $_POST[ 'role' ] ) == true ) {
+ $newroles = $_POST[ 'role' ];
+ reset( $newroles );
+ while( list( $userid, $role ) = each( $newroles ) ) {
+ $role_len = strlen( $role );
+ $existing_role = $wpdb->get_var( "SELECT meta_value FROM $wpdb->usermeta WHERE user_id = '$userid' AND meta_key = '" . $wpmuBaseTablePrefix . $id . "_capabilities'" );
+ if( false == $existing_role ) {
+ $wpdb->query( "INSERT INTO " . $wpdb->usermeta . "( `umeta_id` , `user_id` , `meta_key` , `meta_value` ) VALUES ( NULL, '$userid', '" . $wpmuBaseTablePrefix . $id . "_capabilities', 'a:1:{s:" . strlen( $role ) . ":\"" . $role . "\";b:1;}')" );
+ } elseif( $existing_role != "a:1:{s:" . strlen( $role ) . ":\"" . $role . "\";b:1;}" ) {
+ $wpdb->query( "UPDATE $wpdb->usermeta SET meta_value = 'a:1:{s:" . strlen( $role ) . ":\"" . $role . "\";b:1;}' WHERE user_id = '$userid' AND meta_key = '" . $wpmuBaseTablePrefix . $id . "_capabilities'" );
+ }
+
+ }
+ }
+
// remove user
if( is_array( $_POST[ 'blogusers' ] ) ) {
reset( $_POST[ 'blogusers' ] );
@@ -126,7 +142,7 @@ switch( $_GET[ 'action' ] ) {
if( $userid ) {
$user = $wpdb->get_var( "SELECT user_id FROM " . $wpdb->usermeta . " WHERE user_id='$userid' AND meta_key='wp_" . $id . "_capabilities'" );
if( $user == false )
- $wpdb->query( "INSERT INTO " . $wpdb->usermeta . "( `umeta_id` , `user_id` , `meta_key` , `meta_value` ) VALUES ( NULL, '$userid', 'wp_" . $id . "_capabilities', 'a:1:{s:8:\"inactive\";b:1;}')" );
+ $wpdb->query( "INSERT INTO " . $wpdb->usermeta . "( `umeta_id` , `user_id` , `meta_key` , `meta_value` ) VALUES ( NULL, '$userid', '" . $wpmuBaseTablePrefix . $id . "_capabilities', 'a:1:{s:" . strlen( $_POST[ 'new_role' ] ) . ":\"" . $_POST[ 'new_role' ] . "\";b:1;}')" );
}
}
header( "Location: wpmu-blogs.php?action=editblog&id=".$id."&updated=true" );