I am not sure you should register services in controller, unless you also want to expose them as actions. I normally put them in a model. Anyway...
@service.xmlrpc @service.jsonrpc @service.whetever register a function as a service def call(): return service() simply exposes all services. You can do @auth.requires(auth.user) def call(): return service() and you will get an unauthorized error On Oct 24, 11:19 am, "david.waldrop" <[email protected]> wrote: > I have spent the bulk of last evening and this morning trying to test > web2py services and authorization. In addition to setting > auth.settings.allow_basic_login = True I have deleted the "call > function" in the default controller, created a seperate controller > "mmservices",and and populated with the following code: > > @auth.requires_login() > def call(): > """ > exposes services. for example: > http://..../[app]/default/call/jsonrpc > decorate with @services.jsonrpc the functions to expose > supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv > """ > session.forget() > return service() > > @service.xmlrpc > def getmeetings(): > if auth.is_logged_in(): > return 'you are logged in!' > else: > return 'NO DICE' > > @service.xmlrpc > def test(insink): > if auth.is_logged_in(): > return 'test: you are logged in!' > else: > return 'test: NO DICE' > > My questions are: > > 1) what is the purpose of the "call" function? I see that it is part > of the proxy when invoking, but am not sure where it gets invoked or > what it does. Does there need to be a separate call for each web- > service function (as I saw in a forum post)? > > 2) when i enterhttp://www.meetingmonkey.net/init/mmservices/getmeetings > without logging in I get "no dice". I suspect this is due to the fact > that I am accessing the function because it is in a controller. This > is not the desired behavior as I want to ensure the user has logged in > before getting access to the function. Is there a complete example of > the best practice for implementing web-services including where to put > various parts of code? > > 3) when I > enterhttp://www.meetingmonkey.net/init/mmservices/call/xmlrpc/getmeetings > without logging 8in I am redirected to the login page. I would rather > just return an unauthorized error, but do not know how to do?

