Added the new core as a subtree.
This commit is contained in:
134
Core/web_permissions.lua
Normal file
134
Core/web_permissions.lua
Normal file
@@ -0,0 +1,134 @@
|
||||
local function HTML_Option( value, text, selected )
|
||||
if( selected == true ) then
|
||||
return [[<option value="]] .. value .. [[" selected>]] .. text .. [[</option>]]
|
||||
else
|
||||
return [[<option value="]] .. value .. [[">]] .. text .. [[</option>"]]
|
||||
end
|
||||
end
|
||||
|
||||
local function ShowUsersTable()
|
||||
local Content = "<h4>Users</h4>"
|
||||
|
||||
local NumUsers = UsersIni:GetNumKeys()
|
||||
|
||||
Content = Content .. "<table>"
|
||||
|
||||
if( NumUsers > 0 ) then
|
||||
Content = Content .. "<tr><th></th><th>User</th><th>Groups</th></tr>"
|
||||
|
||||
for i=0, NumUsers-1 do
|
||||
local UserName = UsersIni:GetKeyName( i )
|
||||
|
||||
Content = Content .. "<tr>"
|
||||
Content = Content .. "<td style='width: 10px;'>" .. i .. ".</td>"
|
||||
Content = Content .. "<td>" .. UserName .. "</td>"
|
||||
Content = Content .. "<td>"
|
||||
Content = Content .. UsersIni:GetValue( UserName, "Groups", "-" )
|
||||
Content = Content .. "</td>"
|
||||
Content = Content .. "</tr>"
|
||||
end
|
||||
else
|
||||
Content = Content .. "<tr><td>None</td></tr>"
|
||||
end
|
||||
Content = Content .. "</table>"
|
||||
|
||||
|
||||
return Content
|
||||
end
|
||||
|
||||
local function ShowGroupsTable()
|
||||
local Content = "<h4>Groups</h4>"
|
||||
|
||||
local NumGroups = GroupsIni:GetNumKeys()
|
||||
|
||||
Content = Content .. "<table>"
|
||||
if( NumGroups > 0 ) then
|
||||
Content = Content .. "<tr><th></th><th>Name</th><th>Permissions</th><th>Color</th></tr>"
|
||||
|
||||
for i=0, NumGroups-1 do
|
||||
local GroupName = GroupsIni:GetKeyName( i )
|
||||
|
||||
Content = Content .. "<tr>"
|
||||
Content = Content .. "<td style='width: 10px;'>" .. i .. ".</td>"
|
||||
Content = Content .. "<td>" .. GroupName .. "</td>"
|
||||
Content = Content .. "<td>"
|
||||
Content = Content .. GroupsIni:GetValue( GroupName, "Permissions", "-" )
|
||||
Content = Content .. "</td>"
|
||||
Content = Content .. "<td>"
|
||||
Content = Content .. GroupsIni:GetValue( GroupName, "Color", "-" )
|
||||
Content = Content .. "</td>"
|
||||
Content = Content .. "</tr>"
|
||||
end
|
||||
else
|
||||
Content = Content .. "<tr><td>None</td></tr>"
|
||||
end
|
||||
Content = Content .. "</table>"
|
||||
|
||||
return Content
|
||||
end
|
||||
|
||||
local function HTML_Select_Group( name, defaultValue )
|
||||
Groups = ""
|
||||
for I=0, GroupsIni:GetNumKeys() - 1 do
|
||||
Groups = Groups ..
|
||||
HTML_Option(GroupsIni:KeyName(I), GroupsIni:KeyName(I), defaultValue == GroupsIni:KeyName(I) )
|
||||
end
|
||||
return [[<select name="]] .. name .. [[">]] .. Groups .. [[</select>]]
|
||||
end
|
||||
|
||||
|
||||
local function AddPlayers( Request )
|
||||
local Content = "<h4>Add or change Players</h4>"
|
||||
if( Request.PostParams["AddPlayerToGroup"] ~= nil ) then
|
||||
if Request.PostParams["AddPlayer"] ~= "" then
|
||||
if Request.PostParams["AddGroups"] ~= "" then
|
||||
if GroupsIni:FindKey(Request.PostParams["AddGroup"]) == -1 then
|
||||
return "Group does not exist"
|
||||
end
|
||||
UsersIni:DeleteKey(Request.PostParams["AddPlayer"])
|
||||
UsersIni:GetValueSet(Request.PostParams["AddPlayer"], "Groups", Request.PostParams["AddGroup"])
|
||||
UsersIni:WriteFile()
|
||||
local loopPlayers = function( Player )
|
||||
if Player:GetName() == Request.PostParams["AddPlayer"] then
|
||||
Player:SendMessage( cChatColor.Green .. "You were moved to group " .. Request.PostParams["AddGroup"] )
|
||||
Player:LoadPermissionsFromDisk()
|
||||
end
|
||||
end
|
||||
local loopWorlds = function ( World )
|
||||
World:ForEachPlayer( loopPlayers )
|
||||
end
|
||||
cRoot:Get():ForEachWorld( loopWorlds )
|
||||
end
|
||||
end
|
||||
end
|
||||
Content = Content .. [[
|
||||
<form method="POST">
|
||||
<table>
|
||||
<tr><td style="width: 20%;">Player:</td>
|
||||
<td><input type="text" name="AddPlayer" value=""></td></tr><br>
|
||||
<tr><td style="width: 20%;">Group:</td>
|
||||
<td>]] .. HTML_Select_Group("AddGroup", GroupsIni:KeyName(0) ) .. [[</td></tr>
|
||||
</table>
|
||||
<input type="submit" value="Add Player" name="AddPlayerToGroup">]]
|
||||
|
||||
return Content
|
||||
end
|
||||
|
||||
function HandleRequest_Permissions( Request )
|
||||
GroupsIni = cIniFile("groups.ini")
|
||||
if( GroupsIni:ReadFile() == false ) then
|
||||
return "Could not read groups.ini!"
|
||||
end
|
||||
UsersIni = cIniFile("users.ini")
|
||||
if( UsersIni:ReadFile() == false ) then
|
||||
return "Could not read users.ini!"
|
||||
end
|
||||
|
||||
local Content = ""
|
||||
|
||||
Content = Content .. AddPlayers( Request )
|
||||
Content = Content .. ShowGroupsTable()
|
||||
Content = Content .. ShowUsersTable()
|
||||
|
||||
return Content
|
||||
end
|
||||
Reference in New Issue
Block a user