I just can't manage to make this work.
I'm trying to follow the book by supplying a hmac_key.
Here's the code:

# controller inter_component.py

HKEY='secret'   # later to be stored in uuid generated and stored in session

def index():
    return dict(HKEY=HKEY)

def myform():
    form = SQLFORM.factory(Field('name', label='what\'s your name',
requires=IS_NOT_EMPTY()))
    if form.process().accepted:
        if form.vars.name:
            session.name = form.vars.name + " ME"
        response.js
="web2py_component('/test_signature/inter_component/name_list?_signature=%s',
'cname_list')" % HKEY
    return form

def name_list():
    if not URL.verify(request, hmac_key=HKEY): raise HTTP(403)
    if session.name == None:
       session.name = "0"
    else:
        session.name +=" 1"
    return "Name list component: %s" % session.name

# the view index.html
{{extend 'layout.html'}}
{{=LOAD('inter_component', 'myform', ajax=True, target="cmy_form")}}
{{=LOAD('inter_component', 'name_list', ajax=True, target='cname_list',
user_signature=HKEY)}}

Miguel


On Mon, Jul 2, 2012 at 11:41 AM, Miguel Lopes <mig.e.lo...@gmail.com> wrote:

> I have a view index.html with two components - myform and namelist.
> The index action requires_login() and both myform and namelist actions
> requires_signature()
> This works as expected.
>
> The problem is that the update of namelist via response.js set in the
> myform action fails.
>
> I figure that since in myform response.js is set to:
>
> response.js =
> "web2py_component('/test_signature/inter_component/name_list',
> 'cname_list')"
>
> This fails because the get var '_signature' that matches name_list is
> missing.
>
> If I'm correct how can one access the signature of other components in
> order to update the via the response.js mechanism?
> Otherwise, how to update a digitally signed component via response.js?
>
> TIA
> Miguel
>
>

Reply via email to