Skip to content

Commit

Permalink
Merge remote-tracking branch 'processone/pr/2811'
Browse files Browse the repository at this point in the history
* processone/pr/2811:
  allow room recreate for admins even if nonempty
  • Loading branch information
weiss committed Mar 11, 2019
2 parents 328553e + b5fa3b0 commit 1af2b2c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
* Admin
- The minimum required Erlang/OTP version is now 19.1

* MUC
- Service admins are allowed to recreate room even if archiv is nonempty

# Version 19.02

* Admin
Expand Down
9 changes: 6 additions & 3 deletions src/mod_muc.erl
Original file line number Diff line number Diff line change
Expand Up @@ -438,18 +438,21 @@ do_route1(_Host, _ServerHost, _Access, _HistorySize, _RoomShaper,
ejabberd_router:route_error(Packet, Err);
do_route1(Host, ServerHost, Access, HistorySize, RoomShaper,
From, To, Packet, DefRoomOpts, QueueType) ->
{_AccessRoute, AccessCreate, _AccessAdmin, _AccessPersistent, _AccessMam} = Access,
{_AccessRoute, AccessCreate, AccessAdmin, _AccessPersistent, _AccessMam} = Access,
{Room, _, Nick} = jid:tolower(To),
RMod = gen_mod:ram_db_mod(ServerHost, ?MODULE),
case RMod:find_online_room(ServerHost, Room, Host) of
error ->
case is_create_request(Packet) of
true ->
IsServiceAdmin = acl:match_rule(ServerHost,
AccessAdmin, From) == allow,
case check_user_can_create_room(
ServerHost, AccessCreate, From, Room) and
ejabberd_hooks:run_fold(check_create_room,
(IsServiceAdmin orelse
ejabberd_hooks:run_fold(check_create_room,
ServerHost, true,
[ServerHost, Room, Host]) of
[ServerHost, Room, Host])) of
true ->
{ok, Pid} = start_new_room(
Host, ServerHost, Access,
Expand Down

0 comments on commit 1af2b2c

Please sign in to comment.