diff options
author | Badlop <badlop@process-one.net> | 2021-07-29 23:13:17 +0200 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2021-07-30 01:14:27 +0200 |
commit | ccb4328d06bd39a10c2ecc109a6647cf1eafdaa9 (patch) | |
tree | bd3312fcc19051ae6ea78f66aa0101a7e80c38ab | |
parent | PubSub: Use configured 'max_items' by default (diff) |
Store who defines a command, specially when defined by ejabberd modules
Diffstat (limited to '')
-rw-r--r-- | include/ejabberd_commands.hrl | 1 | ||||
-rw-r--r-- | src/ejabberd_commands.erl | 6 | ||||
-rw-r--r-- | src/mod_admin_extra.erl | 2 | ||||
-rw-r--r-- | src/mod_admin_update_sql.erl | 2 | ||||
-rw-r--r-- | src/mod_fail2ban.erl | 2 | ||||
-rw-r--r-- | src/mod_mam.erl | 2 | ||||
-rw-r--r-- | src/mod_muc_admin.erl | 2 | ||||
-rw-r--r-- | src/mod_private.erl | 2 | ||||
-rw-r--r-- | src/mod_push.erl | 2 |
9 files changed, 13 insertions, 8 deletions
diff --git a/include/ejabberd_commands.hrl b/include/ejabberd_commands.hrl index bfef4708..d0f5ba70 100644 --- a/include/ejabberd_commands.hrl +++ b/include/ejabberd_commands.hrl @@ -59,6 +59,7 @@ policy = restricted :: open | restricted | admin | user, %% access is: [accessRuleName] or [{Module, AccessOption, DefaultAccessRuleName}] access = [] :: [{atom(),atom(),atom()}|atom()], + definer = unknown :: atom(), result = {res, rescode} :: rterm() | '_' | '$2', args_rename = [] :: [{atom(),atom()}], args_desc = none :: none | [string()] | '_', diff --git a/src/ejabberd_commands.erl b/src/ejabberd_commands.erl index 0f86f23d..8d875e82 100644 --- a/src/ejabberd_commands.erl +++ b/src/ejabberd_commands.erl @@ -41,6 +41,7 @@ get_tags_commands/0, get_tags_commands/1, register_commands/1, + register_commands/2, unregister_commands/1, get_commands_spec/0, get_commands_definition/0, @@ -129,10 +130,13 @@ code_change(_OldVsn, State, _Extra) -> -spec register_commands([ejabberd_commands()]) -> ok. register_commands(Commands) -> + register_commands(unknown, Commands). + +register_commands(Definer, Commands) -> lists:foreach( fun(Command) -> %% XXX check if command exists - mnesia:dirty_write(Command) + mnesia:dirty_write(Command#ejabberd_commands{definer = Definer}) %% ?DEBUG("This command is already defined:~n~p", [Command]) end, Commands), diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index 04cb39cf..fe0dd275 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -92,7 +92,7 @@ %%% start(_Host, _Opts) -> - ejabberd_commands:register_commands(get_commands_spec()). + ejabberd_commands:register_commands(?MODULE, get_commands_spec()). stop(Host) -> case gen_mod:is_loaded_elsewhere(Host, ?MODULE) of diff --git a/src/mod_admin_update_sql.erl b/src/mod_admin_update_sql.erl index 0215a517..eae48138 100644 --- a/src/mod_admin_update_sql.erl +++ b/src/mod_admin_update_sql.erl @@ -46,7 +46,7 @@ %%% start(_Host, _Opts) -> - ejabberd_commands:register_commands(get_commands_spec()). + ejabberd_commands:register_commands(?MODULE, get_commands_spec()). stop(_Host) -> ejabberd_commands:unregister_commands(get_commands_spec()). diff --git a/src/mod_fail2ban.erl b/src/mod_fail2ban.erl index 99ff3d12..8751653d 100644 --- a/src/mod_fail2ban.erl +++ b/src/mod_fail2ban.erl @@ -107,7 +107,7 @@ c2s_stream_started(#{ip := {Addr, _}} = State, _) -> start(Host, Opts) -> catch ets:new(failed_auth, [named_table, public, {heir, erlang:group_leader(), none}]), - ejabberd_commands:register_commands(get_commands_spec()), + ejabberd_commands:register_commands(?MODULE, get_commands_spec()), gen_mod:start_child(?MODULE, Host, Opts). stop(Host) -> diff --git a/src/mod_mam.erl b/src/mod_mam.erl index 12542bfa..e894f5f7 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -148,7 +148,7 @@ start(Host, Opts) -> ejabberd_hooks:add(check_create_room, Host, ?MODULE, check_create_room, 50) end, - ejabberd_commands:register_commands(get_commands_spec()), + ejabberd_commands:register_commands(?MODULE, get_commands_spec()), ok; Err -> Err diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index 72a29a45..360d414b 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -57,7 +57,7 @@ %%---------------------------- start(Host, _Opts) -> - ejabberd_commands:register_commands(get_commands_spec()), + ejabberd_commands:register_commands(?MODULE, get_commands_spec()), ejabberd_hooks:add(webadmin_menu_main, ?MODULE, web_menu_main, 50), ejabberd_hooks:add(webadmin_menu_host, Host, ?MODULE, web_menu_host, 50), ejabberd_hooks:add(webadmin_page_main, ?MODULE, web_page_main, 50), diff --git a/src/mod_private.erl b/src/mod_private.erl index ad36c849..36f1e8d2 100644 --- a/src/mod_private.erl +++ b/src/mod_private.erl @@ -66,7 +66,7 @@ start(Host, Opts) -> ejabberd_hooks:add(disco_sm_features, Host, ?MODULE, get_sm_features, 50), ejabberd_hooks:add(pubsub_publish_item, Host, ?MODULE, pubsub_publish_item, 50), gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_PRIVATE, ?MODULE, process_sm_iq), - ejabberd_commands:register_commands(get_commands_spec()). + ejabberd_commands:register_commands(?MODULE, get_commands_spec()). stop(Host) -> ejabberd_hooks:delete(remove_user, Host, ?MODULE, remove_user, 50), diff --git a/src/mod_push.erl b/src/mod_push.erl index b4dd4823..ea1c3e64 100644 --- a/src/mod_push.erl +++ b/src/mod_push.erl @@ -98,7 +98,7 @@ start(Host, Opts) -> init_cache(Mod, Host, Opts), register_iq_handlers(Host), register_hooks(Host), - ejabberd_commands:register_commands(get_commands_spec()). + ejabberd_commands:register_commands(?MODULE, get_commands_spec()). -spec stop(binary()) -> ok. stop(Host) -> |