second, final commit. Lacking SQL schema, will be added later.

This commit is contained in:
skull132
2015-02-02 15:13:46 +02:00
parent 98958e3a78
commit 4737761d43
5 changed files with 116 additions and 59 deletions
+2
View File
@@ -316,6 +316,8 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
output += "</form>"
output += "Please note that all jobban bans or unbans are in-effect the following round."
message_admins("Adminckey: [adminckey], playerckey: [playerckey].")
if(adminckey || playerckey)
var/blcolor = "#ffeeee" //banned light
+2 -1
View File
@@ -91,7 +91,8 @@ var/list/admin_verbs_admin = list(
)
var/list/admin_verbs_ban = list(
/client/proc/unban_panel,
/client/proc/jobbans
/client/proc/jobbans,
/client/proc/warning_panel
)
var/list/admin_verbs_sounds = list(
/client/proc/play_local_sound,
+7
View File
@@ -2804,4 +2804,11 @@
A.emagged = 0
usr << "Holodeck safeties reset."
message_admins("Holdeck reset.")
return
else if(href_list["warnsearchckey"] || href_list["warnsearchadmin"])
var/adminckey = href_list["warnsearchadmin"]
var/playerckey = href_list["warnsearchckey"]
warning_panel(adminckey, playerckey)
return
+105 -50
View File
@@ -65,9 +65,9 @@
if(!check_rights(R_ADMIN|R_MOD)) return
if(!warned_ckey || !istext(warned_ckey)) return
if(warned_ckey in admin_datums)
usr << "<font color='red'>Error: warn(): You can't warn admins.</font>"
return
// if(warned_ckey in admin_datums)
// usr << "<font color='red'>Error: warn(): You can't warn admins.</font>"
// return
var/datum/preferences/D
var/client/C = directory[warned_ckey]
@@ -101,13 +101,14 @@
severity = 1
var/sqlkey = sanitizeSQL(warned_ckey)
var/computerid
var/ip
var/computerid = null
var/ip = null
if(C)
computerid = C.computer_id
ip = C.address
var/a_ckey = key_name_admin(src)
var/a_ckey = sanitizeSQL(ckey)
message_admins("Data to be entered: [severity], [reason], [notes], [sqlkey], [computerid], [ip], [a_ckey].")
var/DBQuery/query_insert = dbcon.NewQuery("INSERT INTO aurora_warnings (id, time, severity, reason, notes, ckey, computerid, ip, a_ckey) VALUES (null, Now(), '[severity]', '[reason]', '[notes]', '[sqlkey]', '[computerid]', '[ip]', '[a_ckey]')")
query_insert.Execute()
notes_add(warned_ckey, "Warning added by [a_ckey], for: [reason]. || Notes regarding the warning: [notes].")
@@ -119,21 +120,22 @@
* A proc for a player to check their own warnings
*/
/client/verb/check_warns
/client/verb/check_warns()
set name = "My warnings"
set category = "OOC"
set desc = "Display warnings issued to you."
var/lcolor = "#ffeeee" //light colour, severity = 1
var/dcolor = "#ffdddd" //dark colour, severity = 2
var/looksimilar = 0
var/dat = ""
var/dcolor = "#ffaaaa" //dark colour, severity = 2
establish_db_connection()
if(!dbcon.IsConnected())
// error("Connection to SQL database failed while attempting to fetch a player's warnings. Verb cancelled.")
// dat += "<div align='center'><font color='#ffffff'><h3>Database connection error. Warnings were not fetched. Please contact an Administrator.</h3></font></div>"
error("Connection to SQL database failed while attempting to fetch a player's warnings. Verb cancelled.")
alert("Connection to the SQL database lost. Aborting. Please alert an Administrator or a member of staff.")
return
var/dat = "<div align='center'><h3>Warnings received</h3></div><br>"
dat += "<table width='90%' bgcolor='#e3e3e3' cellpadding='5' cellspacing='0' align='center'>"
dat += "<tr>"
dat += "<th width='20%'>ADMIN</th>"
@@ -148,62 +150,115 @@
while(search_query.NextRow())
var/time = search_query.item[1]
var/seveiry = search_query.item[2]
var/severity = search_query.item[2]
var/reason = search_query.item[3]
var/a_ckey = search_query.item[4]
if(severity)
dat += "<tr bgcolor='[dcolor]' align='center'>"
else
dat += "<tr bgcolor='[lcolor]' align='center'>"
var/bgcolor = lcolor
if(severity == "1")
bgcolor = dcolor
dat += "<tr bgcolor='[bgcolor]' align='center'>"
dat += "<td>[a_ckey]</td>"
dat += "<td>[time]</td>"
dat += "<td>[reason]</td>"
dat += "</tr>"
dat += "</table>"
dat += "<br><br>"
if(!looksimilar)
dat += "<div align='center'><h3><a href='?src=\ref[src];warning_similar=[ckey]'>Search for warnings issued to similar clients</a></h3></div>"
dat += "<tr>"
dat += "<td colspan='5' bgcolor='white'>&nbsp</td>"
dat += "</tr>"
/client/proc/check_similar_warns(ip, cid)
dat += "<div align='center'><h3>Warnings issued to players with similar credentials</h3></div>"
dat += "<br>"
dat += "</table>"
usr << browse(dat, "window=mywarnings;size=900x500")
/*
* A proc for an admin/moderator to look up a member's warnings.
*/
/client/proc/warning_panel()
set category = "Admin"
set name = "Warnings Panel"
set desc = "Look-up warnings assigned to players."
if(!holder)
return
holder.warning_panel()
/datum/admins/proc/warning_panel(var/adminckey = null, var/playerckey = null)
if(!check_rights(R_ADMIN|R_MOD)) return
var/lcolor = "#ffeeee" //light colour, severity = 1
var/dcolor = "#ffdddd" //dark colour, severity = 2
establish_db_connection()
if(!dbcon.IsConnected())
error("Connection to SQL database failed while attempting to fetch a player's warnings. Proc cancelled.")
dat +="<div align='center'><font color='#ffffff'><h3>Database connection error. Warnings were not fetched. Please contact an Administrator.</h3></font></div>"
error("Connection to SQL database failed while attempting to fetch a player's warnings. Verb cancelled.")
alert("Connection to the SQL database lost. Aborting. Please alert an Administrator or a member of staff.")
return
dat += "<table width='90%' bgcolor='#e3e3e3' cellpadding='5' cellspacing='0' align='center'>"
dat += "<tr>"
dat += "<th width='10%'>ADMIN</th>"
dat += "<th width='10%'>CKEY ISSUED TO</th>"
dat += "<th width='10%'>TIME ISSUED</th>"
dat += "<th width='60%'>REASON</th>"
dat += "</tr>"
var/dat = "<div align='center'><h3>Warning Look-up Panel</h3></div><br>"
var/DBQuery/similar_query = dbcon.NewQuery("SELECT time, severity, reason, ckey, a_ckey FROM aurora_warnings WHERE computerid='[cid]' OR ip='[ip]' ORDER BY time DESC")
similar_query.Execute()
//Totally not stealing code from the DB_ban_panel
while(similar_query.NextRow())
var/time = similar_query.item[1]
var/severity = similar_query.item[2]
var/reason = similar_query.item[3]
var/ckey = similar_query.item[4]
var/a_ckey = similar_query.item[5]
dat += "<form method='GET' action='?src=\ref[src]'><b>Search:</b> "
dat += "<input type='hidden' name='src' value='\ref[src]'>"
dat += "<b>Ckey:</b> <input type='text' name='warnsearchckey' value='[playerckey]'>"
dat += "<b>Admin ckey:</b> <input type='text' name='warnsearchadmin' value='[adminckey]'>"
dat += "<input type='submit' value='search'>"
dat += "</form>"
if(severity)
dat += "<tr bgcolor='[dcolor]' align='center'>"
else
dat += "<tr bgcolor='[lcolor]' align='center'>"
if(adminckey || playerckey)
dat += "<td>[a_ckey]</td>"
dat += "<td>[ckey]</td>"
dat += "<td>[time]</td>"
dat += "<td>[a_ckey]</td>"
dat += "<table width='90%' bgcolor='#e3e3e3' cellpadding='5' cellspacing='0' align='center'>"
dat += "<tr>"
dat += "<th width='10%'>ISSUED TO</th>"
dat += "<th width='10%'>ISSUED BY</th>"
dat += "<th width='10%'>TIME ISSUED</th>"
dat += "<th width='60%'>REASON</th>"
dat += "</tr>"
dat += "</table>"
adminckey = ckey(adminckey)
playerckey = ckey(playerckey)
var/paramone = ""
var/paramtwo = ""
if(adminckey)
paramone = "AND a_ckey = '[adminckey]' "
if(playerckey)
paramtwo = "AND ckey = '[playerckey]' "
var/DBQuery/search_query = dbcon.NewQuery("SELECT time, severity, reason, notes, ckey, a_ckey FROM aurora_warnings WHERE 1 [paramone] [paramtwo] ORDER BY time DESC")
search_query.Execute()
while(search_query.NextRow())
var/time = search_query.item[1]
var/severity = search_query.item[2]
var/reason = search_query.item[3]
var/notes = search_query.item[4]
var/ckey = search_query.item[5]
var/a_ckey = search_query.item[6]
var/bgcolor = lcolor
if(severity == "1")
bgcolor = dcolor
dat += "<tr bgcolor='[bgcolor]' align='center'>"
dat += "<td>[ckey]</td>"
dat += "<td>[a_ckey]</td>"
dat += "<td>[time]</td>"
dat += "<td>[reason]</td>"
dat += "</tr>"
dat += "<tr>"
dat += "<td align='center' colspan='5'><b>Staff Notes:</b> <cite>\"[notes]\"</cite></td>"
dat += "</tr>"
dat += "<tr>"
dat += "<td colspan='5' bgcolor='white'>&nbsp</td>"
dat += "</tr>"
dat +="</table>"
usr << browse(dat, "window=lookupwarns;size=900x500")
feedback_add_details("admin_verb","WARN-LKUP")