Files
modpol/modpol_core/modules/remove_member.lua
T

70 lines
2.0 KiB
Lua
Raw Normal View History

2022-08-09 17:00:24 -06:00
--- Removes member from org
-- @module remove_member
2022-08-09 17:00:24 -06:00
local remove_member = {
name = "Remove a member",
slug = "remove_member",
desc = "Removes org member"
}
2022-08-09 17:00:24 -06:00
remove_member.data = {
member_to_remove = "",
result = nil
}
2022-08-09 17:00:24 -06:00
remove_member.config = {
approval_module = false
}
--- Removes given member from org
2022-08-09 17:00:24 -06:00
-- @function remove_member:initiate
-- @param result Callback if this module is embedded in other modules
2022-08-09 17:00:24 -06:00
function remove_member:initiate(result)
-- Abort if in root org
if self.org == modpol.instance then
modpol.interactions.message(
self.initiator,
"Members cannot be removed from the root org")
2022-08-09 17:00:24 -06:00
modpol.interactions.org_dashboard(
self.initiator, self.org.name)
if result then result() end
self.org:delete_process(self.id)
else -- proceed if not root
self.data.result = result
modpol.interactions.dropdown_query(
self.initiator,
"Which member of org "..self.org.name..
" do you want to remove?",
self.org.members,
function(input)
self.data.member_to_remove = input
self:call_module(
2022-08-09 17:00:24 -06:00
self.config.approval_module,
self.initiator,
{
prompt = "Remove "..input..
2022-08-09 17:00:24 -06:00
" from org "..self.org.name.."?"
},
function()
self:complete()
end)
modpol.interactions.org_dashboard(
self.initiator, self.org.name)
end)
end
end
--- Complete after consent
2022-08-09 17:00:24 -06:00
-- @function remove_member:complete
function remove_member:complete()
modpol.interactions.message_org(
self.initiator, self.org.id,
2022-08-09 17:00:24 -06:00
"Removing "..
self.data.member_to_remove..
" from org "..self.org.name)
self.org:remove_member(self.data.member_to_remove)
self.org:delete_process(self.id)
if self.data.result then self.data.result() end
end
2022-08-09 17:00:24 -06:00
modpol.modules.remove_member = remove_member