diff options
Diffstat (limited to '')
-rw-r--r-- | Core/web_whitelist.lua | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/Core/web_whitelist.lua b/Core/web_whitelist.lua new file mode 100644 index 000000000..61cc6fd8b --- /dev/null +++ b/Core/web_whitelist.lua @@ -0,0 +1,79 @@ +local function HTMLDeleteButton( name ) + return "<form method=\"POST\"><input type=\"hidden\" name=\"whitelist-delete\" value=\"".. name .."\"><input type=\"submit\" value=\"Remove from whitelist\"></form>" +end + +function HandleRequest_WhiteList( Request ) + local UpdateMessage = "" + if( Request.PostParams["whitelist-add"] ~= nil ) then + local PlayerName = Request.PostParams["whitelist-add"] + + if( WhiteListIni:GetValueB("WhiteList", PlayerName, false) == true ) then + UpdateMessage = "<b>".. PlayerName.."</b> is already on the whitelist" + else + WhiteListIni:SetValueB("WhiteList", PlayerName, true ) + UpdateMessage = "Added <b>" .. PlayerName .. "</b> to whitelist." + WhiteListIni:WriteFile() + end + elseif( Request.PostParams["whitelist-delete"] ~= nil ) then + local PlayerName = Request.PostParams["whitelist-delete"] + WhiteListIni:DeleteValue( "WhiteList", PlayerName ) + UpdateMessage = "Removed <b>" .. PlayerName .. "</b> from whitelist." + WhiteListIni:WriteFile() + elseif( Request.PostParams["whitelist-reload"] ~= nil ) then + WhiteListIni:Erase() -- Empty entire loaded ini first, otherwise weird shit goes down + WhiteListIni:ReadFile() + UpdateMessage = "Loaded from disk" + elseif( Request.Params["whitelist-setenable"] ~= nil ) then + local Enabled = Request.Params["whitelist-setenable"] + local CreateNewValue = false + if( WhiteListIni:FindValue( WhiteListIni:FindKey("WhiteListSettings"), "WhiteListOn" ) == cIniFile.noID ) then -- Find out whether the value is in the ini + CreateNewValue = true + end + + if( Enabled == "1" ) then + WhiteListIni:SetValueB("WhiteListSettings", "WhiteListOn", true, CreateNewValue ) + else + WhiteListIni:SetValueB("WhiteListSettings", "WhiteListOn", false, CreateNewValue ) + end + WhiteListIni:WriteFile() + end + + + local Content = "" + + local WhiteListEnabled = WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false) + if( WhiteListEnabled == false ) then + Content = Content .. "<p>Whitelist is currently disabled! Click <a href='?whitelist-setenable=1'>here</a> to enable.</p>" + end + + + Content = Content .. "<h4>Whitelisted players</h4>" + Content = Content .. "<table>" + local KeyNum = WhiteListIni:FindKey("WhiteList") + local NumValues = WhiteListIni:GetNumValues(KeyNum) + if( NumValues > 0 ) then + for Num = 0, NumValues-1 do + if( WhiteListIni:GetValue(KeyNum, Num, "0") == "1" ) then + local PlayerName = WhiteListIni:GetValueName(KeyNum, Num ) + Content = Content .. "<tr><td>" .. PlayerName .. "</td><td>" .. HTMLDeleteButton( PlayerName ) .. "</td></tr>" + end + end + else + Content = Content .. "<tr><td>None</td></tr>" + end + Content = Content .. "</table>" + Content = Content .. "<br><h4>Add player to whitelist</h4>" + Content = Content .. "<form method=\"POST\">" + Content = Content .. "<input type=\"text\" name=\"whitelist-add\"><input type=\"submit\" value=\"Add player\">" + Content = Content .. "</form>" + Content = Content .. "<form method=\"POST\">" + Content = Content .. "<input type=\"submit\" name=\"whitelist-reload\" value=\"Reload from disk\">" + Content = Content .. "</form>" + Content = Content .. "<br>"..UpdateMessage + + if( WhiteListEnabled == true ) then + Content = Content .. "<br><br><p>Whitelist is currently enabled, click <a href='?whitelist-setenable=0'>here</a> to disable.</p>" + end + + return Content +end
\ No newline at end of file |