-- Compiled with roblox-ts v1.2.7 local TS = _G[script] local ZirconLogLevel = TS.import(script, script.Parent.Parent, "Client", "Types").ZirconLogLevel local GetCommandService = TS.import(script, script.Parent.Parent, "Services").GetCommandService local function createPermissionMiddleware(permission) local permissionMiddleware = function(nxt, event) local registry = GetCommandService("RegistryService") local log = GetCommandService("LogService") return function(sender, ...) local args = { ... } local groups = registry.GetGroupsWithPermission(permission) local _arg0 = function(f) return f:HasMember(sender) end -- ▼ ReadonlyArray.find ▼ local _result = nil for _i, _v in ipairs(groups) do if _arg0(_v, _i - 1, groups) == true then _result = _v break end end -- ▲ ReadonlyArray.find ▲ local matchingGroup = _result if matchingGroup ~= nil then return nxt(sender, unpack(args)) else log.Write(ZirconLogLevel.Error, "NetPermissionMiddleware", "Request to {} by user {} denied.", { Variables = { event:GetInstance().Name, sender }, }) warn("[Zircon] Request to '" .. (event:GetInstance():GetFullName() .. ("' by user '" .. (tostring(sender) .. "' denied.")))) end end end return permissionMiddleware end return { default = createPermissionMiddleware, }