Last updated March 27, 2011. Created by scarer on September 3, 2010.
Edited by silverwing. Log in to edit this page.
I needed to display a form for a user of a certain role to add and delete users of a certain role. Hopefully this code can help someone else.
<?php
/* only display if user role is web owner */
$rid = '';
global $user;
$cur_uid = $user->uid;
$result_user = db_query("SELECT u.uid, ur.rid FROM {users} u JOIN {users_roles} ur ON u.uid = ur.uid WHERE u.uid = $cur_uid AND ur.rid = '3'");
while ($row_user = db_fetch_object($result_user))
{
$rid = $row_user->rid;
}
if ($rid != '')
{
displayform();
}
else
{
drupal_set_message('You do not have permission to access this content', 'warning');
}
function displayform()
{
/* Database queries */
$wausers = array();
$result = db_query("SELECT u.uid, u.name from {users} u JOIN {users_roles} ur ON u.uid = ur.uid WHERE ur.rid = '4' ORDER BY u.name ASC");
while($row = db_fetch_object($result))
{
$wausers[$row->uid] = $row->name;
}
$allusers = array();
$result_two = db_query("SELECT u.uid, u.name from {users} u ORDER BY u.name ASC");
while($row_two = db_fetch_object($result_two))
{
$allusers[$row_two->uid] = $row_two->name;
}
/* Checking form submissions */
foreach($wausers as $key => $value)
{
if($_POST[$key])
{
//remove user from webauthor role
db_query("DELETE FROM {users_roles} WHERE uid = '$key' AND rid = '4'");
drupal_set_message($value . ' has been removed from web author role.');
}
}
if ($_POST['webauthor'])
{
foreach($allusers as $key => $value)
{
if ($_POST['webauthor'] == $key)
{
//add user to webauthor role
db_query("INSERT INTO {users_roles} (uid, rid) VALUES ('$key', '4')");
drupal_set_message($value . ' has been added to web author role.');
}
}
}
/* HTML Output */
/* only print if form has not been submitted */
if(!$_POST)
{
foreach($wausers as $key => $value)
{
$output.= '<tr><td><a href="user/' . $key . '">' . $value . '</a></td><td><input type="checkbox" name="' . $key .'" value="uid"></td></tr>';
}
echo '<h2>Remove Users</h2><form name="removewebauthors" action="" method="POST"><table><th>Name
</th><th>Delete</th>' . $output . '</table><input type="submit" value="delete"></form>';
$output_two .= '<option value="">-select user-</option>';
foreach($allusers as $key => $value)
{
$output_two.= '<option value="' . $key . '">' . $value . '</option>';
}
echo '<br><h2>Add Users</h2><form name="addwebauthors" action="" method="POST">
<select name="webauthor">' . $output_two . '</select><br><br><input type="submit"
value="submit"></form>';
}
}
?>