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.

Reply via email to