thank you so much for your pointer, anthony, the encrypted password is without *|encrypted password|None.* i've compared with the manual that i put on the register form is same. (same password 'a' string) but, pardon there is strange behaviour during login, the user that i inserted via script couldn't login, but the manual one could login. is there anything i missed on my code? e.g. db.auth_user.bulk_insert([{'first_name' : 'a', 'last_name' : 'a', 'email' : 'a.a.com', 'password' : db.auth_user.password.validate('a')[0]}])
thank you very much before. On Thu, Apr 28, 2011 at 9:46 PM, Anthony <abasta...@gmail.com> wrote: > 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 >>> >> >>