diff options
Diffstat (limited to '')
-rw-r--r-- | ChangeLog | 24 | ||||
-rw-r--r-- | src/ejabberd_s2s_out.erl | 31 | ||||
-rw-r--r-- | src/mod_configure.erl | 68 | ||||
-rw-r--r-- | src/mod_irc/mod_irc.erl | 2 | ||||
-rw-r--r-- | src/mod_muc/mod_muc.erl | 2 | ||||
-rw-r--r-- | src/mod_muc/mod_muc_room.erl | 39 | ||||
-rw-r--r-- | src/mod_pubsub/mod_pubsub.erl | 2 | ||||
-rw-r--r-- | src/mod_vcard.erl | 4 | ||||
-rw-r--r-- | src/mod_vcard_ldap.erl | 4 | ||||
-rw-r--r-- | src/mod_vcard_odbc.erl | 4 | ||||
-rw-r--r-- | src/msgs/es.msg | 50 | ||||
-rw-r--r-- | src/web/ejabberd_web.erl | 6 | ||||
-rw-r--r-- | src/web/ejabberd_web_admin.erl | 4 |
13 files changed, 166 insertions, 74 deletions
@@ -1,3 +1,27 @@ +2006-02-05 Alexey Shchepin <alexey@sevcom.net> + + * src/mod_muc/mod_muc_room.erl: Kick non-members when room + reconfigured to be member-only or when membership is revoked in + member-only room, allowed "true" and "false" in x:data forms + (thanks to Sergei Golovan) + + * src/mod_configure.erl: Added "Host" parameter to get_form and + set_form functions (thanks to Sergei Golovan) + + * src/ejabberd_s2s_out.erl: Bugfix + + * src/msgs/es.msg: Updated (thanks to Badlop) + + * src/web/ejabberd_web.erl: Bugfix (thanks to Badlop) + + * src/mod_irc/mod_irc.erl: Updated copyright dates + * src/mod_muc/mod_muc.erl: Likewise + * src/mod_pubsub/mod_pubsub.erl: Likewise + * src/mod_vcard.erl: Likewise + * src/mod_vcard_ldap.erl: Likewise + * src/mod_vcard_odbc.erl: Likewise + * src/web/ejabberd_web_admin.erl: Likewise + 2006-02-03 Alexey Shchepin <alexey@sevcom.net> * src/ejabberd_auth_odbc.erl: Added ejabberd_odbc_sup to ejabberd diff --git a/src/ejabberd_s2s_out.erl b/src/ejabberd_s2s_out.erl index 13ffb81a..185e517c 100644 --- a/src/ejabberd_s2s_out.erl +++ b/src/ejabberd_s2s_out.erl @@ -25,6 +25,7 @@ wait_for_features/2, wait_for_auth_result/2, wait_for_starttls_proceed/2, + reopen_socket/2, stream_established/2, handle_event/3, handle_sync_event/4, @@ -209,10 +210,9 @@ wait_for_stream({xmlstreamstart, Name, Attrs}, StateData) -> ?INFO_MSG("restarted: ~p", [{StateData#state.myname, StateData#state.server}]), % TODO: clear message queue - (StateData#state.sockmod):close(StateData#state.socket), - gen_fsm:send_event(self(), init), - {next_state, open_socket, StateData#state{socket = undefined, - use_v10 = false}}; + ejabberd_receiver:close(StateData#state.receiver), + {next_state, reopen_socket, StateData#state{socket = undefined, + use_v10 = false}}; _ -> send_text(StateData, ?INVALID_NAMESPACE_ERR), {stop, normal, StateData} @@ -351,9 +351,8 @@ wait_for_features({xmlstreamelement, El}, StateData) -> StartTLSRequired and (not StateData#state.tls) -> ?INFO_MSG("restarted: ~p", [{StateData#state.myname, StateData#state.server}]), - (StateData#state.sockmod):close(StateData#state.socket), - gen_fsm:send_event(self(), init), - {next_state, open_socket, + ejabberd_receiver:close(StateData#state.receiver), + {next_state, reopen_socket, StateData#state{socket = undefined, use_v10 = false}}; true -> @@ -409,9 +408,8 @@ wait_for_auth_result({xmlstreamelement, El}, StateData) -> ?NS_SASL -> ?INFO_MSG("restarted: ~p", [{StateData#state.myname, StateData#state.server}]), - (StateData#state.sockmod):close(StateData#state.socket), - gen_fsm:send_event(self(), init), - {next_state, open_socket, + ejabberd_receiver:close(StateData#state.receiver), + {next_state, reopen_socket, StateData#state{socket = undefined}}; _ -> send_text(StateData, @@ -498,6 +496,19 @@ wait_for_starttls_proceed(closed, StateData) -> {stop, normal, StateData}. +reopen_socket({xmlstreamelement, El}, StateData) -> + {next_state, reopen_socket, StateData}; +reopen_socket({xmlstreamend, Name}, StateData) -> + {next_state, reopen_socket, StateData}; +reopen_socket({xmlstreamerror, _}, StateData) -> + {next_state, reopen_socket, StateData}; +reopen_socket(timeout, StateData) -> + {stop, normal, StateData}; +reopen_socket(closed, StateData) -> + gen_fsm:send_event(self(), init), + {next_state, open_socket, StateData}. + + stream_established({xmlstreamelement, El}, StateData) -> ?INFO_MSG("stream established", []), case is_verify_res(El) of diff --git a/src/mod_configure.erl b/src/mod_configure.erl index 0a21e02b..fe8bfd65 100644 --- a/src/mod_configure.erl +++ b/src/mod_configure.erl @@ -645,7 +645,7 @@ adhoc_local_commands(Acc, From, #jid{lserver = LServer} = To, Acc end. -adhoc_local_commands(_From, _To, +adhoc_local_commands(_From, #jid{lserver = LServer} = _To, #adhoc_request{lang = Lang, node = Node, sessionid = SessionID, @@ -665,7 +665,7 @@ adhoc_local_commands(_From, _To, #adhoc_response{status = canceled}); XData == false, ActionIsExecute -> %% User requests form - case get_form(LNode, Lang) of + case get_form(LServer, LNode, Lang) of {result, Form} -> adhoc:produce_response( Request, @@ -680,7 +680,7 @@ adhoc_local_commands(_From, _To, invalid -> {error, ?ERR_BAD_REQUEST}; Fields -> - case set_form(LNode, Lang, Fields) of + case set_form(LServer, LNode, Lang, Fields) of {result, _Res} -> adhoc:produce_response( #adhoc_response{lang = Lang, @@ -730,7 +730,7 @@ adhoc_local_commands(_From, _To, -get_form(["running nodes", ENode, "DB"], Lang) -> +get_form(_Host, ["running nodes", ENode, "DB"], Lang) -> case search_running_node(ENode) of false -> {error, ?ERR_ITEM_NOT_FOUND}; @@ -766,12 +766,12 @@ get_form(["running nodes", ENode, "DB"], Lang) -> end end; -get_form(["running nodes", ENode, "modules", "stop"], Lang) -> +get_form(Host, ["running nodes", ENode, "modules", "stop"], Lang) -> case search_running_node(ENode) of false -> {error, ?ERR_ITEM_NOT_FOUND}; Node -> - case rpc:call(Node, gen_mod, loaded_modules, []) of + case rpc:call(Node, gen_mod, loaded_modules, [Host]) of {badrpc, _Reason} -> {error, ?ERR_INTERNAL_SERVER_ERROR}; Modules -> @@ -793,7 +793,7 @@ get_form(["running nodes", ENode, "modules", "stop"], Lang) -> end end; -get_form(["running nodes", ENode, "modules", "start"], Lang) -> +get_form(_Host, ["running nodes", ENode, "modules", "start"], Lang) -> {result, [{xmlelement, "x", [{"xmlns", ?NS_XDATA}], [{xmlelement, "title", [], [{xmlcdata, @@ -812,7 +812,7 @@ get_form(["running nodes", ENode, "modules", "start"], Lang) -> } ]}]}; -get_form(["running nodes", ENode, "backup", "backup"], Lang) -> +get_form(_Host, ["running nodes", ENode, "backup", "backup"], Lang) -> {result, [{xmlelement, "x", [{"xmlns", ?NS_XDATA}], [{xmlelement, "title", [], [{xmlcdata, @@ -831,7 +831,7 @@ get_form(["running nodes", ENode, "backup", "backup"], Lang) -> } ]}]}; -get_form(["running nodes", ENode, "backup", "restore"], Lang) -> +get_form(_Host, ["running nodes", ENode, "backup", "restore"], Lang) -> {result, [{xmlelement, "x", [{"xmlns", ?NS_XDATA}], [{xmlelement, "title", [], [{xmlcdata, @@ -850,7 +850,7 @@ get_form(["running nodes", ENode, "backup", "restore"], Lang) -> } ]}]}; -get_form(["running nodes", ENode, "backup", "textfile"], Lang) -> +get_form(_Host, ["running nodes", ENode, "backup", "textfile"], Lang) -> {result, [{xmlelement, "x", [{"xmlns", ?NS_XDATA}], [{xmlelement, "title", [], [{xmlcdata, @@ -869,7 +869,7 @@ get_form(["running nodes", ENode, "backup", "textfile"], Lang) -> } ]}]}; -get_form(["running nodes", ENode, "import", "file"], Lang) -> +get_form(_Host, ["running nodes", ENode, "import", "file"], Lang) -> {result, [{xmlelement, "x", [{"xmlns", ?NS_XDATA}], [{xmlelement, "title", [], [{xmlcdata, @@ -888,7 +888,7 @@ get_form(["running nodes", ENode, "import", "file"], Lang) -> } ]}]}; -get_form(["running nodes", ENode, "import", "dir"], Lang) -> +get_form(_Host, ["running nodes", ENode, "import", "dir"], Lang) -> {result, [{xmlelement, "x", [{"xmlns", ?NS_XDATA}], [{xmlelement, "title", [], [{xmlcdata, @@ -907,7 +907,7 @@ get_form(["running nodes", ENode, "import", "dir"], Lang) -> } ]}]}; -get_form(["config", "hostname"], Lang) -> +get_form(_Host, ["config", "hostname"], Lang) -> {result, [{xmlelement, "x", [{"xmlns", ?NS_XDATA}], [{xmlelement, "title", [], [{xmlcdata, @@ -925,7 +925,7 @@ get_form(["config", "hostname"], Lang) -> [{xmlelement, "value", [], [{xmlcdata, ?MYNAME}]}]} ]}]}; -get_form(["config", "acls"], Lang) -> +get_form(_Host, ["config", "acls"], Lang) -> {result, [{xmlelement, "x", [{"xmlns", ?NS_XDATA}], [{xmlelement, "title", [], [{xmlcdata, @@ -950,7 +950,7 @@ get_form(["config", "acls"], Lang) -> } ]}]}; -get_form(["config", "access"], Lang) -> +get_form(_Host, ["config", "access"], Lang) -> {result, [{xmlelement, "x", [{"xmlns", ?NS_XDATA}], [{xmlelement, "title", [], [{xmlcdata, @@ -981,7 +981,7 @@ get_form(["config", "access"], Lang) -> } ]}]}; -get_form(["config", "remusers"], Lang) -> +get_form(Host, ["config", "remusers"], Lang) -> {result, [{xmlelement, "x", [{"xmlns", ?NS_XDATA}], [{xmlelement, "title", [], [{xmlcdata, @@ -991,7 +991,7 @@ get_form(["config", "remusers"], Lang) -> [{xmlcdata, translate:translate( Lang, "Choose users to remove")}]}] ++ - case catch ejabberd_auth:dirty_get_registered_users() of + case catch ejabberd_auth:get_vh_registered_users(Host) of {'EXIT', _Reason} -> []; Users -> @@ -1001,12 +1001,12 @@ get_form(["config", "remusers"], Lang) -> end }]}; -get_form(_, _Lang) -> +get_form(_Host, _, _Lang) -> {error, ?ERR_SERVICE_UNAVAILABLE}. -set_form(["running nodes", ENode, "DB"], _Lang, XData) -> +set_form(_Host, ["running nodes", ENode, "DB"], _Lang, XData) -> case search_running_node(ENode) of false -> {error, ?ERR_ITEM_NOT_FOUND}; @@ -1040,7 +1040,7 @@ set_form(["running nodes", ENode, "DB"], _Lang, XData) -> {result, []} end; -set_form(["running nodes", ENode, "modules", "stop"], _Lang, XData) -> +set_form(Host, ["running nodes", ENode, "modules", "stop"], _Lang, XData) -> case search_running_node(ENode) of false -> {error, ?ERR_ITEM_NOT_FOUND}; @@ -1050,7 +1050,7 @@ set_form(["running nodes", ENode, "modules", "stop"], _Lang, XData) -> case Vals of ["1"] -> Module = list_to_atom(Var), - rpc:call(Node, gen_mod, stop_module, [Module]); + rpc:call(Node, gen_mod, stop_module, [Host, Module]); _ -> ok end @@ -1058,7 +1058,7 @@ set_form(["running nodes", ENode, "modules", "stop"], _Lang, XData) -> {result, []} end; -set_form(["running nodes", ENode, "modules", "start"], _Lang, XData) -> +set_form(Host, ["running nodes", ENode, "modules", "start"], _Lang, XData) -> case search_running_node(ENode) of false -> {error, ?ERR_ITEM_NOT_FOUND}; @@ -1079,7 +1079,7 @@ set_form(["running nodes", ENode, "modules", "start"], _Lang, XData) -> rpc:call(Node, gen_mod, start_module, - [Module, Args]) + [Host, Module, Args]) end, Modules), {result, []}; _ -> @@ -1094,7 +1094,7 @@ set_form(["running nodes", ENode, "modules", "start"], _Lang, XData) -> end; -set_form(["running nodes", ENode, "backup", "backup"], _Lang, XData) -> +set_form(_Host, ["running nodes", ENode, "backup", "backup"], _Lang, XData) -> case search_running_node(ENode) of false -> {error, ?ERR_ITEM_NOT_FOUND}; @@ -1117,7 +1117,7 @@ set_form(["running nodes", ENode, "backup", "backup"], _Lang, XData) -> end; -set_form(["running nodes", ENode, "backup", "restore"], _Lang, XData) -> +set_form(_Host, ["running nodes", ENode, "backup", "restore"], _Lang, XData) -> case search_running_node(ENode) of false -> {error, ?ERR_ITEM_NOT_FOUND}; @@ -1141,7 +1141,7 @@ set_form(["running nodes", ENode, "backup", "restore"], _Lang, XData) -> end; -set_form(["running nodes", ENode, "backup", "textfile"], _Lang, XData) -> +set_form(_Host, ["running nodes", ENode, "backup", "textfile"], _Lang, XData) -> case search_running_node(ENode) of false -> {error, ?ERR_ITEM_NOT_FOUND}; @@ -1164,7 +1164,7 @@ set_form(["running nodes", ENode, "backup", "textfile"], _Lang, XData) -> end; -set_form(["running nodes", ENode, "import", "file"], _Lang, XData) -> +set_form(_Host, ["running nodes", ENode, "import", "file"], _Lang, XData) -> case search_running_node(ENode) of false -> {error, ?ERR_ITEM_NOT_FOUND}; @@ -1181,7 +1181,7 @@ set_form(["running nodes", ENode, "import", "file"], _Lang, XData) -> end; -set_form(["running nodes", ENode, "import", "dir"], _Lang, XData) -> +set_form(_Host, ["running nodes", ENode, "import", "dir"], _Lang, XData) -> case search_running_node(ENode) of false -> {error, ?ERR_ITEM_NOT_FOUND}; @@ -1198,7 +1198,7 @@ set_form(["running nodes", ENode, "import", "dir"], _Lang, XData) -> end; -set_form(["config", "hostname"], _Lang, XData) -> +set_form(_Host, ["config", "hostname"], _Lang, XData) -> case lists:keysearch("hostname", 1, XData) of false -> {error, ?ERR_BAD_REQUEST}; @@ -1211,7 +1211,7 @@ set_form(["config", "hostname"], _Lang, XData) -> {error, ?ERR_BAD_REQUEST} end; -set_form(["config", "acls"], _Lang, XData) -> +set_form(_Host, ["config", "acls"], _Lang, XData) -> case lists:keysearch("acls", 1, XData) of {value, {_, Strings}} -> String = lists:foldl(fun(S, Res) -> @@ -1237,7 +1237,7 @@ set_form(["config", "acls"], _Lang, XData) -> {error, ?ERR_BAD_REQUEST} end; -set_form(["config", "access"], _Lang, XData) -> +set_form(_Host, ["config", "access"], _Lang, XData) -> SetAccess = fun(Rs) -> mnesia:transaction( @@ -1283,19 +1283,19 @@ set_form(["config", "access"], _Lang, XData) -> {error, ?ERR_BAD_REQUEST} end; -set_form(["config", "remusers"], _Lang, XData) -> +set_form(Host, ["config", "remusers"], _Lang, XData) -> lists:foreach( fun({Var, Vals}) -> case Vals of ["1"] -> - catch ejabberd_auth:remove_user(Var); + catch ejabberd_auth:remove_user(Var, Host); _ -> ok end end, XData), {result, []}; -set_form(_, _Lang, _XData) -> +set_form(_Host, _, _Lang, _XData) -> {error, ?ERR_SERVICE_UNAVAILABLE}. diff --git a/src/mod_irc/mod_irc.erl b/src/mod_irc/mod_irc.erl index 6c36a71b..e3ce2726 100644 --- a/src/mod_irc/mod_irc.erl +++ b/src/mod_irc/mod_irc.erl @@ -307,7 +307,7 @@ iq_get_vcard(Lang) -> "http://ejabberd.jabberstudio.org/"}]}, {xmlelement, "DESC", [], [{xmlcdata, translate:translate(Lang, "ejabberd IRC module\n" - "Copyright (c) 2003-2005 Alexey Shchepin")}]}]. + "Copyright (c) 2003-2006 Alexey Shchepin")}]}]. process_register(Host, From, To, #iq{} = IQ) -> case catch process_irc_register(Host, From, To, IQ) of diff --git a/src/mod_muc/mod_muc.erl b/src/mod_muc/mod_muc.erl index 742565a6..6e40d0bd 100644 --- a/src/mod_muc/mod_muc.erl +++ b/src/mod_muc/mod_muc.erl @@ -581,7 +581,7 @@ iq_get_vcard(Lang) -> "http://ejabberd.jabberstudio.org/"}]}, {xmlelement, "DESC", [], [{xmlcdata, translate:translate(Lang, "ejabberd MUC module\n" - "Copyright (c) 2003-2005 Alexey Shchepin")}]}]. + "Copyright (c) 2003-2006 Alexey Shchepin")}]}]. broadcast_service_message(Host, Msg) -> diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl index 7c66c2c1..51c2d2d1 100644 --- a/src/mod_muc/mod_muc_room.erl +++ b/src/mod_muc/mod_muc_room.erl @@ -1564,6 +1564,18 @@ process_admin_items_set(UJID, Items, Lang, StateData) -> catch send_kickban_presence( JID, Reason, "307", SD), set_role(JID, none, SD); + {JID, affiliation, none, Reason} -> + case (SD#state.config)#config.members_only of + true -> + catch send_kickban_presence( + JID, Reason, "321", SD), + SD1 = set_affiliation(JID, none, SD), + set_role(JID, none, SD1); + _ -> + SD1 = set_affiliation(JID, none, SD), + send_update_presence(JID, SD1), + SD1 + end; {JID, affiliation, outcast, Reason} -> catch send_kickban_presence( JID, Reason, "301", SD), @@ -2105,7 +2117,9 @@ set_config(XEl, StateData) -> -define(SET_BOOL_XOPT(Opt, Val), case Val of "0" -> set_xoption(Opts, Config#config{Opt = false}); + "false" -> set_xoption(Opts, Config#config{Opt = false}); "1" -> set_xoption(Opts, Config#config{Opt = true}); + "true" -> set_xoption(Opts, Config#config{Opt = true}); _ -> {error, ?ERR_BAD_REQUEST} end). @@ -2159,8 +2173,29 @@ change_config(Config, StateData) -> mod_muc:forget_room(NSD#state.host, NSD#state.room); {false, false} -> ok - end, - {result, [], NSD}. + end, + case {(StateData#state.config)#config.members_only, + Config#config.members_only} of + {false, true} -> + NSD1 = remove_nonmembers(NSD), + {result, [], NSD1}; + _ -> + {result, [], NSD} + end. + +remove_nonmembers(StateData) -> + lists:foldl( + fun({_LJID, #user{jid = JID}}, SD) -> + Affiliation = get_affiliation(JID, SD), + case Affiliation of + none -> + catch send_kickban_presence( + JID, "", "322", SD), + set_role(JID, none, SD); + _ -> + SD + end + end, StateData, ?DICT:to_list(StateData#state.users)). -define(CASE_CONFIG_OPT(Opt), diff --git a/src/mod_pubsub/mod_pubsub.erl b/src/mod_pubsub/mod_pubsub.erl index 7c3353a5..7439fa04 100644 --- a/src/mod_pubsub/mod_pubsub.erl +++ b/src/mod_pubsub/mod_pubsub.erl @@ -395,7 +395,7 @@ iq_get_vcard(Lang) -> [{xmlcdata, translate:translate( Lang, "ejabberd pub/sub module\n" - "Copyright (c) 2003-2005 Alexey Shchepin")}]}]. + "Copyright (c) 2003-2006 Alexey Shchepin")}]}]. iq_pubsub(Host, From, Type, SubEl) -> diff --git a/src/mod_vcard.erl b/src/mod_vcard.erl index b768bb88..b1b46e3c 100644 --- a/src/mod_vcard.erl +++ b/src/mod_vcard.erl @@ -147,7 +147,7 @@ process_local_iq(_From, _To, #iq{type = Type, lang = Lang, sub_el = SubEl} = IQ) translate:translate( Lang, "Erlang Jabber Server\n" - "Copyright (c) 2002-2005 Alexey Shchepin")}]}, + "Copyright (c) 2002-2006 Alexey Shchepin")}]}, {xmlelement, "BDAY", [], [{xmlcdata, "2002-11-16"}]} ]}]} @@ -416,7 +416,7 @@ iq_get_vcard(Lang) -> [{xmlcdata, translate:translate( Lang, "ejabberd vCard module\n" - "Copyright (c) 2003-2005 Alexey Shchepin")}]}]. + "Copyright (c) 2003-2006 Alexey Shchepin")}]}]. find_xdata_el({xmlelement, _Name, _Attrs, SubEls}) -> find_xdata_el1(SubEls). diff --git a/src/mod_vcard_ldap.erl b/src/mod_vcard_ldap.erl index d598c282..332c36cf 100644 --- a/src/mod_vcard_ldap.erl +++ b/src/mod_vcard_ldap.erl @@ -108,7 +108,7 @@ process_local_iq(_From, _To, #iq{type = Type, lang = Lang, sub_el = SubEl} = IQ) translate:translate( Lang, "Erlang Jabber Server\n" - "Copyright (c) 2002-2005 Alexey Shchepin")}]}, + "Copyright (c) 2002-2006 Alexey Shchepin")}]}, {xmlelement, "BDAY", [], [{xmlcdata, "2002-11-16"}]} ]}]} @@ -374,7 +374,7 @@ iq_get_vcard(Lang) -> [{xmlcdata, translate:translate( Lang, "ejabberd vCard module\n" - "Copyright (c) 2003-2005 Alexey Shchepin")}]}]. + "Copyright (c) 2003-2006 Alexey Shchepin")}]}]. find_xdata_el({xmlelement, _Name, _Attrs, SubEls}) -> find_xdata_el1(SubEls). diff --git a/src/mod_vcard_odbc.erl b/src/mod_vcard_odbc.erl index 4a143201..521adf18 100644 --- a/src/mod_vcard_odbc.erl +++ b/src/mod_vcard_odbc.erl @@ -111,7 +111,7 @@ process_local_iq(_From, _To, #iq{type = Type, lang = Lang, sub_el = SubEl} = IQ) translate:translate( Lang, "Erlang Jabber Server\n" - "Copyright (c) 2002-2005 Alexey Shchepin")}]}, + "Copyright (c) 2002-2006 Alexey Shchepin")}]}, {xmlelement, "BDAY", [], [{xmlcdata, "2002-11-16"}]} ]}]} @@ -413,7 +413,7 @@ iq_get_vcard(Lang) -> [{xmlcdata, translate:translate( Lang, "ejabberd vCard module\n" - "Copyright (c) 2003-2005 Alexey Shchepin")}]}]. + "Copyright (c) 2003-2006 Alexey Shchepin")}]}]. find_xdata_el({xmlelement, _Name, _Attrs, SubEls}) -> find_xdata_el1(SubEls). diff --git a/src/msgs/es.msg b/src/msgs/es.msg index 742a02b0..b7026b80 100644 --- a/src/msgs/es.msg +++ b/src/msgs/es.msg @@ -116,7 +116,7 @@ {"Only service administrators are allowed to send service messages", "Solo los administradores del servicio tienen permiso para enviar mensajes de servicio"}. {"Conference room does not exist", "La sala de conferencias no existe"}. {"Access denied by service policy", "Acceso denegado por la política del servicio"}. -{"You must fill in field \"nick\" in the form", "Debes rellenar el campo \"apodo\" en el formulario"}. +{"You must fill in field \"Nickname\" in the form", "Debes rellenar el campo \"Apodo\" en el formulario"}. {"Specified nickname is already registered", "El apodo especificado ya está registrado, tendrás que buscar otro"}. {"Room creation is denied by service policy", "Se te ha denegado crear la sala por política del servicio"}. {"ejabberd MUC module\nCopyright (c) 2003-2005 Alexey Shchepin", "Módulo de MUC para ejabbed\nCopyright (c) 2002-2005 Alexey Shchepin"}. @@ -126,20 +126,20 @@ {"You need an x:data capable client to configure room", "Necesitas un cliente con soporte de x:data para configurar la sala"}. {"Configuration for ", "Configuración para "}. {"Room title", "Título de la sala"}. -{"Allow users to change subject?", "Permitir a los usuarios cambiar el asunto"}. -{"Allow users to query other users?", "Permitir a los usuarios consultar a otros usuarios"}. -{"Allow users to send private messages?", "Permitir a los usuarios enviar mensajes privados"}. -{"Make room public searchable?", "Hacer la sala públicamente visible"}. -{"Make participants list public?", "Hacer pública la lista de participantes"}. -{"Make room persistent?", "Hacer la sala permanente"}. -{"Make room moderated?", "Hacer la sala moderada"}. -{"Default users as members?", "Los usuarios son miembros por defecto"}. -{"Make room members only?", "Hacer la sala sólo para miembros"}. -{"Allow users to send invites?", "Permitir a los usuarios enviar invitaciones"}. -{"Make room password protected?", "Proteger la sala con contraseña"}. +{"Allow users to change subject", "Permitir a los usuarios cambiar el asunto"}. +{"Allow users to query other users", "Permitir a los usuarios consultar a otros usuarios"}. +{"Allow users to send private messages", "Permitir a los usuarios enviar mensajes privados"}. +{"Make room public searchable", "Sala públicamente visible"}. +{"Make participants list public", "La lista de participantes es pública"}. +{"Make room persistent", "Sala permanente"}. +{"Make room moderated", "Sala moderada"}. +{"Default users as participants", "Los usuarios on participantes por defecto"}. +{"Make room members-only", "Sala sólo para miembros"}. +{"Allow users to send invites", "Permitir a los usuarios enviar invitaciones"}. +{"Make room password protected", "Proteger la sala con contraseña"}. {"Password", "Contraseña"}. -{"Make room anonymous?", "Hacer anónima la sala"}. -{"Enable logging?", "Guardar históricos"}. +{"This room is not anonymous", "Sala no anónima"}. +{"Enable logging", "Guardar históricos"}. {"Only moderators and participants are allowed to change subject in this room", "Solo los moderadores y participantes pueden cambiar el asunto de esta sala"}. {"Only moderators are allowed to change subject in this room", "Solo los moderadores pueden cambiar el asunto de esta sala"}. {"Visitors are not allowed to send messages to all occupants", "Los visitantes no pueden enviar mensajes a todos los ocupantes"}. @@ -165,6 +165,9 @@ {"Invalid role: ~s", "Rol no válido: ~s"}. {"Owner privileges required", "Se requieren privilegios de propietario de la sala"}. {"private, ", "privado"}. +{"Make room semianonymous", "Hacer la sala semianónima"}. +{"Description", "Descripción"}. +{"Number of occupants", "Número de ocupantes"}. % mod_irc/mod_irc.erl {"You need an x:data capable client to configure mod_irc settings", "Necesitas un cliente con soporte de x:data para configurar las opciones de mod_irc"}. @@ -289,6 +292,25 @@ {"JID", "JID"}. {"Fill in fields to search for any matching Jabber User", "Rellena campos para buscar usuarios Jabber que concuerden"}. +% mod_adhoc.erl +{"Commands", "Comandos"}. +{"Ping", "Ping"}. +{"Pong", "Pong"}. + +% mod_announce.erl +{"Really delete message of the day?", "¿Está seguro de quere borrar el mensaje del dia?"}. +{"Subject", "Asunto"}. +{"Message body", "Cuerpo del mensaje"}. +{"No body provided for announce message", "No se ha proporcionado cuerpo de mensaje para el anuncio"}. +{"Announcements", "Anuncios"}. +{"Send announcement to all users", "Enviar anuncio a todos los usuarios"}. +{"Send announcement to all online users", "Enviar anuncio a todos los usuarios conectados"}. +{"Send announcement to all online users on all hosts", "Enviar anuncio a todos los usuarios conectados en todos los dominios"}. +{"Set message of the day and send to online users", "Poner mensaje del dia y enviar a todos los usuarios conectados"}. +{"Update message of the day (don't send)", "Actualizar mensaje del dia, pero no enviarlo"}. +{"Delete message of the day", "Borrar mensaje del dia"}. + % Local Variables: % mode: erlang % End: + diff --git a/src/web/ejabberd_web.erl b/src/web/ejabberd_web.erl index 89c73830..143fbf40 100644 --- a/src/web/ejabberd_web.erl +++ b/src/web/ejabberd_web.erl @@ -84,7 +84,7 @@ process_get({_, true}, Host, Request#request{path = RPath, us = US}) end; - undefined -> + unauthorized -> {401, [{"WWW-Authenticate", "basic realm=\"ejabberd\""}], ejabberd_web:make_xhtml([{xmlelement, "h1", [], @@ -113,7 +113,7 @@ process_get({_, true}, end end; _ -> - undefined + unauthorized end, case US of {User, Server} -> @@ -126,7 +126,7 @@ process_get({_, true}, global, Request#request{path = RPath, us = US}) end; - undefined -> + unauthorized -> {401, [{"WWW-Authenticate", "basic realm=\"ejabberd\""}], ejabberd_web:make_xhtml([{xmlelement, "h1", [], diff --git a/src/web/ejabberd_web_admin.erl b/src/web/ejabberd_web_admin.erl index 46374873..c625e4a3 100644 --- a/src/web/ejabberd_web_admin.erl +++ b/src/web/ejabberd_web_admin.erl @@ -95,7 +95,7 @@ make_xhtml(Els, global, Lang) -> [?XAE("div", [{"id", "copyright"}], [?XCT("p", - "ejabberd (c) 2002-2005 Alexey Shchepin, 2004-2005 Process One") + "ejabberd (c) 2002-2006 Alexey Shchepin, 2004-2006 Process One") ])])]) ]}}; @@ -150,7 +150,7 @@ make_xhtml(Els, Host, Lang) -> [?XAE("div", [{"id", "copyright"}], [?XCT("p", - "ejabberd (c) 2002-2005 Alexey Shchepin, 2004-2005 Process One") + "ejabberd (c) 2002-2006 Alexey Shchepin, 2004-2006 Process One") ])])]) ]}}. |