it works for me ! Thanks a lot
On 28 abr, 17:02, Stifan Kristi <steve.van.chris...@gmail.com> wrote: > 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