observe_acl_is_allowed(#acl_is_allowed{action=publish,
        object=#acl_mqtt{words=[<<"~site">>,<<"flight">>| _Rest]}}, 
Context) ->
    true;
observe_acl_is_allowed(#acl_is_allowed{action=subscribe,
        object=#acl_mqtt{words=[<<"~site">>,<<"flight">>| _Rest]}}, 
Context) ->
    true;
observe_acl_is_allowed(#acl_is_allowed{}, _Context) ->
    undefined.

z_mqtt:publish(<<"~site/flight">>,[],Context),
I try different options, but it still does not work, an ordinary user can 
not send messages only to the administrator.


четверг, 1 декабря 2016 г., 0:21:54 UTC+9 пользователь Marc Worrell написал:
>
>
> On 30 Nov 2016, at 16:10, heiheshang <[email protected] <javascript:>> 
> wrote:
>
> yet this only works for the administrator, all other users do not receive 
> messages
>
>
> Probably due to the <<“~site”>> in your pattern.
>
> Administrators have a shortcut in all ACL checks, so that they can do 
> anything regardless of ACL modules.
> So for administrators this code is never reached.
>
> For normal users this code is reached and then the topic-words might not 
> match with the pattern.
> Trace this observer if you want to see all patterns.
>
> - Marc
>
>
>
> среда, 30 ноября 2016 г., 23:37:13 UTC+9 пользователь Marc Worrell написал:
>>
>> Check the “words” that pass here, shorthands like “~site” will already be 
>> expanded here.
>>
>> In your case you can match on: [<<“site”>>, _Site, <<“flight”>> | _]
>>
>> But returning true here will indeed allow any user to publish or 
>> subscribe to these topics.
>>
>> - Marc
>>
>>
>>
>> On 30 Nov 2016, at 15:30, heiheshang <[email protected]> wrote:
>>
>> observe_acl_is_allowed(#acl_is_allowed{action=publish,
>>         object=#acl_mqtt{words=[<<"~site">>, <<"flight">>| _Rest]}}, 
>> Context) ->
>>     true;
>> observe_acl_is_allowed(#acl_is_allowed{action=subscribe,
>>         object=#acl_mqtt{words=[<<"~site">>, <<"flight">>| _Rest]}}, 
>> Context) ->
>>     true;
>>
>> as well give right?
>>
>>
>> суббота, 26 ноября 2016 г., 17:08:44 UTC+9 пользователь heiheshang 
>> написал:
>>>
>>> Yes I can change the context, but not anyone can get this message, only 
>>> now the administrator can
>>>
>>> суббота, 26 ноября 2016 г., 16:35:59 UTC+9 пользователь Marc Worrell 
>>> написал:
>>>>
>>>> Quick reply, as I am away from my keyboard.
>>>>
>>>> MQTT messages are ACL checked by topic. You can check mod_mqtt for an 
>>>> example observer.
>>>>
>>>> If you just want to publish from Erlang, then you can use z_acl:sudo/1 
>>>> on the Context. This switches off ACL checks.
>>>>
>>>> - Marc
>>>>
>>>> Sent from my iPhone
>>>>
>>>> On 26 Nov 2016, at 03:49, heiheshang <[email protected]> wrote:
>>>>
>>>> how to set the right user to send messages to z_mqtt.
>>>> I found that the average user of this site can not send messages
>>>>
>>>> -- 
>>>>
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Zotonic developers" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>> -- 
>>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Zotonic developers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
> -- 
>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Zotonic developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"Zotonic developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to