12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- --- Set privilege to org members
- -- @module priv_to_org
- -- Allows initiator to grant a priv they have to all members of an org
- local priv_to_org = {
- name = "Set privilege to org members",
- slug = "priv_to_org",
- desc = "Allows initiator to grant a priv they have to all members of an org"
- }
- priv_to_org.data = {
- }
- priv_to_org.config = {
- }
- --- (Required): initiate function
- -- @param result (optional) Callback if this module is embedded in other modules
- -- @function initiate
- function priv_to_org:initiate(result)
- local player_privs = minetest.get_player_privs(self.initiator)
- -- construct table for display
- local player_privs_table = {}
- for k,v in pairs(player_privs) do
- if player_privs[k] then
- table.insert(player_privs_table,k)
- end
- end
- modpol.interactions.dropdown_query(
- self.initiator,
- "Which privilege do you want to share with members of "..self.org.name.."?",
- player_privs_table,
- function(input)
- modpol.interactions.org_dashboard(self.initiator,self.org.id)
- for i,member in ipairs(self.org.members) do
- local member_privs = minetest.get_player_privs(member)
- member_privs[input] = true
- minetest.set_player_privs(member, member_privs)
- end
- local message = self.initiator .. " added " .. input ..
- " privilege to all members of " .. self.org.name
- modpol.interactions.message_org(self.initiator, self.org.id, message)
- end)
- -- call result function
- if result then result() end
- end
- --- (Required) Add to module table
- modpol.modules.priv_to_org = priv_to_org
|