-- -- (C) 2017 - ntop.org -- dirs = ntop.getDirs() package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path require "lua_utils" local host_pools_utils = require "host_pools_utils" local template = require "template_utils" if(ntop.isPro()) then package.path = dirs.installdir .. "/pro/scripts/lua/modules/?.lua;" .. package.path shaper_utils = require "shaper_utils" end sendHTTPHeader('text/html; charset=iso-8859-1') ntop.dumpFile(dirs.installdir .. "/httpdocs/inc/header.inc") active_page = "admin" dofile(dirs.installdir .. "/scripts/lua/inc/menu.lua") if not isAdministrator() then return end if _POST["edit_pools"] ~= nil then local config = paramsPairsDecode(_POST, true) for pool_id, pool_name in pairs(config) do -- create or rename host_pools_utils.createPool(ifId, pool_id, pool_name) if(interface.isBridgeInterface(ifId) == true) then -- create default shapers shaper_utils.setProtocolShapers(ifId, pool_id, shaper_utils.POOL_SHAPER_DEFAULT_PROTO_KEY, shaper_utils.DEFAULT_SHAPER_ID --[[ ingress shaper --]], shaper_utils.DEFAULT_SHAPER_ID --[[ egress shaper --]], true) -- Set only if the key does NOT exist end end -- Note: do not call reload here elseif _POST["pool_to_delete"] ~= nil then local pool_id = _POST["pool_to_delete"] host_pools_utils.deletePool(ifId, pool_id) if(interface.isBridgeInterface(ifId) == true) then shaper_utils.flushPoolRules(ifId, pool_id) end -- Note: this will also realod the shaping rules interface.reloadHostPools() elseif (_POST["edit_members"] ~= nil) then local pool_to_edit = _POST["pool_id"] local config = paramsPairsDecode(_POST, true) -- This code handles member address changes -- delete old addresses for k,old_member in pairs(config) do if((not isEmptyString(old_member)) and (k ~= old_member)) then host_pools_utils.deleteFromPoll(ifId, pool_to_edit, old_member) end end -- add new addresses for new_member,k in pairs(config) do if k ~= new_member then host_pools_utils.addToPool(ifId, pool_to_edit, new_member) end end interface.reloadHostPools() elseif (_POST["member_to_delete"] ~= nil) then local pool_to_edit = _POST["pool_id"] host_pools_utils.deleteFromPoll(ifId, pool_to_edit, _POST["member_to_delete"]) interface.reloadHostPools() end function printPoolNameField(pool_id_str) print[[
]] print[[]] print[[
]] print[[
]] end function printMemberAddressField(member_str, origin_value_str) print[[
]] print[[]] print[[
]] print[[
]] end function printMemberVlanField(member_str) print[[
]] print[[]] print[[
]] print[[
]] end -------------------------------------------------------------------------------- local selected_pool_id = _GET["pool"] local selected_pool = nil local available_pools = host_pools_utils.getPoolsList(ifId) for _, pool in ipairs(available_pools) do if pool.id == selected_pool_id then selected_pool = pool end end if selected_pool == nil then if #available_pools == 1 then -- only the default pool is available selected_pool = available_pools[1] else selected_pool = available_pools[2] end end -------------------------------------------------------------------------------- print [[

]] print(i18n("host_pools.edit_host_pools")) print[[


]] print('
') print(i18n("host_pools.pool")) print(': \n') if no_pools then print[[]] end print[[

]] print[[




]] if isCaptivePortalActive() then print[[ NOTES: ]] end print[[
]] -- Create delete dialogs print( template.gen("modal_confirm_dialog.html", { dialog={ id = "delete_pool_dialog", action = "deletePool(delete_pool_id)", title = i18n("host_pools.delete_pool"), message = i18n("host_pools.confirm_delete_pool") .. ' "" ' .. i18n("host_pools.and_associated_members"), confirm = i18n("delete"), } }) ) print( template.gen("modal_confirm_dialog.html", { dialog={ id = "delete_member_dialog", action = "deletePoolMember(delete_member_id)", title = i18n("host_pools.remove_member"), message = i18n("host_pools.confirm_remove_member") .. ' "" ' .. i18n("host_pools.from_pool") .. ' "' .. selected_pool.name .. '" ', confirm = i18n("remove"), } }) ) -------------------------------------------------------------------------------- print[[ ]] -- ==== Manage tab ==== print [[ ]] -- ==== Create tab ==== print [[ ]] print[[ ]] dofile(dirs.installdir .. "/scripts/lua/inc/footer.lua")