hi, from the code source, it is always executed if you export before_/1 or before_/3
https://github.com/ChicagoBoss/ChicagoBoss/blob/master/src/boss/controller_adapters/boss_controller_adapter_pmod.erl#L57 maybe you can pattern match on the action name ? before_("hi", _Method, _Tokens) -> do_check(); before_(_Action, _Method, _Tokens) -> dont_check(). chan. 2014-10-23 10:01 GMT+08:00 Graeme Defty <[email protected]>: > Yes, That's how I recall it too, though my before_ works in either case, > so I can't be sure. > > Certainly the documentation ( > http://www.chicagoboss.org/api-controller.html) seems to support your > recollection: > > If an action takes three arguments, then the function before_/3 in your > controller will be passed: > > - the action name as a string > - the request method as an atom > - the list of URL tokens > > before_/3 should return one of: > > etc > > > Cheers, > > g > > > > > On 23 October 2014 04:20, Jitin Luthra <[email protected]> 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/3c4672ce-a610-4222-b43c-3b1f8d112dac%40googlegroups.com >> <https://groups.google.com/d/msgid/chicagoboss/3c4672ce-a610-4222-b43c-3b1f8d112dac%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > -- > 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/CAKF5fiAbWfXzUPqZu9nSXX6Lt%2B4sJZ0YRRZqzYKRw3TTFdN3GA%40mail.gmail.com > <https://groups.google.com/d/msgid/chicagoboss/CAKF5fiAbWfXzUPqZu9nSXX6Lt%2B4sJZ0YRRZqzYKRw3TTFdN3GA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- 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/CAB-OfhktsgO-y57gqcPrMNM6jBFSb1F2go8%3DSGvwXZzpSdseUg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
