OK, the problem is that you generate the password twice -- once when
creating the form and again when processing it. Because you actually
include the password field in the form (as readonly), the original password
gets submitted with the form and inserted in the database. However, the
password that gets sent in the email is the one generated the second time
(so, not the one that gets inserted). Instead, you can do something like:
password = request.post_vars.password or generate_password(name, now)
Also, note that by including the password field in the form and simply
making it readonly, someone can still submit a post request with their own
custom password. If you don't want to allow that, you might instead
consider excluding the password field altogether, and instead do something
like:
if request.post_vars: # indicates a form submission
db.auth_user.password.default = generate_password(name, now)
...
context = dict(..., password=db.auth_user.password.default)
Anthony
On Tuesday, August 6, 2013 5:05:31 PM UTC-4, Anthony wrote:
>
> Can you attach a minimal app that reproduces the problem (preferably in
> the current stable version of web2py)?
>
> As an aside, instead of using your reverse() function, to reverse a
> string, you can do mystring[::-1].
>
> Anthony
>
> On Tuesday, August 6, 2013 4:08:26 PM UTC-4, Annet wrote:
>>
>> The think the problem is caused by these functions that generate the
>> password:
>>
>>
>> def generate_password(name,now):
>> import random
>> value=''
>> chars=('ABCDEFGHJKLMNOPQRSTUVW')
>> symbols=('~!@#$%^&*()_+-=?<>:;{}[]|')
>> x1=random.choice(chars)
>> y=len(name)
>> if y<3:
>> x2=reverse(name)
>> else:
>> z=y-3
>> x2=reverse(name[z:y])
>> x3=random.choice(chars)
>> x4=random.choice(symbols)
>> x5=reverse(now)
>> value=value+x1+x2+x3+x4+x5
>> return value
>>
>>
>> def reverse(x):
>> i=len(x)
>> value=''
>> while i > 0:
>> value=value+x[i-1]
>> i=i-1
>> return value
>>
>>
>> When I replace return value with return '6#TestValue'
>> The functions works i.e. it inserts '6#TestValue' into the auth_user table
>> and sends the value to the user.
>>
>> I hope you know what's wrong with this value this function returns?
>>
>>
>> Kind regards,
>>
>> Annet
>>
>>
>>
--
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.