mirror of
https://github.com/processone/ejabberd.git
synced 2024-06-02 21:17:12 +02:00
Refactor publish_item conditions (#2267)
This commit is contained in:
parent
ddc29d42de
commit
d8f9219b4f
|
@ -1112,7 +1112,7 @@ iq_pubsub(Host, Access, #iq{from = From, type = IQType, lang = Lang,
|
||||||
Payload, PubOpts, Access)
|
Payload, PubOpts, Access)
|
||||||
end;
|
end;
|
||||||
[] ->
|
[] ->
|
||||||
{error, extended_error(xmpp:err_bad_request(), err_item_required())};
|
publish_item(Host, ServerHost, Node, From, <<>>, [], [], Access);
|
||||||
_ ->
|
_ ->
|
||||||
{error, extended_error(xmpp:err_bad_request(), err_invalid_payload())}
|
{error, extended_error(xmpp:err_bad_request(), err_invalid_payload())}
|
||||||
end;
|
end;
|
||||||
|
@ -1785,19 +1785,15 @@ publish_item(Host, ServerHost, Node, Publisher, ItemId, Payload, PubOpts, Access
|
||||||
PayloadSize > PayloadMaxSize ->
|
PayloadSize > PayloadMaxSize ->
|
||||||
{error, extended_error(xmpp:err_not_acceptable(),
|
{error, extended_error(xmpp:err_not_acceptable(),
|
||||||
err_payload_too_big())};
|
err_payload_too_big())};
|
||||||
(PayloadCount == 0) and (Payload == []) ->
|
(DeliverPayloads or PersistItems) and (PayloadCount == 0) ->
|
||||||
{error, extended_error(xmpp:err_bad_request(),
|
|
||||||
err_payload_required())};
|
|
||||||
(PayloadCount > 1) or (PayloadCount == 0) ->
|
|
||||||
{error, extended_error(xmpp:err_bad_request(),
|
|
||||||
err_invalid_payload())};
|
|
||||||
(DeliverPayloads == false) and (PersistItems == false) and
|
|
||||||
(PayloadSize > 0) ->
|
|
||||||
{error, extended_error(xmpp:err_bad_request(),
|
|
||||||
err_item_forbidden())};
|
|
||||||
((DeliverPayloads == true) or (PersistItems == true)) and (PayloadSize == 0) ->
|
|
||||||
{error, extended_error(xmpp:err_bad_request(),
|
{error, extended_error(xmpp:err_bad_request(),
|
||||||
err_item_required())};
|
err_item_required())};
|
||||||
|
(DeliverPayloads or PersistItems) and (PayloadCount > 1) ->
|
||||||
|
{error, extended_error(xmpp:err_bad_request(),
|
||||||
|
err_invalid_payload())};
|
||||||
|
(not DeliverPayloads) and (PayloadCount > 0) ->
|
||||||
|
{error, extended_error(xmpp:err_bad_request(),
|
||||||
|
err_item_forbidden())};
|
||||||
true ->
|
true ->
|
||||||
node_call(Host, Type, publish_item,
|
node_call(Host, Type, publish_item,
|
||||||
[Nidx, Publisher, PublishModel, MaxItems, ItemId, Payload, PubOpts])
|
[Nidx, Publisher, PublishModel, MaxItems, ItemId, Payload, PubOpts])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user