Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions [admin]/admin2/client/main/admin.lua
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@ aAdminMain = {
Tab = nil,
Widgets = {},
Refresh = 0,
Hidden = false
Hidden = false,
BlockedTabsBySensitiveData = {
['bans'] = true,
['adminchat'] = true,
}
}

addEvent(EVENT_SYNC, true)
Expand Down Expand Up @@ -57,6 +61,14 @@ function aAdminMain.Open()
addEventHandler("onAdminInitialize", aAdminMain.Form, aAdminMain.Initialize)

triggerEvent("onAdminInitialize", aAdminMain.Form)

local state = aGetSetting('hideSensitiveData') or false

for k, v in ipairs(aAdminMain.Tabs) do
if aAdminMain.BlockedTabsBySensitiveData[v.Acl] then
guiSetEnabled(v.Tab, not state)
end
end
end
guiSetAlpha(aAdminMain.Form, 0)
guiBlendElement(aAdminMain.Form, 0.8)
Expand Down Expand Up @@ -108,7 +120,7 @@ end
function aAdminMain.AddTab(name, class, acl)
assert(class)
local tab = guiCreateTab(name, aAdminMain.Panel, acl)
table.insert(aAdminMain.Tabs, {Tab = tab, Class = class, Loaded = false})
table.insert(aAdminMain.Tabs, {Tab = tab, Class = class, Loaded = false, Acl = acl})
end

function aAdminMain.GetTab(tab)
Expand Down
2 changes: 1 addition & 1 deletion [admin]/admin2/client/main/admin_chat.lua
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ function aChatTab.onClientAdminChat(message)
local chat = guiGetText(aChatTab.AdminChat)
guiSetText(aChatTab.AdminChat, (chat ~= "\n" and chat or "") .. getPlayerName(source) .. ": " .. message)
guiSetProperty(aChatTab.AdminChat, "CaratIndex", tostring(string.len(chat)))
if (aGetSetting("adminChatOutput")) then
if (aGetSetting("adminChatOutput")) and (not guiCheckBoxGetSelected(aPlayersTab.SensitiveData)) then
outputChatBox("ADMIN> " .. getPlayerName(source) .. ": " .. message, 255, 0, 0)
end
if ((aGetSetting("adminChatSound")) and (source ~= getLocalPlayer())) then
Expand Down
37 changes: 29 additions & 8 deletions [admin]/admin2/client/main/admin_players.lua
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ function aPlayersTab.Create(tab)
guiGridListAddColumn(aPlayersTab.PlayerList, "Player list", 0.85)
aPlayersTab.Context = guiCreateContextMenu(aPlayersTab.PlayerList)
aPlayersTab.ContextKick = guiContextMenuAddItem(aPlayersTab.Context, "Kick")
aPlayersTab.ColorCodes = guiCreateCheckBox(0.01, 0.95, 0.25, 0.04, "Hide color codes", true, true, tab)
aPlayersTab.ColorCodes = guiCreateCheckBox(0.01, 0.95, 0.25, 0.04, "Hide color codes", aGetSetting('hideColorCodes') or false, true, tab)
aPlayersTab.SensitiveData = guiCreateCheckBox(0.2, 0.95, 0.25, 0.04, "Hide Sensitive Data", aGetSetting('hideSensitiveData') or false, true, tab)

-- Player info (middle pane)
guiCreateHeader(0.27, 0.04, 0.20, 0.04, "Player:", true, tab)
Expand Down Expand Up @@ -271,6 +272,19 @@ function aPlayersTab.onClientClick(button)
setElementData(localPlayer, "AnonAdmin", guiCheckBoxGetSelected(aPlayersTab.AnonAdmin))
elseif (source == aPlayersTab.ColorCodes) then
aPlayersTab.Refresh()
aSetSetting('hideColorCodes', guiCheckBoxGetSelected(source))
elseif (source == aPlayersTab.SensitiveData) then
local state = guiCheckBoxGetSelected(source)
aSetSetting('hideSensitiveData', state)
for k, v in ipairs(aAdminMain.Tabs) do
if aAdminMain.BlockedTabsBySensitiveData[v.Acl] then
guiSetEnabled(v.Tab, not state)
end
end
if isElement(aServerTab.Password) then
guiSetText(aServerTab.Password, "Password: " .. getSensitiveText(aServerTab['currentPassword'] or "None"))
end

