+2006-03-06 Alexey Shchepin <alexey@sevcom.net>
+
+ * src/mod_muc/mod_muc_room.erl: Bugfix
+
2006-03-05 Alexey Shchepin <alexey@sevcom.net>
* src/ejabberd_c2s.erl: Bugfix
[StrAffiliation]),
{error, ?ERRT_NOT_ACCEPTABLE(Lang, ErrText1)};
SAffiliation ->
- case can_change_ra(
- UAffiliation, URole,
- TAffiliation, TRole,
- affiliation, SAffiliation) of
+ CanChangeRA =
+ case can_change_ra(
+ UAffiliation, URole,
+ TAffiliation, TRole,
+ affiliation, SAffiliation) of
+ nothing ->
+ nothing;
+ true ->
+ true;
+ check_owner ->
+ case search_affiliation(
+ owner, StateData) of
+ [{OJID, _}] ->
+ jlib:jid_remove_resource(OJID) /=
+ jlib:jid_tolower(jlib:jid_remove_resource(UJID));
+ _ ->
+ true
+ end;
+ _ ->
+ false
+ end,
+ case CanChangeRA of
nothing ->
find_changed_items(
UJID,
xml:get_path_s(
Item, [{elem, "reason"},
cdata])} | Res]);
- _ ->
+ false ->
{error, ?ERR_NOT_ALLOWED}
end
end
[StrRole]),
{error, ?ERRT_BAD_REQUEST(Lang, ErrText1)};
SRole ->
- case can_change_ra(
- UAffiliation, URole,
- TAffiliation, TRole,
- role, SRole) of
+ CanChangeRA =
+ case can_change_ra(
+ UAffiliation, URole,
+ TAffiliation, TRole,
+ role, SRole) of
+ nothing ->
+ nothing;
+ true ->
+ true;
+ check_owner ->
+ case search_affiliation(
+ owner, StateData) of
+ [{OJID, _}] ->
+ jlib:jid_remove_resource(OJID) /=
+ jlib:jid_tolower(jlib:jid_remove_resource(UJID));
+ _ ->
+ true
+ end;
+ _ ->
+ false
+ end,
+ case CanChangeRA of
nothing ->
find_changed_items(
UJID,
can_change_ra(owner, _FRole,
owner, _TRole,
affiliation, _Affiliation) ->
- true;
+ check_owner;
can_change_ra(_FAffiliation, _FRole,
_TAffiliation, _TRole,
affiliation, _Value) ->