diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index fd989987ba0..c6b0edcff49 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -27,8 +27,8 @@
var/allow_admin_rev = 1 // allows admin revives
var/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default)
var/vote_period = 600 // length of voting period (deciseconds, default 1 minute)
- var/vote_autotransfer_initial = 108000 // Length of time before the first autotransfer vote is called
- var/vote_autotransfer_interval = 3600 // length of time before next sequential autotransfer vote
+ var/vote_autotransfer_initial = 72000 // Length of time before the first autotransfer vote is called
+ var/vote_autotransfer_interval = 18000 // length of time before next sequential autotransfer vote
var/vote_no_default = 0 // vote does not default to nochange/norestart (tbi)
var/vote_no_dead = 0 // dead people can't vote (tbi)
// var/enable_authentication = 0 // goon authentication
diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm
index 744ae823422..ccbef586672 100644
--- a/code/game/jobs/jobs.dm
+++ b/code/game/jobs/jobs.dm
@@ -122,7 +122,7 @@ var/list/nonhuman_positions = list(
)
var/list/whitelisted_positions = list(
- "Blueshield",
+ "Blueshield"
)
/proc/guest_jobbans(var/job)
diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm
index f28de56dc41..c7c037ddd5d 100644
--- a/code/game/jobs/whitelist.dm
+++ b/code/game/jobs/whitelist.dm
@@ -5,11 +5,39 @@ var/list/whitelist = list()
/proc/load_whitelist()
whitelist = file2list(WHITELISTFILE)
if(!whitelist.len) whitelist = null
-
-/proc/check_whitelist(mob/M /*, var/rank*/)
+/*
+/proc/check_whitelist(mob/M, var/rank)
if(!whitelist)
return 0
return ("[M.ckey]" in whitelist)
+*/
+
+/proc/is_job_whitelisted(mob/M, var/rank)
+ if (guest_jobbans(rank))
+ if(!config.usewhitelist)
+ return 1
+ if(check_rights(R_ADMIN, 0))
+ return 1
+ if(!dbcon.IsConnected())
+ usr << "\red Unable to connect to whitelist database. Please try again later.
"
+ return 0
+ else
+ var/DBQuery/query = dbcon.NewQuery("SELECT job FROM whitelist WHERE ckey='[M.ckey]'")
+ query.Execute()
+
+
+ while(query.NextRow())
+ var/joblist = query.item[1]
+ if(joblist!="*")
+ var/allowed_jobs = text2list(joblist,",")
+ if(rank in allowed_jobs) return 1
+ else return 1
+ return 0
+ else
+ return 1
+
+
+
var/list/alien_whitelist = list()
@@ -30,13 +58,28 @@ proc/load_alienwhitelist()
return 1
if(!alien_whitelist)
return 0
+ if(!dbcon.IsConnected())
+ usr << "\red Unable to connect to whitelist database. Please try again later.
"
+ return 0
+ else
+ var/DBQuery/query = dbcon.NewQuery("SELECT species FROM whitelist WHERE ckey='[M.ckey]'")
+ query.Execute()
+
+ while(query.NextRow())
+ var/specieslist = query.item[1]
+ if(specieslist!="*")
+ var/allowed_species = text2list(specieslist,",")
+ if(species in allowed_species) return 1
+ else return 1
+ return 0
+/*
if(M && species)
for (var/s in alien_whitelist)
if(findtext(s,"[M.ckey] - [species]"))
return 1
if(findtext(s,"[M.ckey] - All"))
return 1
+*/
- return 0
#undef WHITELISTFILE
\ No newline at end of file
diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm
index 3779a6e9fec..dff676bfbf8 100644
--- a/code/modules/admin/banjob.dm
+++ b/code/modules/admin/banjob.dm
@@ -19,10 +19,10 @@ var/jobban_keylist[0] //to store the keys & ranks
//if(_jobban_isbanned(M, rank)) return "Reason Unspecified" //for old jobban
if (guest_jobbans(rank))
- // if(config.guest_jobban && IsGuestKey(M.key))
- // return "Guest Job-ban"
- if(config.usewhitelist && !check_whitelist(M))
- return "Karma Job"
+ if(config.guest_jobban && IsGuestKey(M.key))
+ return "Guest Job-ban"
+// if(config.usewhitelist && !check_whitelist(M))
+// return "Karma Job"
for (var/s in jobban_keylist)
if( findtext(s,"[M.ckey] - [rank]") == 1 )
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index e755856f20a..5ca753adace 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -413,6 +413,9 @@ datum/preferences
HTML += "