[Zope] Python Generators and Zope question

2006-04-20 Thread Palermo, Tom



All,

I have a site that uses 
CookieCrumbler for user login. I need to track how many incorrectlogin 
attempts a user makes. I am trying to use a python generator to do this but it 
makes Zope hang when I try to do an invalid login (eg. no password or incorrect 
password). Here's a snippet:

def 
make_counter(x): while 
1: yield 
x x = x + 
1

 counter = 
make_counter(1)

 
security.declarePublic('getUnauthorizedURL') def 
getUnauthorizedURL(self): 
''' Redirects to the login 
page. 
''' req = 
self.REQUEST resp = 
req['RESPONSE'] attempt = 
getattr(req, '_cookie_auth', 
ATTEMPT_NONE) if attempt == 
ATTEMPT_NONE: 
# An anonymous user was denied access to 
something. 
page_id = 
self.auto_login_page 
retry = '' elif attempt == 
ATTEMPT_LOGIN: 
# The login attempt failed. Try 
again. 
page_id = 
self.auto_login_page 
#retry = 
'1' retry 
= counter.next()

I added the make_counter 
function. It seems the culprit is the retry = counter.next() bit. I tried doing 
this same thing with the make_counter function in an External method and then 
calling it from a python script like so:
counter = 
context.make_counter(1)
return 
counter.next()

In that case, an unauthorized 
exception is raised complaining about next. I can however, just return the 
counter which gives me generator object at 0xb48d56cc. Am I calling the 
next method incorrectly or is there something else I'm missing or being dumb 
about?

Thanks,
Tom 
Palermo
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Python Generators and Zope question

2006-04-20 Thread Dieter Maurer
Palermo, Tom wrote at 2006-4-20 10:52 -0400:
I have a site that uses CookieCrumbler for user login. I need to track how
many incorrect login attempts a user makes. I am trying to use a python
generator to do this but it makes Zope hang when I try to do an invalid
login (eg. no password or incorrect password). Here's a snippet:

I fear you are on the wrong way.

  You must store the number of incorrect login attempts with
  the user.

  For this, you should use a standard integer (and not a generator).

-- 
Dieter
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )