My first commit, yay!

Removing:
 -Erro code of r4861. Xsi gave me permission p-please don't kill me.
Proc added:
 -Added a proc that checks the rank of the admin and compares it to a var given. If the check fails, returns a 0 and a "You need more acces" message. If not, returns an 1. admin_rank_check(var/rank, var/requested)
Admin option changes:
 -You need to be at least a trialmin to change a var in VV.
 -You need to be at least a trialmin to change the vars on the tator panel
 -You need to be at least a trialmin to allow votes or start a custom one. (All admins can cancel votes)
 -All mob transformations (of playerpanel and VV) and special options (like godmode), now requires trialmin status or higher.
 -All admins can use aghost now.
 -All admins can right click - VV if they are a ghosting.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4889 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
aranclanos@hotmail.com
2012-10-16 03:07:08 +00:00
parent ac75903c33
commit ac5259836f
7 changed files with 53 additions and 9 deletions

View File

@@ -167,8 +167,11 @@ datum/controller/vote
proc/interface(var/client/C)
if(!C) return
var/admin = 0
var/trialmin = 0
if(C.holder)
admin = 1
if (C.holder.level >= 3)
trialmin = 1
voting |= C
. = "<html><head><title>Voting Panel</title></head><body>"
@@ -186,24 +189,24 @@ datum/controller/vote
else
. += "<h2>Start a vote:</h2><hr><ul><li>"
//restart
if(admin || config.allow_vote_restart)
if(trialmin || config.allow_vote_restart)
. += "<a href='?src=\ref[src];vote=restart'>Restart</a>"
else
. += "<font color='grey'>Restart (Disallowed)</font>"
if(admin)
if(trialmin)
. += "\t(<a href='?src=\ref[src];vote=toggle_restart'>[config.allow_vote_restart?"Allowed":"Disallowed"]</a>)"
. += "</li><li>"
//gamemode
if(admin || config.allow_vote_mode)
if(trialmin || config.allow_vote_mode)
. += "<a href='?src=\ref[src];vote=gamemode'>GameMode</a>"
else
. += "<font color='grey'>GameMode (Disallowed)</font>"
if(admin)
if(trialmin)
. += "\t(<a href='?src=\ref[src];vote=toggle_gamemode'>[config.allow_vote_mode?"Allowed":"Disallowed"]</a>)"
. += "</li>"
//custom
if(admin)
if(trialmin)
. += "<li><a href='?src=\ref[src];vote=custom'>Custom</a></li>"
. += "</ul><hr>"
. += "<a href='?src=\ref[src];vote=close' style='position:absolute;right:50px'>Close</a></body></html>"

View File

@@ -8,8 +8,8 @@ client
//set src in world
if(!usr.client || !usr.client.holder || !(usr.client.holder.level >= 2) ) //admin candidate and up.
usr << "\red You need to be a higher level administrator to access this."
if(!usr.client || !usr.client.holder)
usr << "\red You need to be an administrator to access this."
return
@@ -408,6 +408,7 @@ client
else if (href_list["rename"])
var/mob/M = locate(href_list["rename"])
if(!istype(M)) return
if(!admin_rank_check(src.holder.level, 3)) return
var/new_name = copytext(sanitize(input(usr,"What would you like to name this mob?","Input a name",M.real_name) as text|null),1,MAX_NAME_LEN)
if( !new_name || !M ) return
@@ -473,6 +474,7 @@ client
return
if(!src.holder)
return
if(!admin_rank_check(src.holder.level, 3)) return
src.give_spell(MOB)
href_list["datumrefresh"] = href_list["give_spell"]
else if (href_list["ninja"])
@@ -485,6 +487,7 @@ client
return
if(!src.holder)
return
if(!admin_rank_check(src.holder.level, 3)) return
src.cmd_admin_ninjafy(MOB)
href_list["datumrefresh"] = href_list["ninja"]
else if (href_list["godmode"])
@@ -497,6 +500,7 @@ client
return
if(!src.holder)
return
if(!admin_rank_check(src.holder.level, 3)) return
src.cmd_admin_godmode(MOB)
href_list["datumrefresh"] = href_list["godmode"]
else if (href_list["gib"])
@@ -509,6 +513,7 @@ client
return
if(!src.holder)
return
if(!admin_rank_check(src.holder.level, 3)) return
src.cmd_admin_gib(MOB)
else if (href_list["build_mode"])
@@ -521,6 +526,7 @@ client
return
if(!src.holder)
return
if(!admin_rank_check(src.holder.level, 3)) return
togglebuildmode(MOB)
href_list["datumrefresh"] = href_list["build_mode"]
@@ -536,6 +542,7 @@ client
return
if(usr.client)
if(!admin_rank_check(src.holder.level, 3)) return
usr.client.cmd_admin_drop_everything(MOB)
else if (href_list["direct_control"])
@@ -550,6 +557,7 @@ client
return
if(usr.client)
if(!admin_rank_check(src.holder.level, 3)) return
usr.client.cmd_assume_direct_control(MOB)
else if (href_list["make_skeleton"])
@@ -564,6 +572,7 @@ client
return
if(ishuman(MOB))
if(!admin_rank_check(src.holder.level, 3)) return
var/mob/living/carbon/human/HUMANMOB = MOB
HUMANMOB.makeSkeleton()
@@ -571,6 +580,7 @@ client
if(!href_list["delall"])
return
var/atom/A = locate(href_list["delall"])
if(!admin_rank_check(src.holder.level, 3)) return
if(!A)
return
if(!isobj(A))
@@ -617,6 +627,7 @@ client
return
if(!isobj(A) && !ismob(A) && !isturf(A))
return
if(!admin_rank_check(src.holder.level, 3)) return
src.cmd_admin_explosion(A)
href_list["datumrefresh"] = href_list["explode"]
else if (href_list["emp"])
@@ -627,6 +638,7 @@ client
return
if(!isobj(A) && !ismob(A) && !isturf(A))
return
if(!admin_rank_check(src.holder.level, 3)) return
src.cmd_admin_emp(A)
href_list["datumrefresh"] = href_list["emp"]
else if (href_list["mark_object"])
@@ -637,9 +649,11 @@ client
return
if(!src.holder)
return
if(!admin_rank_check(src.holder.level, 3)) return
src.holder.marked_datum = D
href_list["datumrefresh"] = href_list["mark_object"]
else if (href_list["rotatedatum"])
if(!admin_rank_check(src.holder.level, 3)) return
if(!href_list["rotatedir"])
return
var/atom/A = locate(href_list["rotatedatum"])
@@ -660,6 +674,7 @@ client
var/mob/M = locate(href_list["makemonkey"])
if(!M)
return
if(!admin_rank_check(src.holder.level, 3)) return
if(!ishuman(M))
usr << "This can only be done to objects of type /mob/living/carbon/human"
return
@@ -677,6 +692,7 @@ client
var/mob/M = locate(href_list["makerobot"])
if(!M)
return
if(!admin_rank_check(src.holder.level, 3)) return
if(!ishuman(M))
usr << "This can only be done to objects of type /mob/living/carbon/human"
return
@@ -694,6 +710,7 @@ client
var/mob/M = locate(href_list["makealien"])
if(!M)
return
if(!admin_rank_check(src.holder.level, 3)) return
if(!ishuman(M))
usr << "This can only be done to objects of type /mob/living/carbon/human"
return
@@ -711,6 +728,7 @@ client
var/mob/M = locate(href_list["makemetroid"])
if(!M)
return
if(!admin_rank_check(src.holder.level, 3)) return
if(!ishuman(M))
usr << "This can only be done to objects of type /mob/living/carbon/human"
return
@@ -728,6 +746,7 @@ client
var/mob/M = locate(href_list["makeai"])
if(!M)
return
if(!admin_rank_check(src.holder.level, 3)) return
if(!ishuman(M))
usr << "This can only be done to objects of type /mob/living/carbon/human"
return
@@ -743,6 +762,7 @@ client
holder.Topic(href, list("makeai"=href_list["makeai"]))
else if (href_list["setmutantrace"])
var/mob/living/carbon/human/H = locate(href_list["setmutantrace"])
if(!admin_rank_check(src.holder.level, 3)) return
if(!istype(H))
usr << "This can only be done to objects of type /mob/living/carbon/human"
return
@@ -761,6 +781,7 @@ client
H.update_mutantrace()
else if (href_list["regenerateicons"])
var/mob/M = locate(href_list["regenerateicons"])
if(!admin_rank_check(src.holder.level, 3)) return
if(!istype(M))
usr << "This can only be done to objects of type /mob"
return
@@ -775,6 +796,8 @@ client
if(!isliving(M)) return
var/mob/living/L = M
if(!admin_rank_check(src.holder.level, 3)) return
var/amount = input("Deal how much damage to mob? (Negative values here heal)","Adjust [Text]loss",0) as num
if(Text == "brute")
L.adjustBruteLoss(amount)

View File

@@ -340,6 +340,10 @@ datum/mind
log_admin("[key_name(usr)] tried to access [current]'s mind without authorization.")
return
if (!(usr.client.holder in list("Trial Admin", "Badmin", "Game Admin", "Game Master")))
alert("You cannot perform this action. You must be of a higher administrative rank!")
return
if (href_list["role_edit"])
var/new_role = input("Select new role", "Assigned role", assigned_role) as null|anything in get_all_jobs()
if (!new_role) return

View File

@@ -16,6 +16,12 @@
// verbs += /client/proc/air_status //Air things
// verbs += /client/proc/Cell //More air things
/client/proc/admin_rank_check(var/rank, var/requested)
if(rank < requested)
alert("You cannot perform this action. You must be of a higher administrative rank!", null, null, null, null, null)
return(0)
return(1)
/client/proc/update_admins(var/rank)
if(!holder)
holder = new /datum/admins(rank)
@@ -55,7 +61,6 @@
if ("Trial Admin")
holder.level = 3
if(holder.state == 2) // if observing
verbs += /client/proc/debug_variables
verbs += /client/proc/cmd_modify_ticker_variables
verbs += /client/proc/toggle_view_range
verbs += /client/proc/Getmob
@@ -89,6 +94,8 @@
if ("Admin Observer")
holder.level = -1
if(holder.state == 2) // if observing
verbs += /client/proc/debug_variables
// if ("Banned")
// holder.level = -2
@@ -106,6 +113,7 @@
if (holder.level >= -1)
verbs += /client/proc/cmd_admin_say
verbs += /client/proc/deadmin_self
verbs += /client/proc/admin_ghost
else return
//Moderator
@@ -123,7 +131,6 @@
verbs += /client/proc/cmd_admin_pm_panel
verbs += /client/proc/cmd_admin_subtle_message
verbs += /client/proc/dsay
verbs += /client/proc/admin_ghost
verbs += /client/proc/game_panel
verbs += /client/proc/player_panel
verbs += /client/proc/player_panel_new

View File

@@ -181,6 +181,10 @@ var/list/admin_datums = list()
if(href_list["simplemake"])
if (!(src.rank in list("Trial Admin", "Badmin", "Game Admin", "Game Master")))
alert("You cannot perform this action. You must be of a higher administrative rank!")
return
if(!href_list["mob"])
usr << "Invalid mob"
return

View File

@@ -5,6 +5,8 @@
var/method = 0 //0 means strict type detection while 1 means this type and all subtypes (IE: /obj/item with this set to 1 will set it to ALL itms)
if(!admin_rank_check(src.holder.level, 3)) return
if(A && A.type)
if(typesof(A.type))
switch(input("Strict object type detection?") as null|anything in list("Strictly this type","This type and subtypes", "Cancel"))

View File

@@ -269,6 +269,7 @@ var/list/forbidden_varedit_object_types = list(
if(!src.holder)
src << "Only administrators may use this command."
return
if(!admin_rank_check(src.holder.level, 3)) return
for(var/p in forbidden_varedit_object_types)
if( istype(O,p) )