Hi Leòn,
I'm responding also on the ML so that it keeps track of the answer
which might be helpful to other people.

The error you are facing is due to a bug in TG2.1 which wrongly
registered the helpers resulting in always empty helpers.
You have two solutions to this problem:

1) Upgrade to TG2.1.1 which resolves this issue, pay attention that it
is possible that you have multiple versions of TG installed (if you
used easy_install instead of pip) and you are still running on the old
one. Always upgrade with -U if you use easy_install. Or start with a
fresh virtual environment.

2) Add this patch http://blog.axant.it/archives/348 to your
application to solve the issue. You have to do this only with TG2.1,
not 2.0 or 2.1.1, so you have to check if tg.version is 2.1 and only
in that case you have to perform the monkeypatch.

On Mon, Jul 11, 2011 at 11:38 AM, León Domingo <[email protected]> wrote:
> Hi Alessandro,
> Is there anything to be aware of when using this technique? I'm
> getting a weird thing. One instalation (at my home) works fine and
> another (at my job) fails. In the second one, it seems that h. is
> empty when I try to access it.
>
> I've included *predicates* and *authorize* in *lib.helpers*:
>
> from repoze.what import predicates, authorize
>
> and then, in the template (jinja2), i use them
>
> {% if h.authorize.has_permission('foo', 'bar') %}
> ...
> {% endif %}
>
> This works ok in one installation. I've updated TG2 in the failing one
> to be sure and it fails in the same way.
>
> Thanks
>
> León
>
> On 9 mayo, 09:02, Alessandro Molina <[email protected]>
> wrote:
>> Import your predicate inside the myapp.lib.helpers module, you will be able
>> to access it as h.predicate inside all the templates.
>>
>> As predicates raise exceptions I would also create an helper to make eadier
>> to use it in py:if clauses
>> On May 9, 2011 6:50 AM, "Rodrigo Parra" <[email protected]> wrote:
>>
>>
>>
>>
>>
>>
>>
>> > Hi all,
>>
>> > I want to check for permissions in a template because I want the page
>> > displayed to be slightly different according to them. (For example, a
>> > link being displayed only if the user is a manager).
>>
>> > However, the authorization method for my application is a bit more
>> > complex than repoze.what standard one, so I had to define new
>> > predicate checkers in order to implement it.
>>
>> > I defined my own predicate checkers at myproject.lib.mypredchecks.py
>> > (just an example). I had no trouble importing that to my controllers,
>> > but I don't know how to use them on Genshi templates.
>>
>> > I found this old thread about a similar issue, but the thread is about
>> > repoze.what built-in predicate checkers:
>>
>> https://groups.google.com/group/turbogears/browse_thread/thread/ce6fc...
>>
>> > Is there a way to do what I need, preferably without passing other
>> > object through the controller?
>>
>> > Thanks in advance.
>>
>> > --
>> > You received this message because you are subscribed to the Google Groups
>> "TurboGears" group.
>> > To post to this group, send email to [email protected].
>> > To unsubscribe from this group, send email to
>>
>> [email protected].> For more options, visit this group 
>> at
>>
>> http://groups.google.com/group/turbogears?hl=en.
>>
>>
>>
>>
>>
>>
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en.

Reply via email to