diff options
Diffstat (limited to '')
-rw-r--r-- | src/mod_pubsub/node_default.erl | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mod_pubsub/node_default.erl b/src/mod_pubsub/node_default.erl index 49167626..af8ad9dc 100644 --- a/src/mod_pubsub/node_default.erl +++ b/src/mod_pubsub/node_default.erl @@ -193,21 +193,23 @@ features() -> %% module by implementing this function like this: %% ```check_create_user_permission(Host, Node, Owner, Access) -> %% node_default:check_create_user_permission(Host, Node, Owner, Access).'''</p> -create_node_permission(_Host, ServerHost, Node, _ParentNode, Owner, Access) -> +create_node_permission(Host, ServerHost, Node, _ParentNode, Owner, Access) -> LOwner = jlib:jid_tolower(Owner), {User, Server, _Resource} = LOwner, - Allowed = case acl:match_rule(ServerHost, Access, LOwner) of + Allowed = case LOwner of + {"", Host, ""} -> + true; % pubsub service always allowed + _ -> + case acl:match_rule(ServerHost, Access, LOwner) of allow -> case Node of ["home", Server, User | _] -> true; _ -> false end; _ -> - case Owner of - {jid, "", _, "", "", _, ""} -> true; - _ -> false - end - end, + false + end + end, {result, Allowed}. %% @spec (Host, Node, Owner) -> |