287 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			287 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
//addnews ready
 | 
						|
// mail ready
 | 
						|
require_once("common.php");
 | 
						|
require_once("lib/showform.php");
 | 
						|
require_once("lib/datetime.php");
 | 
						|
require_once("lib/http.php");
 | 
						|
require_once("lib/sanitize.php");
 | 
						|
require_once("lib/names.php");
 | 
						|
 | 
						|
tlschema("user");
 | 
						|
check_su_access(SU_EDIT_USERS);
 | 
						|
 | 
						|
$op = httpget('op');
 | 
						|
$userid=httpget("userid");
 | 
						|
 | 
						|
if ($op == "lasthit") {
 | 
						|
	// Try and keep user editor and captcha from breaking each other.
 | 
						|
	$_POST['i_am_a_hack'] = 'true';
 | 
						|
}
 | 
						|
page_header("User Editor");
 | 
						|
 | 
						|
$sort = httpget('sort');
 | 
						|
$petition=httpget("returnpetition");
 | 
						|
$returnpetition="";
 | 
						|
if ($petition != "") $returnpetition = "&returnpetition=$petition";
 | 
						|
 | 
						|
$gentime = 0;
 | 
						|
$gentimecount = 0;
 | 
						|
 | 
						|
$order = "acctid";
 | 
						|
if ($sort!="") $order = "$sort";
 | 
						|
$display = 0;
 | 
						|
$query = httppost('q');
 | 
						|
if ($query === false) $query = httpget('q');
 | 
						|
 | 
						|
if ($op=="search" || $op== ""){
 | 
						|
	require_once("lib/lookup_user.php");
 | 
						|
	list($searchresult, $err) = lookup_user($query, $order);
 | 
						|
	$op = "";
 | 
						|
	if ($err) {
 | 
						|
		output($err);
 | 
						|
	} else {
 | 
						|
		$display = 1;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
$m = httpget("module");
 | 
						|
if ($m) $m = "&module=$m&subop=module";
 | 
						|
rawoutput("<form action='user.php?op=search$m' method='POST'>");
 | 
						|
output("Search by any field below: ");
 | 
						|
rawoutput("<input name='q' id='q'>");
 | 
						|
$se = translate_inline("Search");
 | 
						|
rawoutput("<input type='submit' class='button' value='$se'>");
 | 
						|
rawoutput("</form>");
 | 
						|
rawoutput("<script language='JavaScript'>document.getElementById('q').focus();</script>");
 | 
						|
addnav("","user.php?op=search$m");
 | 
						|
require_once("lib/superusernav.php");
 | 
						|
superusernav();
 | 
						|
addnav("Bans");
 | 
						|
addnav("Add a ban","user.php?op=setupban");
 | 
						|
addnav("List/Remove bans","user.php?op=removeban");
 | 
						|
 | 
						|
// This doesn't seem to be used, so I'm going to comment it out now
 | 
						|
//$msg = httpget('msg');
 | 
						|
//if ($msg>"") {
 | 
						|
//	output("Message: %s`n", $msg);
 | 
						|
//}
 | 
						|
 | 
						|
// Collect a list of the mounts
 | 
						|
$mounts="0," . translate_inline("None");
 | 
						|
$sql = "SELECT mountid,mountname,mountcategory FROM " . db_prefix("mounts") .  " ORDER BY mountcategory";
 | 
						|
$result = db_query($sql);
 | 
						|
while ($row = db_fetch_assoc($result)){
 | 
						|
	$mounts.=",{$row['mountid']},{$row['mountcategory']}: ".color_sanitize($row['mountname']);
 | 
						|
}
 | 
						|
 | 
						|
$specialties = array(""=>translate_inline("Undecided"));
 | 
						|
$specialties = modulehook("specialtynames", $specialties);
 | 
						|
$enum = "";
 | 
						|
foreach ($specialties as $key=>$name) {
 | 
						|
	if ($enum) $enum .= ",";
 | 
						|
	$enum .= "$key,$name";
 | 
						|
}
 | 
						|
 | 
						|
//Inserted for v1.1.0 Dragonprime Edition to extend clan possibilities
 | 
						|
$ranks = array(CLAN_APPLICANT=>"`!Applicant`0",CLAN_MEMBER=>"`#Member`0",CLAN_OFFICER=>"`^Officer`0",CLAN_LEADER=>"`&Leader`0", CLAN_FOUNDER=>"`\$Founder");
 | 
						|
$ranks = modulehook("clanranks", array("ranks"=>$ranks, "clanid"=>NULL, "userid"=>$userid));
 | 
						|
$ranks = $ranks['ranks'];
 | 
						|
$rankstring = "";
 | 
						|
foreach($ranks as $rankid => $rankname) {
 | 
						|
	if ($rankstring != "") $rankstring .= ",";
 | 
						|
	$rankstring .= $rankid.",".sanitize($rankname);
 | 
						|
}
 | 
						|
$userinfo = array(
 | 
						|
	"Account info,title",
 | 
						|
	"acctid"=>"User id,viewonly",
 | 
						|
	"login"=>"Login",
 | 
						|
	"newpassword"=>"New Password",
 | 
						|
	"emailaddress"=>"Email Address",
 | 
						|
	"locked"=>"Account Locked,bool",
 | 
						|
	"banoverride"=>"Override Bans for this account,bool",
 | 
						|
	"referer"=>"ID of player who referred this player," .
 | 
						|
		(($session['user']['superuser'] & SU_EDIT_DONATIONS) ? "int" : "viewonly"),
 | 
						|
	"refererawarded"=>"Has the referring player been awarded points,viewonly",
 | 
						|
 | 
						|
	"Basic user info,title",
 | 
						|
	"name"=>"Character Name (Do NOT include ANY title information)",
 | 
						|
	"title"=>"Dragonkill Title (prepended to name if Custom Title unset)" . (getsetting("edittitles",1) ? "" : ",hidden"),
 | 
						|
	"ctitle"=>"Custom Title (prepended to name if set)",
 | 
						|
	"sex"=>"Sex,enum,0,Male,1,Female",
 | 
						|
	"age"=>"Days since level 1,int",
 | 
						|
	"dragonkills"=>"How many times has slain the dragon,int",
 | 
						|
	"dragonage"=>"How old when last killed dragon,int",
 | 
						|
	"bestdragonage"=>"Youngest days when killed dragon,int",
 | 
						|
	"pk"=>"Has user attacked in pvp?,bool",
 | 
						|
	"bio"=>"Bio",
 | 
						|
 | 
						|
	"Stats,title",
 | 
						|
	"level"=>"Level,int",
 | 
						|
	"race"=>"Race",
 | 
						|
	"experience"=>"Experience,int",
 | 
						|
	"hitpoints"=>"Current Hitpoints,int",
 | 
						|
	"maxhitpoints"=>"Max Hitpoints,int",
 | 
						|
	"turns"=>"Turns left,int",
 | 
						|
	"playerfights"=>"Playerfights left,int",
 | 
						|
	"attack"=>"Attack (includes weapon damage),int",
 | 
						|
	"defense"=>"Defense (includes armor defense),int",
 | 
						|
	"spirits"=>"Spirits (display only),enum,-6,Resurrected,-2,Very Low,-1,Low,0,Normal,1,High,2,Very High",
 | 
						|
	"resurrections"=>"Resurrections,int",
 | 
						|
	"location"=>"Where is the user currently",
 | 
						|
 | 
						|
	"Specialty,title",
 | 
						|
	"specialty"=>"Specialty,enumpretrans,". $enum,
 | 
						|
 | 
						|
	"Grave Fights,title",
 | 
						|
	"deathpower"=>array("Favor with %s`0,int", getsetting("deathoverlord", '`$Ramius')),
 | 
						|
	"gravefights"=>"Grave fights left,int",
 | 
						|
	"soulpoints"=>"Soulpoints (HP while dead),int",
 | 
						|
 | 
						|
	"Gear,title",
 | 
						|
	"gems"=>"Gems,int",
 | 
						|
	"gold"=>"Gold in hand,int",
 | 
						|
	"goldinbank"=>"Gold in bank,int",
 | 
						|
	"transferredtoday"=>"Number of transfers today,int",
 | 
						|
	"amountouttoday"=>"Total value of transfers from player today,int",
 | 
						|
	"weapon"=>"Weapon Name",
 | 
						|
	"weapondmg"=>"Damage of weapon,int",
 | 
						|
	"weaponvalue"=>"Purchase cost of weapon,int",
 | 
						|
	"armor"=>"Armor Name",
 | 
						|
	"armordef"=>"Armor defense,int",
 | 
						|
	"armorvalue"=>"Purchase cost of armor,int",
 | 
						|
 | 
						|
	"Special,title",
 | 
						|
	"charm"=>"Charm,int",
 | 
						|
	"seendragon"=>"Saw dragon today,bool",
 | 
						|
	"seenmaster"=>"Seen master,bool",
 | 
						|
	"hashorse"=>"Mount,enumpretrans,".$mounts,
 | 
						|
	"fedmount"=>"Fed mount today,bool",
 | 
						|
	"boughtroomtoday"=>"Bought a room today,bool",
 | 
						|
	"marriedto"=>"Is married to the player with AcctID," .
 | 
						|
		(($session['user']['superuser'] & SU_MEGAUSER) ? "int" : "viewonly"),
 | 
						|
 | 
						|
	"Clan Info,title",
 | 
						|
	"clanid"=>"Clan,enumpretrans,0,".translate_inline("None"),
 | 
						|
	"clanrank"=>"Clan Rank,enum,$rankstring",
 | 
						|
	"clanjoindate"=>"Clan Join Date",
 | 
						|
 | 
						|
	"Superuser Flags,title",
 | 
						|
	"superuser"=>"Superuser Permissions".
 | 
						|
	    "<br/><i>For the most part you can only set flags that you yourself possess;".
 | 
						|
		"<br/>if you try to set one that you don't have; it won't stick.</i>,".
 | 
						|
		"bitfield,".
 | 
						|
		($session['user']['superuser'] | SU_ANYONE_CAN_SET |
 | 
						|
		  ($session['user']['superuser']&SU_MEGAUSER ? 0xFFFFFFFF : 0)).",".
 | 
						|
		SU_MEGAUSER.        ",MEGA USER (enable all permissions)* <i>(this applies to any future flags as well)</i>".
 | 
						|
		"<br/><br/><b>Editors</b>,".
 | 
						|
		SU_EDIT_CONFIG.     ",Edit Game Configurations*,".
 | 
						|
		SU_EDIT_USERS.      ",Edit Users*,".
 | 
						|
		SU_EDIT_MOUNTS.     ",Edit Mounts,".
 | 
						|
		SU_EDIT_CREATURES.  ",Edit Creatures & Taunts,".
 | 
						|
		SU_EDIT_EQUIPMENT.  ",Edit Armor & Weapons,".
 | 
						|
		SU_EDIT_RIDDLES.    ",Edit Riddles,".
 | 
						|
		SU_MANAGE_MODULES.  ",Manage Modules".
 | 
						|
		"<br/><br/><b>Customer Service</b>,".
 | 
						|
		SU_IS_GAMEMASTER.   ",Can post comments as gamemaster,".
 | 
						|
		SU_EDIT_PETITIONS.  ",Handle Petitions,".
 | 
						|
		SU_EDIT_COMMENTS.   ",Moderate Comments,".
 | 
						|
		SU_MODERATE_CLANS.  ",Moderate Clan Commentary,".
 | 
						|
		SU_AUDIT_MODERATION.",Audit Moderated Comments,".
 | 
						|
        SU_OVERRIDE_YOM_WARNING.",Do NOT display YOM warning for this person,".
 | 
						|
		SU_POST_MOTD.       ",Post MoTD's".
 | 
						|
		"<br/><br/><b>Donations</b>,".
 | 
						|
		SU_EDIT_DONATIONS.  ",Manage Donations*,".
 | 
						|
		SU_EDIT_PAYLOG.     ",Manage Payment Log".
 | 
						|
		"<br/><br/><b>Game Development</b>,".
 | 
						|
		SU_INFINITE_DAYS.   ",Infinite Days*,".
 | 
						|
		SU_DEVELOPER.       ",Game Developer* (super powers),".
 | 
						|
		SU_IS_TRANSLATOR.   ",Enable Translation Tool,".
 | 
						|
		SU_DEBUG_OUTPUT.    ",Debug Output,".
 | 
						|
		SU_SHOW_PHPNOTICE.  ",See PHP Notices in debug output,".
 | 
						|
		SU_RAW_SQL.         ",Execute Raw SQL*,".
 | 
						|
		SU_VIEW_SOURCE.     ",View source code,".
 | 
						|
		SU_GIVE_GROTTO.     ",Grotto access (only if not granted implicitly in another permission),".
 | 
						|
		SU_NEVER_EXPIRE.    ",Account never expires".
 | 
						|
		"<br/><br/>* Granting any of these options will hide the user from the HoF",
 | 
						|
 | 
						|
	"Misc Info,title",
 | 
						|
	"regdate"=>"Registered on,viewonly",
 | 
						|
	"beta"=>"Willing to participate in beta,bool",
 | 
						|
	"laston"=>"Last On (local time),viewonly",
 | 
						|
	"lasthit"=>"Last New Day (time is in GMT not local),viewonly",
 | 
						|
	"lastmotd"=>"Last MOTD date (local time),viewonly",
 | 
						|
	"lastip"=>"Last IP,viewonly",
 | 
						|
	"uniqueid"=>"Unique ID,viewonly",
 | 
						|
	"gentime"=>"Sum of page gen times,viewonly",
 | 
						|
	"gentimecount"=>"Page hits,viewonly",
 | 
						|
	"allowednavs"=>"Allowed Navs,viewonly",
 | 
						|
	"dragonpoints"=>"Dragon points spent,viewonly",
 | 
						|
	"bufflist"=>"Buff List,viewonly",
 | 
						|
	"prefs"=>"Preferences,viewonly",
 | 
						|
	"donationconfig"=>"Donation buys,viewonly",
 | 
						|
	"Battle Info,title",
 | 
						|
	"companions"=>"List of companions,viewonly",
 | 
						|
	"badguy"=>"Last Badguy,viewonly"
 | 
						|
);
 | 
						|
 | 
						|
$sql = "SELECT clanid,clanname,clanshort FROM " . db_prefix("clans") ." ORDER BY clanshort";
 | 
						|
$result = db_query($sql);
 | 
						|
while ($row=db_fetch_assoc($result)){
 | 
						|
	$userinfo['clanid'].=",{$row['clanid']},<{$row['clanshort']}> {$row['clanname']}";
 | 
						|
}
 | 
						|
 | 
						|
switch ($op) {
 | 
						|
	case "lasthit":
 | 
						|
		require("lib/user/user_lasthit.php");
 | 
						|
		break;
 | 
						|
	case "savemodule":
 | 
						|
		require("lib/user/user_savemodule.php");
 | 
						|
		break;
 | 
						|
	case "special":
 | 
						|
		require("lib/user/user_special.php");
 | 
						|
		break;
 | 
						|
	case "save":
 | 
						|
		require("lib/user/user_save.php");
 | 
						|
		break;
 | 
						|
}
 | 
						|
 | 
						|
switch($op) {
 | 
						|
	case "edit":
 | 
						|
		require("lib/user/user_edit.php");
 | 
						|
		break;
 | 
						|
	case "setupban":
 | 
						|
		require("lib/user/user_setupban.php");
 | 
						|
		break;
 | 
						|
	case "del":
 | 
						|
		require("lib/user/user_del.php");
 | 
						|
		break;
 | 
						|
	case "saveban":
 | 
						|
		require("lib/user/user_saveban.php");
 | 
						|
		break;
 | 
						|
	case "delban":
 | 
						|
		require("lib/user/user_delban.php");
 | 
						|
		break;
 | 
						|
	case "removeban":
 | 
						|
		require("lib/user/user_removeban.php");
 | 
						|
		break;
 | 
						|
	case "debuglog":
 | 
						|
		require("lib/user/user_debuglog.php");
 | 
						|
		break;
 | 
						|
	case "":
 | 
						|
		require("lib/user/user_.php");
 | 
						|
		break;
 | 
						|
}
 | 
						|
page_footer();
 | 
						|
 | 
						|
function show_bitfield($val){
 | 
						|
	$out = "";
 | 
						|
	$v = 1;
 | 
						|
	for ($i=0; $i < 32; $i++){
 | 
						|
		$out.= (int)$val & (int)$v?"1":"0";
 | 
						|
		$v *= 2;
 | 
						|
	}
 | 
						|
	return($out);
 | 
						|
}
 | 
						|
?>
 |