On Thursday, April 28, 2011 7:42:15 AM UTC-4, 黄祥 wrote: 
>
> hello, 
>
> thank you so much for your pointer, salbefe. i can input the encrypted 
> password but the result not like i've expected before. i mean there is an 
> additional character on the field password. 
> e.g.
>      db.auth_user.bulk_insert([{'first_name' : 'a', 
>                                'last_name' : 'a', 
>                                'email' : 'a.a.com', 
>                                'password' : 
> db.auth_user.password.validate('a')}])
>
> i created 1 user with password string '*a' (without quotes)*, and second 1 
> register new password with the same password string '*a'** (without 
> quotes)*, when i compare it on the db the result that i entered manual 
> password string  '*a' (without quotes)* via register form is not match 
> that i store on the database via python script. the differnetial on the 
> password field is there is *|encrypted_password|None* when i put it via 
> python script.
>
 
the validate() method of the field runs the validator associated with the 
field, and the validator returns a (value, error) tuple (where error = None 
if the validation passed). So, when you run 
db.auth_user.password.validate('a'), you're getting back a tuple like 
(hashed_password, None). When you try to insert a list or tuple into a field 
via DAL, it converts the items in the list into a string separated by '|' 
characters, which is why you're getting |encrypted_password|None. So, 
instead, just insert the first item in the tuple returned by validate: 
db.auth_user.password.validate('a')[0]
 
Anthony

>  
> maybe i've missed something, please give me a hints about this, thank you 
> very much before.
>
> On Thu, Apr 28, 2011 at 3:19 PM, salbefe <sal...@gmail.com> wrote:
>
>> Hello,
>>
>> Yo can do this:
>>
>>
>>
>> db.auth_user.insert(first_name=...,last_name=...,email=...,password=db.auth_user.password.validate(myPassword))
>>
>>
>>
>> On 28 abr, 08:36, 黄祥 <steve.van...@gmail.com> wrote:
>> > hi,
>> >
>> > is there a way to input encrypted user password for the first time
>> > execution? i mean like
>> > e.g.
>> > db.auth_user.bulk_insert([{'first name' : 'a', 'last name' : 'a',
>> > 'email' : 'a.a.com', 'password' : 'a'}, {'first name' : 'b', 'last
>> > name' : 'b', 'email' : 'b.b.com', 'password' : 'b'}])
>> >
>> > i can using this bulk insert but, the password didn't encryted. and
>> > the other is there alternative way to do that maybe something like :
>> > e.g.
>> > auth.add_user('first name', 'last_name', 'email', 'password')
>> >
>> > please give an advice or pointer about this,
>> >
>> > thank you very much before
>
>
>

Reply via email to