i have the same situation in my one of my controls: some of functions
should work for both auth and non auth people. For this control i
have misc:is_auth(soft,SessionID). which returns {ok,{not_found}}; in case
user was not found and then i ignore response with help of pattern
matching. For controls which are for auth users only i
use misc:is_auth(hard,SessionID). which makes redirect in case of non auth
user.
On Thursday, October 23, 2014 1:20:16 AM UTC+4, Jitin Luthra wrote:
>
> Hi !
> Thanks a lot for your reply.
>
> However, I think I was asking something a little different. I can
> understand how you describe the use of before_ function for authorization.
> My situation is that I have a controller where some actions require
> authorization while others do not.
> I think that the docs and the tutorial suggest that the way this gets
> handled is that only those actions that have* three arguments* - such as
> hello('GET',[],_) invoke the before_ function, while the actions with *two
> arguments* such as hello('GET',[]) do not call the before_ function. Does
> it not work like that?
>
> Look at this code:
>
> before_(_,_,_)->
> {redirect,"http://yahoo.com"}.
>
> hello('GET',[])->
> {output,"ok"}.
>
>
> I have a hello('GET',[]) with *two arguments. *Why should what I write in
> before_ even matter at all (since hello has only two arguments and not
> three)?
>
> And yet when I open the hello action it redirects me to yahoo.com. This
> is what confuses me. Is this supposed to happen like this?
>
> Thanks,
> Jitin
>
> On Wednesday, 22 October 2014 20:44:11 UTC+5:30, can2nac wrote:
>>
>> http://www.chicagoboss.org/api-controller.html , see Authorization
>> section
>>
>> before_(_,_,_)->
>> case some_func_result(Req) of
>> false -> {redirect,"http://yahoo.com"};
>> {true,Data} -> {ok, Data}
>> end.
>>
>> hi('GET',[], Data)->
>> {output,"ok"}.
>>
>> hello('GET',[], _)->
>> {output,"ok"}.
>>
>> the code is from the top of my head, so please, doublecheck.
>>
>> On Wednesday, October 22, 2014 2:36:56 PM UTC+4, Jitin Luthra wrote:
>>>
>>> Hi,
>>>
>>> I am using a before_ function in my controller and have some actions in
>>> my controller with only two arguments.
>>> However, the before_ function gets called even for those actions with
>>> two arguments.
>>> Did it not used to be that the before_ code would only get called for
>>> actions having 3 arguments?
>>>
>>> Sample code:
>>>
>>> -module(test_hello_controller,[Req]).
>>> -compile(export_all).
>>>
>>> before_(_,_,_)->
>>> {redirect,"http://yahoo.com"}.
>>>
>>> hi('GET',[])->
>>> {output,"ok"}.
>>>
>>> When trying to load the 'hi' action, I get redirected to yahoo.com .
>>>
>>> Thanks,
>>> Jitin
>>>
>>>
--
You received this message because you are subscribed to the Google Groups
"ChicagoBoss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
Visit this group at http://groups.google.com/group/chicagoboss.
To view this discussion on the web visit
https://groups.google.com/d/msgid/chicagoboss/9fa46b28-76da-40c0-8ad6-f59e6295510d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.