elseif (source == aPlayersTab.PlayerList) then
local player = getSelectedPlayer()
if (player) then
Expand Down Expand Up @@ -442,10 +456,10 @@ function aPlayersTab.onRefresh()
end

sync(SYNC_PLAYER, player)
guiSetText(aPlayersTab.IP, "IP: " .. aPlayers[player].ip)
guiSetText(aPlayersTab.Serial, "Serial: " .. (aPlayers[player].serial or "Unknown"))
guiSetText(aPlayersTab.IP, "IP: " .. getSensitiveText(aPlayers[player].ip))
guiSetText(aPlayersTab.Serial, "Serial: " .. getSensitiveText((aPlayers[player].serial or "Unknown")))
guiSetText(aPlayersTab.Country, "Country: " .. (aPlayers[player].countryname or "Unknown"))
guiSetText(aPlayersTab.Account, "Account: " .. (aPlayers[player]["account"] or "guest"))
guiSetText(aPlayersTab.Account, "Account: " .. getSensitiveText((aPlayers[player]["account"] or "guest")))
guiSetText(aPlayersTab.Groups, "Groups: " .. (aPlayers[player]["groups"] or "None"))
if (aPlayers[player].country and string.lower(tostring(aPlayers[player].country)) ~= "zz") then
local x, y = guiGetPosition(aPlayersTab.Country, false)
Expand Down Expand Up @@ -500,10 +514,10 @@ function aPlayersTab.onRefresh()
local x, y, z = getElementPosition(player)
local area = getZoneName(x, y, z, false)
local zone = getZoneName(x, y, z, true)
guiSetText(aPlayersTab.Area, "Area: " .. iif(area == zone, area, area .. " (" .. zone .. ")"))
guiSetText(aPlayersTab.PositionX, "X: " .. x)
guiSetText(aPlayersTab.PositionY, "Y: " .. y)
guiSetText(aPlayersTab.PositionZ, "Z: " .. z)
guiSetText(aPlayersTab.Area, "Area: " .. getSensitiveText(iif(area == zone, area, area .. " (" .. zone .. ")")))
guiSetText(aPlayersTab.PositionX, "X: " .. getSensitiveText(x))
guiSetText(aPlayersTab.PositionY, "Y: " .. getSensitiveText(y))
guiSetText(aPlayersTab.PositionZ, "Z: " .. getSensitiveText(z))

local vehicle = getPedOccupiedVehicle(player)
if (vehicle) then
Expand Down Expand Up @@ -553,3 +567,10 @@ function getSelectedPlayer()
end
return nil
end

function getSensitiveText(text)
if guiCheckBoxGetSelected(aPlayersTab.SensitiveData) then
return ('*'):rep(utf8.len(text))
end
return text
end
3 changes: 2 additions & 1 deletion [admin]/admin2/client/main/admin_server.lua
Original file line number Diff line number Diff line change
Expand Up @@ -418,9 +418,10 @@ function aServerTab.onClientSync(type, table)
if (type == SYNC_SERVER) then
guiSetText(aServerTab.Server, "Server: " .. table["name"])
guiSetText(aServerTab.Players, "Players: " .. #getElementsByType("player") .. "/" .. table["players"])
guiSetText(aServerTab.Password, "Password: " .. (table["password"] or "None"))
guiSetText(aServerTab.Password, "Password: " .. getSensitiveText(table["password"] or "None"))
guiSetText(aServerTab.GameType, "Game Type: " .. (table["game"] or "None"))
guiSetText(aServerTab.MapName, "Map Name: " .. (table["map"] or "None"))
aServerTab['currentPassword'] = table['password'] or nil
end
end

Expand Down