#
# File name: admin_functions.php
# Author: Kingsley
# Date: 16/12/2008
# Time: 5:35 AM
#
if(!defined("IN_BGS")) {
include("../404.php");
}
if(!defined("IN_ADMIN")) {
include("../404.php");
}
#
# AddMemberToCommittee
#
# Inputs: Member, Committee, Level
#
function SearchForMemberOnline($Member) {
global $_SESSION;
global $lobbyIP;
if(trim($Member) != "") {
if($_SESSION["user"]["level"] >= 5){
$Member = addslashes($Member);
$QIP = mysql_query("SELECT ipaddr from `users` WHERE username = '$Member'");
if(@mysql_num_rows($QIP) > 0) {
$UIP = mysql_fetch_array($QIP);
$UIP = $UIP["ipaddr"];
$Q = mysql_query("SELECT * from `users_online` WHERE username = '$Member' OR user_ip = '$UIP'");
if(@mysql_num_rows($Q) > 0) {
$ret = "Locations of " . $Member;
$ret .= "
| Username |
Lobby name |
Entry |
|
";
while($R = mysql_fetch_array($Q)) {
$LQ = mysql_query("SELECT * from `lobbies` where lobbyname = '".$R["lobby"]."'");
$LI = mysql_fetch_array($LQ);
if(Getip() == $lobbyIP) {
$lobbyIP = "192.168.1.101";
}
$ret .= "
| ".$R["username"]." |
".$LI["lobbytitle"]." |
".date("d/M/Y g:i:sA", $R["last_seen"])." |
Enter
|
";
}
$ret .= "
";
AdminLog("Online Search", "$Member", "Accepted");
} else {
$ret = "$Member is not in a lobby!";
}
} else {
$ret = "$Member does not exist!";
}
} else {
AdminLog("Online search", "$Member", "Denied");
$ret = "You do not have access to this!";
}
} else {
$ret = "You must enter a name to search for!";
}
return $ret;
}
#
# AdminLog
#
# Inputs LogString, ToBeLogged, Condition
#
function AdminLog($LogString, $ToBeLogged, $Condition) {
global $_SESSION;
mysql_query("INSERT INTO `adminlogs` values ('{$_SESSION['user']['name']}', '$LogString', '$ToBeLogged', '$Condition', '" . time() . "')");
}
#
# AddNotice
#
# Inputs: Member, Committee, Level
#
function AddNotice($date_start, $date_end, $subject, $service, $committee, $detail, $severity) {
global $_SESSION;
if(trim($date_start) != "" && trim($date_end) != "" && trim($subject) != "" && trim($service) != "" && trim($committee) != "" && trim($detail) != "" && trim($severity) != "") {
$date_start = addslashes($date_start);
$date_end = addslashes($date_end);
$subject = addslashes($subject);
$service = addslashes($service);
$committee = addslashes($committee);
$detail = addslashes($detail);
$severity = addslashes($severity);
if(($_SESSION["committee"]["name"] == "Admin" && $_SESSION["user"]["level"] >= 6) || ($_SESSION["user"]["committee"] == $committee && $_SESSION["user"]["level"] > 5)) {
mysql_query("INSERT INTO notices values ('0', '$severity', '$date_start', '$date_end', '$subject', '$service', '$committee', '$detail')");
$id = mysql_insert_id();
AdminLog("Adding notice $id", "$subject", "Accepted");
$ret = "Notice $subject #$id added";
} else {
$ret = "You do not have sufficient privliges.";
AdminLog("Adding Notice", "$subject", "Denied");
}
} else {
$ret = "Please enter all the information.";
}
return $ret;
}
#
# AddMemberToCommittee
#
# Inputs: Member, Committee, Level
#
function AddMemberToCommittee($Member, $Committee, $Level) {
global $_SESSION;
if(trim($Member) != "" && trim($Committee) != "" && trim($Level) != "") {
$Member = addslashes($Member);
$Level = (int) $Level;
$Committee = addslashes($Committee);
//Get $Admin's information.
if(($_SESSION["committee"]["name"] == "Admin" && $_SESSION["user"]["level"] >= 6) || ($_SESSION["user"]["committee"] == $Committee && $_SESSION["user"]["level"] > 5)){
$QueryM = mysql_query("SELECT username from users where username = '$Member'");
if(@mysql_num_rows($QueryM) == 1) {
$memberInfo = mysql_fetch_array($QueryM);
$Member = $memberInfo["username"];
if($Level > 4) {
$tag = mysql_fetch_array(mysql_query("SELECT tag from committees where commname = '$Committee'"));
$newNick = $Member.$tag["tag"];
mysql_query("UPDATE users set username = '$newNick' where username = '$Member'");
$Member = $newNick;
}
mysql_query("UPDATE `users` set committee='$Committee', level='$Level' where username='$Member'");
$ret = "$Member added to $Committee with level $Level";
AdminLog("Adding member to committee", "$Member => $Committee => $Level", "Accepted");
//update forum information
$res = mysql_query("SELECT user_id FROM users WHERE username = '$Member'");
$grpName = TeamToForum($Committee);
$res2 = mysql_query("SELECT group_id FROM phpbb_groups WHERE group_name = '$grpName'");
$row = mysql_fetch_row($res);
$row2 = mysql_fetch_row($res2);
$group_id = $row2["0"];
mysql_query("INSERT INTO phpbb_user_group (user_id, group_id, user_pending) VALUES (" . $row['0'] . ", $group_id, 0)");
mysql_query("UPDATE users SET user_level = 2 WHERE user_id = " . $row['0']);
mysql_free_result($QueryM);
} else {
$ret = "No such user!";
}
} else {
$ret = "You do not have the required privliges to add a mebmber to a committe!";
AdminLog("Adding member to committee", "$Member => $Committee => $Level", "Declined");
}
} else {
$ret = "You must enter information!";
}
return $ret;
}
#
# MassEmail
#
# Inputs: Committee, Level, $Subject, $Message
#
function MassEmail($Committee, $Level, $Subject, $Message) {
global $_SESSION;
if(($_SESSION["committee"]["name"] == "Admin" && $_SESSION["user"]["level"] > 5) || ($_SESSION["committee"]["name"] == $Committee && $_SESSION["user"]["level"] >= 6)){
$res = mysql_query("SELECT username, email from users where committee = '$Committee' AND level >= '$Level'");
if(trim($subject) != "" && trim($message) != "" && trim($level) != "") {
if(@mysql_num_rows($res) > 0){
while($row = mysql_fetch_array($res)){
mail("{$row['username']} <{$row['email']}>", $subject, $message, "From: {$_SESSION['user']['name']}");
}
AdminLog("Send mail", "$Message", "Accepted");
$ret = "Sent email.";
} else {
$ret = "Error sending email.";
}
} else {
$ret = "You must enter a subject, message AND level!";
}
} else {
$ret = "You do not have the correct privlages!";
AdminLog("Send mail", "$Message", "Declined");
}
return $ret;
}
#
# AddStrike
#
# Inputs: Nick, Committee
#
function AddStrike($Nick, $Committee) {
global $_SESSION;
if(trim($Nick) != "" && trim($Committee) != ""){
if(($_SESSION["committee"]["name"] == "Admin" && $_SESSION["user"]["level"] > 5) || ($_SESSION["committee"]["name"] == $Committee && $_SESSION["user"]["level"] > 4)){
mysql_query("Insert into `strikes` values('$strikename', '{$_SESSION['user']['name']}', '$Committee','" . time() . "')");
$ret = "Added 1 strike to $Nick";
AdminLog("Add strike", "$Nick", "Accepted");
} else {
AdminLog("Add strike", "$Nick", "Declined");
$ret = "Cannot add a strike to $strikename";
}
} else {
$ret = "You must enter a name";
}
return $ret;
}
#
# UnBanUser
#
# Inputs: Nick
#
function UnBanUser($Nick) {
global $_SESSION;
if(trim($Nick) != ""){
if(($_SESSION["committee"]["name"] == "Admin" && $_SESSION["user"]["level"] > 4) || ($_SESSION["user"]["level"] > 4)){
$userInfo = mysql_fetch_array(mysql_query("SELECT username, ipaddr from `users` where username='$NickToBan'"));
$nickToUnBan = $userInfo["username"];
mysql_query("UPDATE `users` set level='0', committee='User' WHERE username='$nickToUnBan'");
mysql_query("DELETE from `tools` where name='$NickToBan' and tool='Ban'");
mysql_query("UPDATE `phpbb_users` set user_active = 1 where username = '$NickToBan'");
$ret = "Unbanned user $NickToUnBan.";
AdminLog("UnBan User", "$NickToUnBan", "Accepted");
} else {
$ret = "$NickToUnBan not unbanned!";
AdminLog("UnBan User", "$NickToUnBan", "Declined");
}
}
}
#
# BanUser
#
# Inputs: Nick, Reason, $Length
#
function BanUser($NickToBan, $Reason, $Length) {
global $_SESSION;
if(trim($NickToBan) != "" && trim($Reason) != "" && trim($Length) != ""){
if(($_SESSION["committee"]["name"] == "Admin" && $_SESSION["user"]["level"] > 4) || ($_SESSION["user"]["level"] > 4)){
//get more post data
$enf = date("d-n-Y g:i:s A", time());
$exp1 = time() + ($Length * 60);
$exp = date("d-n-Y g:i:s A", $exp1);
//yes we can ban!! now get their IP and add it to the bans
$userInfo = mysql_query("SELECT username, ipaddr, level from `users` where username='$NickToBan'");
if(@mysql_num_rows($userInfo) == 1) {
$userInfo = mysql_fetch_array($userInfo);
if($_SESSION["user"]["level"] > $userInfo["level"]) {
if($userInfo["level"] > 4){
$Tag = "@".substr(strrchr($userInfo["username"], '@'), 1);
$newNick = str_replace($Tag, "", $userInfo["username"]);
mysql_query("UPDATE users set username = '$newNick' WHERE username = '$NickToBan'");
$NickToBan = $newNick;
}
$IPToBan = $userInfo["ipaddr"];
mysql_query("UPDATE `users` set level='-1', committee='User' WHERE username='$NickToBan'");
mysql_query("INSERT into `tools` values ('$NickToBan', '$IPToBan', 'Ban', '$exp', '$exp1', '$enf', '{$_SESSION['user']['name']}', '$Reason')");
mysql_query("UPDATE `phpbb_users` set user_active = 0 where username = '$NickToBan'");
$ret = "Banned $NickToBan. Reason $Reason";
AdminLog("Userban => ($Length mins)", "$NickToBan", "Accepted");
} else {
$ret = "Cannot ban someone of a higher or equal level!";
AdminLog("Userban => ($Length mins)", "$NickToBan", "Denied");
}
} else {
$ret = "No such user!";
}
} else {
$ret = "$NickToBan not banned!";
AdminLog("Userban => ($Length mins)", "$NickToBan", "Declined");
}
}
return $ret;
}
#
# BanName
#
# Inputs: Nick, Reason
#
function BanName($NickToBan, $Reason) {
global $_SESSION;
if(trim($NickToBan) != "" && trim($Reason) != ""){
if(($_SESSION["committee"]["name"] == "Admin" && $_SESSION["user"]["level"] > 4) || ($_SESSION["user"]["level"] > 4)){
$userInfo = mysql_query("SELECT * from users where username = '$NickToBan'");
if(@mysql_num_rows($userInfo) == 1) {
if($_SESSION["user"]["level"] > $userInfo["level"]) {
mysql_query("UPDATE `users` set level='-1', user_active = 0 committee='User' WHERE username='$NickToBan'");
$ret = "Banned $NickToBan. Reason $Reason";
AdminLog("Nickban", "$NickToBan", "Accepted");
} else {
$ret = "You cannot ban anyone with a higher level then yourself!";
AdminLog("Nickban", "$NickToBan", "Accepted");
}
} else {
$ret = "No such user!";
}
} else {
$ret = "$NickToBan not banned!";
AdminLog("Nickban", "$NickToBan", "Declined");
}
}
return $ret;
}
#
# UnbanName
#
# Inputs: Nick
#
function UnBanname($NickToUnBan) {
global $_SESSION;
if(trim($NickToUnBan) != ""){
if(($_SESSION["committee"]["name"] == "Admin" && $_SESSION["user"]["level"] > 4) || ($_SESSION["user"]["level"] > 4)){
$userInfo = mysql_query("SELECT * from users where username = '$NickToUnBan'");
if(mysql_num_rows($userInfo) == 1) {
if($userInfo["level"] == "-1") {
mysql_query("UPDATE `users` set level='0', user_active = 1, committee='User' WHERE username='$NickToUnBan'");
$ret = "Unbanned $NickToUnBan.";
AdminLog("Unban", "$NickToUnBan", "Accepted");
} else {
$ret = "User not banned, Cannot unban!";
}
} else {
$ret = "No such user!";
}
} else {
$ret = "$NickToUnBan not unbanned!";
AdminLog("Unban", "$NickToUnBan", "Declined");
}
}
return $ret;
}
#
# RemoveMemberFromCommittee
#
# Inputs: Nick, Committee
#
function RemoveMemberFromCommittee($Nick, $Committee) {
global $_SESSION;
if(trim($Nick) != ""){
if(($_SESSION["committee"]["name"] == "Admin" && $_SESSION["user"]["level"] > 4) || ($_SESSION["committee"]["name"] == $Committee && $_SESSION["user"]["level"] = 7)){
$userInfo = mysql_query("SELECT level from users where username = '$Nick'");
if(@mysql_num_rows($userInfo) == 1) {
$oldL = mysql_fetch_array($userInfo);
$oldL = $oldL["level"];
if($oldL > 4) {
$tag = mysql_fetch_array(mysql_query("select tag from committees where commname = '$Committee'"));
$tag = $tag["tag"];
$newNick = str_replace($tag, "", $Nick);
mysql_query("UPDATE users set username = '$newNick' where username = '$Nick'");
$Nick = $newNick;
}
mysql_query("UPDATE `users` set committee='User', level='0' where username='$Nick'");
$ret = "$Nick removed from $Committee";
AdminLog("Removing member from $Committee", "$Nick", "Accepted");
//update forum permissions
$user_id = mysql_query("SELECT user_id FROM users WHERE username='$Nick'");
$user_id = mysql_fetch_row($user_id);
$user_id = $user_id["0"];
$g_name = TeamToForum($Committee);
$res = mysql_query("SELECT group_id FROM phpbb_groups WHERE group_name = '$g_name'");
$row = mysql_fetch_row($res);
$group_id = $row["0"];
mysql_query("DELETE FROM phpbb_user_group WHERE user_id = $user_id AND group_id = $group_id");
} else {
$ret = "You do not have the required privliges to remove a member";
AdminLog("Removing member from $Committee", "$Nick", "Declined");
}
} else {
$ret = "No such user!";
}
} else {
$ret = "You do not have the required privlages";
}
}
?>