Software / code / prosody
Comparison
plugins/mod_admin_adhoc.lua @ 5135:52eafe0e9772
mod_admin_adhoc: Add commands for activating and deactivating hosts
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 19 Sep 2012 15:12:18 +0200 |
| parent | 5100:65207b768f60 |
| child | 5202:ff0d0cd07c43 |
comparison
equal
deleted
inserted
replaced
| 5134:43c5227fdd3b | 5135:52eafe0e9772 |
|---|---|
| 15 local usermanager_user_exists = require "core.usermanager".user_exists; | 15 local usermanager_user_exists = require "core.usermanager".user_exists; |
| 16 local usermanager_create_user = require "core.usermanager".create_user; | 16 local usermanager_create_user = require "core.usermanager".create_user; |
| 17 local usermanager_delete_user = require "core.usermanager".delete_user; | 17 local usermanager_delete_user = require "core.usermanager".delete_user; |
| 18 local usermanager_get_password = require "core.usermanager".get_password; | 18 local usermanager_get_password = require "core.usermanager".get_password; |
| 19 local usermanager_set_password = require "core.usermanager".set_password; | 19 local usermanager_set_password = require "core.usermanager".set_password; |
| 20 local hostmanager_activate = require "core.hostmanager".activate; | |
| 21 local hostmanager_deactivate = require "core.hostmanager".deactivate; | |
| 20 local is_admin = require "core.usermanager".is_admin; | 22 local is_admin = require "core.usermanager".is_admin; |
| 21 local rm_load_roster = require "core.rostermanager".load_roster; | 23 local rm_load_roster = require "core.rostermanager".load_roster; |
| 22 local st, jid, uuid = require "util.stanza", require "util.jid", require "util.uuid"; | 24 local st, jid, uuid = require "util.stanza", require "util.jid", require "util.uuid"; |
| 23 local timer_add_task = require "util.timer".add_task; | 25 local timer_add_task = require "util.timer".add_task; |
| 24 local dataforms_new = require "util.dataforms".new; | 26 local dataforms_new = require "util.dataforms".new; |
| 604 local modules = array.collect(keys(hosts[data.to].modules)):sort(); | 606 local modules = array.collect(keys(hosts[data.to].modules)):sort(); |
| 605 return { status = "executing", actions = {"next", "complete", default = "complete"}, form = { layout = layout; values = { modules = modules } } }, "executing"; | 607 return { status = "executing", actions = {"next", "complete", default = "complete"}, form = { layout = layout; values = { modules = modules } } }, "executing"; |
| 606 end | 608 end |
| 607 end | 609 end |
| 608 | 610 |
| 611 function activate_host_handler(self, data, state) | |
| 612 local layout = dataforms_new { | |
| 613 title = "Activate host"; | |
| 614 instructions = ""; | |
| 615 | |
| 616 { name = "FORM_TYPE", type = "hidden", value = "http://prosody.im/protocol/hosts#activate" }; | |
| 617 { name = "host", type = "text-single", required = true, label = "Host:"}; | |
| 618 }; | |
| 619 if state then | |
| 620 if data.action == "cancel" then | |
| 621 return { status = "canceled" }; | |
| 622 end | |
| 623 local fields, err = layout:data(data.form); | |
| 624 if err then | |
| 625 return generate_error_message(err); | |
| 626 end | |
| 627 local ok, err = hostmanager_activate(fields.host); | |
| 628 | |
| 629 if ok then | |
| 630 return { status = "completed", info = fields.host .. " activated" }; | |
| 631 else | |
| 632 return { status = "canceled", error = err } | |
| 633 end | |
| 634 else | |
| 635 return { status = "executing", actions = {"next", "complete", default = "complete"}, form = { layout = layout } }, "executing"; | |
| 636 end | |
| 637 end | |
| 638 | |
| 639 function deactivate_host_handler(self, data, state) | |
| 640 local layout = dataforms_new { | |
| 641 title = "Deactivate host"; | |
| 642 instructions = ""; | |
| 643 | |
| 644 { name = "FORM_TYPE", type = "hidden", value = "http://prosody.im/protocol/hosts#activate" }; | |
| 645 { name = "host", type = "text-single", required = true, label = "Host:"}; | |
| 646 }; | |
| 647 if state then | |
| 648 if data.action == "cancel" then | |
| 649 return { status = "canceled" }; | |
| 650 end | |
| 651 local fields, err = layout:data(data.form); | |
| 652 if err then | |
| 653 return generate_error_message(err); | |
| 654 end | |
| 655 local ok, err = hostmanager_deactivate(fields.host); | |
| 656 | |
| 657 if ok then | |
| 658 return { status = "completed", info = fields.host .. " deactivated" }; | |
| 659 else | |
| 660 return { status = "canceled", error = err } | |
| 661 end | |
| 662 else | |
| 663 return { status = "executing", actions = {"next", "complete", default = "complete"}, form = { layout = layout } }, "executing"; | |
| 664 end | |
| 665 end | |
| 666 | |
| 667 | |
| 609 local add_user_desc = adhoc_new("Add User", "http://jabber.org/protocol/admin#add-user", add_user_command_handler, "admin"); | 668 local add_user_desc = adhoc_new("Add User", "http://jabber.org/protocol/admin#add-user", add_user_command_handler, "admin"); |
| 610 local change_user_password_desc = adhoc_new("Change User Password", "http://jabber.org/protocol/admin#change-user-password", change_user_password_command_handler, "admin"); | 669 local change_user_password_desc = adhoc_new("Change User Password", "http://jabber.org/protocol/admin#change-user-password", change_user_password_command_handler, "admin"); |
| 611 local config_reload_desc = adhoc_new("Reload configuration", "http://prosody.im/protocol/config#reload", config_reload_handler, "global_admin"); | 670 local config_reload_desc = adhoc_new("Reload configuration", "http://prosody.im/protocol/config#reload", config_reload_handler, "global_admin"); |
| 612 local delete_user_desc = adhoc_new("Delete User", "http://jabber.org/protocol/admin#delete-user", delete_user_command_handler, "admin"); | 671 local delete_user_desc = adhoc_new("Delete User", "http://jabber.org/protocol/admin#delete-user", delete_user_command_handler, "admin"); |
| 613 local end_user_session_desc = adhoc_new("End User Session", "http://jabber.org/protocol/admin#end-user-session", end_user_session_handler, "admin"); | 672 local end_user_session_desc = adhoc_new("End User Session", "http://jabber.org/protocol/admin#end-user-session", end_user_session_handler, "admin"); |
| 618 local list_modules_desc = adhoc_new("List loaded modules", "http://prosody.im/protocol/modules#list", list_modules_handler, "admin"); | 677 local list_modules_desc = adhoc_new("List loaded modules", "http://prosody.im/protocol/modules#list", list_modules_handler, "admin"); |
| 619 local load_module_desc = adhoc_new("Load module", "http://prosody.im/protocol/modules#load", load_module_handler, "admin"); | 678 local load_module_desc = adhoc_new("Load module", "http://prosody.im/protocol/modules#load", load_module_handler, "admin"); |
| 620 local reload_modules_desc = adhoc_new("Reload modules", "http://prosody.im/protocol/modules#reload", reload_modules_handler, "admin"); | 679 local reload_modules_desc = adhoc_new("Reload modules", "http://prosody.im/protocol/modules#reload", reload_modules_handler, "admin"); |
| 621 local shut_down_service_desc = adhoc_new("Shut Down Service", "http://jabber.org/protocol/admin#shutdown", shut_down_service_handler, "global_admin"); | 680 local shut_down_service_desc = adhoc_new("Shut Down Service", "http://jabber.org/protocol/admin#shutdown", shut_down_service_handler, "global_admin"); |
| 622 local unload_modules_desc = adhoc_new("Unload modules", "http://prosody.im/protocol/modules#unload", unload_modules_handler, "admin"); | 681 local unload_modules_desc = adhoc_new("Unload modules", "http://prosody.im/protocol/modules#unload", unload_modules_handler, "admin"); |
| 682 local activate_host_desc = adhoc_new("Activate host", "http://prosody.im/protocol/hosts#activate", activate_host_handler, "global_admin"); | |
| 683 local deactivate_host_desc = adhoc_new("Deactivate host", "http://prosody.im/protocol/hosts#deactivate", deactivate_host_handler, "global_admin"); | |
| 623 | 684 |
| 624 module:provides("adhoc", add_user_desc); | 685 module:provides("adhoc", add_user_desc); |
| 625 module:provides("adhoc", change_user_password_desc); | 686 module:provides("adhoc", change_user_password_desc); |
| 626 module:provides("adhoc", config_reload_desc); | 687 module:provides("adhoc", config_reload_desc); |
| 627 module:provides("adhoc", delete_user_desc); | 688 module:provides("adhoc", delete_user_desc); |
| 633 module:provides("adhoc", list_modules_desc); | 694 module:provides("adhoc", list_modules_desc); |
| 634 module:provides("adhoc", load_module_desc); | 695 module:provides("adhoc", load_module_desc); |
| 635 module:provides("adhoc", reload_modules_desc); | 696 module:provides("adhoc", reload_modules_desc); |
| 636 module:provides("adhoc", shut_down_service_desc); | 697 module:provides("adhoc", shut_down_service_desc); |
| 637 module:provides("adhoc", unload_modules_desc); | 698 module:provides("adhoc", unload_modules_desc); |
| 699 module:provides("adhoc", activate_host_desc); | |
| 700 module:provides("adhoc", deactivate_host_desc); |