[web2py] Re: Add extra fields to db.auth_user
Beside adding extra field, is it possible to split the table for auth_user? For example, I want the profile to be broken in different tables based on address, education, portfolio...etc. that someone can create a profile. And add fields to that tables as that person see fit. On Wednesday, December 4, 2013 at 11:56:06 AM UTC-5, Gael Princivalle wrote: > Thanks a lot Massimo, in fact I've made testing on an existing user. Now > with requires=IS_NOT_EMPTY() the form ask to fill the company field. > Perfect. > > For problem 2 I'm gone define my own auth_user table, have a nice day. > > Il giorno mercoledì 4 dicembre 2013 16:29:14 UTC+1, Massimo Di Pierro ha > scritto: >> >> I cannot reproduce problem 1. There is nothing wrong in your code and >> something else is causing the problem. Are you sure the issue is that "A >> user can register without filling this field." or is it the users who >> registered before the contraint was introduced do not have a company field? >> >> Problem 2. To fix that you need define your own auth_user table. If you >> do: >> >> db.define_table('auth_user', ) >> >> before auth.define_tables() it should use yours. >> >> On Tuesday, 3 December 2013 09:14:02 UTC-6, Gael Princivalle wrote: >>> >>> Hi. >>> >>> I've had extra fields to db.auth_user like that in db.py: >>> >>> auth = Auth(db) >>> auth.settings.extra_fields['auth_user']= [Field('Company', >>> requires=IS_NOT_EMPTY()),Field('Phone')] >>> >>> Problem n°1, requires=IS_NOT_EMPTY() don't have any effect. A user can >>> register without filling this field. >>> >>> Problem n° 2, Company and Phone fields are in the form after passwords >>> field, I would like to change the fild order. >>> >>> How can I do it ? >>> >>> Thanks. >>> >> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[web2py] Re: Add extra fields to db.auth_user
Thanks a lot Massimo, in fact I've made testing on an existing user. Now with requires=IS_NOT_EMPTY() the form ask to fill the company field. Perfect. For problem 2 I'm gone define my own auth_user table, have a nice day. Il giorno mercoledì 4 dicembre 2013 16:29:14 UTC+1, Massimo Di Pierro ha scritto: > > I cannot reproduce problem 1. There is nothing wrong in your code and > something else is causing the problem. Are you sure the issue is that "A > user can register without filling this field." or is it the users who > registered before the contraint was introduced do not have a company field? > > Problem 2. To fix that you need define your own auth_user table. If you do: > > db.define_table('auth_user', ) > > before auth.define_tables() it should use yours. > > On Tuesday, 3 December 2013 09:14:02 UTC-6, Gael Princivalle wrote: >> >> Hi. >> >> I've had extra fields to db.auth_user like that in db.py: >> >> auth = Auth(db) >> auth.settings.extra_fields['auth_user']= [Field('Company', >> requires=IS_NOT_EMPTY()),Field('Phone')] >> >> Problem n°1, requires=IS_NOT_EMPTY() don't have any effect. A user can >> register without filling this field. >> >> Problem n° 2, Company and Phone fields are in the form after passwords >> field, I would like to change the fild order. >> >> How can I do it ? >> >> Thanks. >> > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
[web2py] Re: Add extra fields to db.auth_user
I cannot reproduce problem 1. There is nothing wrong in your code and something else is causing the problem. Are you sure the issue is that "A user can register without filling this field." or is it the users who registered before the contraint was introduced do not have a company field? Problem 2. To fix that you need define your own auth_user table. If you do: db.define_table('auth_user', ) before auth.define_tables() it should use yours. On Tuesday, 3 December 2013 09:14:02 UTC-6, Gael Princivalle wrote: > > Hi. > > I've had extra fields to db.auth_user like that in db.py: > > auth = Auth(db) > auth.settings.extra_fields['auth_user']= [Field('Company', > requires=IS_NOT_EMPTY()),Field('Phone')] > > Problem n°1, requires=IS_NOT_EMPTY() don't have any effect. A user can > register without filling this field. > > Problem n° 2, Company and Phone fields are in the form after passwords > field, I would like to change the fild order. > > How can I do it ? > > Thanks. > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
[web2py] Re: Add extra fields to db.auth_user
Thanks James but also required=True don't have any effect. Perhaps I have to make a custom form or register, do you know I can do it ? Il giorno martedì 3 dicembre 2013 19:56:39 UTC+1, James Burke ha scritto: > > For problem no1, you could try using required=True instead of > requires=IS_NOT_EMPTY() > > For your second problem you can define the auth_user table yourself (from > web2py book): > > Another way to do this, although not really recommended, consists of > defining your auth tables yourself. If a table is declared before > auth.define_tables() it is used instead of the default one. Here is how > to do it: > > ## after auth = Auth(db) > db.define_table( > auth.settings.table_user_name, > Field('first_name', length=128, default=''), > Field('last_name', length=128, default=''), > Field('email', length=128, default='', unique=True), # required > Field('password', 'password', length=512,# required > readable=False, label='Password'), > Field('address'), > Field('city'), > Field('zip'), > Field('phone'), > Field('registration_key', length=512,# required > writable=False, readable=False, default=''), > Field('reset_password_key', length=512, # required > writable=False, readable=False, default=''), > Field('registration_id', length=512, # required > writable=False, readable=False, default='')) > > ## do not forget validators > custom_auth_table = db[auth.settings.table_user_name] # get the > custom_auth_table > custom_auth_table.first_name.requires = > IS_NOT_EMPTY(error_message=auth.messages.is_empty) > custom_auth_table.last_name.requires = > IS_NOT_EMPTY(error_message=auth.messages.is_empty) > custom_auth_table.password.requires = [IS_STRONG(), CRYPT()] > custom_auth_table.email.requires = [ > IS_EMAIL(error_message=auth.messages.invalid_email), > IS_NOT_IN_DB(db, custom_auth_table.email)] > > auth.settings.table_user = custom_auth_table # tell auth to use > custom_auth_table > > ## before auth.define_tables() > > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
[web2py] Re: Add extra fields to db.auth_user
For problem no1, you could try using required=True instead of requires=IS_NOT_EMPTY() For your second problem you can define the auth_user table yourself (from web2py book): Another way to do this, although not really recommended, consists of defining your auth tables yourself. If a table is declared before auth.define_tables() it is used instead of the default one. Here is how to do it: ## after auth = Auth(db) db.define_table( auth.settings.table_user_name, Field('first_name', length=128, default=''), Field('last_name', length=128, default=''), Field('email', length=128, default='', unique=True), # required Field('password', 'password', length=512,# required readable=False, label='Password'), Field('address'), Field('city'), Field('zip'), Field('phone'), Field('registration_key', length=512,# required writable=False, readable=False, default=''), Field('reset_password_key', length=512, # required writable=False, readable=False, default=''), Field('registration_id', length=512, # required writable=False, readable=False, default='')) ## do not forget validators custom_auth_table = db[auth.settings.table_user_name] # get the custom_auth_table custom_auth_table.first_name.requires = IS_NOT_EMPTY(error_message=auth.messages.is_empty) custom_auth_table.last_name.requires = IS_NOT_EMPTY(error_message=auth.messages.is_empty) custom_auth_table.password.requires = [IS_STRONG(), CRYPT()] custom_auth_table.email.requires = [ IS_EMAIL(error_message=auth.messages.invalid_email), IS_NOT_IN_DB(db, custom_auth_table.email)] auth.settings.table_user = custom_auth_table # tell auth to use custom_auth_table ## before auth.define_tables() -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.