From a0b99317bcb8aababd2235ecdbdcb80fb16d24d4 Mon Sep 17 00:00:00 2001 From: boatbomber Date: Sat, 8 Jul 2023 15:39:54 -0700 Subject: [PATCH] Fix editing permissions to use new request api --- plugin/src/App/StatusPages/Permissions/init.lua | 2 +- plugin/src/App/init.lua | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/plugin/src/App/StatusPages/Permissions/init.lua b/plugin/src/App/StatusPages/Permissions/init.lua index 140e8ac4..5d10736f 100644 --- a/plugin/src/App/StatusPages/Permissions/init.lua +++ b/plugin/src/App/StatusPages/Permissions/init.lua @@ -100,7 +100,7 @@ function PermissionsPage:render() ), onClick = function() - self.props.onEdit(source, meta, self.props.headlessAPI._permissions[source] or {}) + self.props.onEdit(self.props.headlessAPI._sourceToPlugin[source], source, meta, self.props.headlessAPI._permissions[source] or {}) end, }) end diff --git a/plugin/src/App/init.lua b/plugin/src/App/init.lua index 6cb47d75..bb1ce6b3 100644 --- a/plugin/src/App/init.lua +++ b/plugin/src/App/init.lua @@ -319,10 +319,10 @@ function App:requestPermission(plugin: Plugin, source: string, name: string, api Log.info("The third-party plugin '{}' is requesting permission to use the API!", name) - local unloadProtection = plugin.Unloading:Connect(function() + local unloadProtection = if plugin then plugin.Unloading:Connect(function() Log.warn("Cancelling API permission request for '{}' because the third-party plugin has been removed.", name) responseEvent:Fire(initialState) - end) + end) else nil self:setState(function(state) state.popups[source .. " Permissions"] = { @@ -345,7 +345,9 @@ function App:requestPermission(plugin: Plugin, source: string, name: string, api local response = responseEvent.Event:Wait() responseEvent:Destroy() - unloadProtection:Disconnect() + if unloadProtection then + unloadProtection:Disconnect() + end self:setState(function(state) state.popups[source .. " Permissions"] = nil @@ -687,12 +689,13 @@ function App:render() }) end, - onEdit = function(source, meta, apiMap) + onEdit = function(plugin, source, meta, apiMap) local apiList = {} for api in apiMap do table.insert(apiList, api) end self:requestPermission( + plugin, source, meta.Name .. if meta.Creator then " by " .. meta.Creator else "", apiList,