PDA

View Full Version : how to move user from all groups to one other


ManuelW
01-04-2011, 04:03 PM
Hey Guys,

i'm using vB 3.8.* and the self_delete_mod and it works so far.
But i won't delete the User. I will remove them from all groups an set to another group.

I have the group id "24" and the user id "$sd_info['userid']".

the original code to delete the user

$sd_userdm =& datamanager_init('User', $vbulletin, ERRTYPE_SILENT);
$sd_userdm->set_existing($sd_info);
$sd_userdm->delete();
unset($sd_userdm);


but i can't find some helping code to replace the delete command with move to a group.

i tryed to create a own code, but i dont know if it works. maybe it's correct :-/

$vbulletin->$db->query_write("UPDATE " .TABLE_PREFIX. "user SET usergroupid="24" where userid=".$sd_info['userid']);


thanks for help
Manu

BirdOPrey5
01-04-2011, 07:25 PM
In the promotion.php cron file the code that changes a usergroup is as follows:

$vbulletin->db->query_write("
UPDATE " . TABLE_PREFIX . "user
SET displaygroupid = IF(displaygroupid = usergroupid, $joinusergroupid, displaygroupid),
usergroupid = $joinusergroupid,

infractiongroupid =
" . (!empty($sql_id["$joinusergroupid"]) ? "
CASE
" . implode(" \r\n", $sql_id["$joinusergroupid"]) . "
ELSE 0
END" : "0") . "

,infractiongroupids =
" . (!empty($sql["$joinusergroupid"]) ? "
CASE
" . implode(" \r\n", $sql["$joinusergroupid"]) . "
ELSE ''
END" : "''") . "

WHERE userid IN (0$ids)
");


I'd suggest adapting that to your needs.

ManuelW
01-05-2011, 04:01 PM
Ok, thanks it helps a lot.

Now it works fine with this code


$vbulletin->db->query_write("UPDATE+"+.+TABLE_PREFIX+.+"user
SET+displaygroupid+=+$the_new_group, usergroupid+= $the_new_group, membergroupids+=+''
WHERE+userid+= $sd_cool_userid");