Erlang 当用户加入room-Ejabberd时,我如何将没有附属关系的用户直接设置为成员

Erlang 当用户加入room-Ejabberd时,我如何将没有附属关系的用户直接设置为成员,erlang,mongoose,xmpp,ejabberd,otp,Erlang,Mongoose,Xmpp,Ejabberd,Otp,我正在自定义模块mod_muc_room,以便在用户首次加入时自动设置用户与成员的从属关系 我正在处理方法过程,我设法在mysql表mod_muc的配置室中添加用户,但StateData不包含此更改。。。。如何正确地使此更改可用于StateData 我想知道一些建议。我尝试了很多方法,但我似乎迷路了…提前谢谢你 在default\u room\u选项中将members\u默认设置为true如何 编辑: 我对角色和从属关系感到困惑,请尝试以下修补程序: --- a/src/mod_muc_roo

我正在自定义模块mod_muc_room,以便在用户首次加入时自动设置用户与成员的从属关系

我正在处理方法过程,我设法在mysql表mod_muc的配置室中添加用户,但StateData不包含此更改。。。。如何正确地使此更改可用于StateData

我想知道一些建议。我尝试了很多方法,但我似乎迷路了…提前谢谢你

default\u room\u选项中将
members\u默认设置为true如何


编辑:

我对角色和从属关系感到困惑,请尝试以下修补程序:

--- a/src/mod_muc_room.erl
+++ b/src/mod_muc_room.erl
@@ -1611,7 +1611,11 @@ add_online_user(JID, Nick, Role, StateData) ->
                           end,
                           [LJID], StateData#state.nicks),
     tab_add_online_user(JID, StateData),
-    StateData#state{users = Users, nicks = Nicks}.
+    StateData1 = case get_affiliation(JID, StateData) of
+        owner -> StateData;
+        _ -> set_affiliation(JID, member, StateData)
+    end,
+    StateData1#state{users = Users, nicks = Nicks}.

{已审核,true},{默认情况下为成员,true},{仅成员,false},{允许用户邀请,false},{密码保护,false},{验证码保护,false},{密码,[]},{匿名,true},{日志,false},{最大用户,200},{允许语音请求,true},{语音请求的最小间隔,1800},{验证码列表,[]},{白名单,{[{{“gallero”、“dev.here.com”、[]}、{owner、[]}}、{subject、[]}、{subject_author、[]}]| 2014-01-31 14:57:25------------------Muc选项看起来像这样,但我需要参与者直接拥有会员关系,而无需所有者添加。如果您可以自定义
mod\u Muc\u room.erl
,请在
添加新用户()
。你可以找到优雅的方式,或者只做
Affiliation=member
。我只是阅读代码并提出建议,而不是测试。对不起,我对角色和隶属关系感到困惑。我将编辑我的第一个答案。我做了几乎相同的事情,但在处理新的状态后,最后用了一种单独的方法,但这似乎是错误的太棒了!