You can set visibility and other options, but you cant use
self.auth.settings.table_user_
name because at this point self.auth does not exist and it is a circular
reference given the fact that User class is the base for the creation of
Auth object in that example.

But, in most cases you will name it "auth_user" so no problem to set it in
tablename attribute.


On Wed, Feb 1, 2012 at 3:12 PM, Bruce Wade <[email protected]> wrote:

> This is how I originally thought to do it. (Would have posted this last
> night but code was at the office)
>
> class User(BaseAuth):
>
>     def set_properties(self):
>         tablename = self.auth.settings.table_user_name
>
>         T = current.T
>         # take a look in basemodel to see the options allowed here
>         # self.widgets, self.fields, self.validators etc....
>         # only extra fields are defined here
>
>         self.fields = [
>             Field('username', length=128, default='0000000', unique=True),
>             Field('account_id', self.db.user_account),
>              Field('email', length=128, default=''),
>             Field('password', 'password', length=512),
>             Field('security', 'password', length=512),
>             Field('registration_key', length=512),
>             Field('reset_password_key', length=512),
>             Field('reset_security_key', length=512),
>             Field('registration_id', length=512)
>         ]
>
>         self.visibility = {
>             "password": (False, False),
>             "security": (False, False),
>             "registration_key": (False, False),
>             "reset_password_key": (False, False),
>             "reset_security_key": (False, False),
>             "registration_id": (False, False)
>         }
>
>         self.validators = {
>             'password': [IS_STRONG(), CRYPT()],
>             'security': [IS_STRONG(), CRYPT()],
>             'email':
> [IS_EMAIL(error_message=self.auth.messages.invalid_email)]
>         }
>
>         self.labels = {
>             "username": T("Username"),
>             "email": T("Email"),
>             "password": T("Your Password"),
>             "security": T("Security Password")
>         }
>
>         self.auth.settings.table_user = self
>
> --
> Regards,
> Bruce
>
> On Tue, Jan 31, 2012 at 9:33 PM, Bruce Wade <[email protected]> wrote:
>
>> Thanks that will do it, I was close to that exact same approach when I
>> was playing around today.
>>
>> --
>> Regards,
>> Bruce
>>
>>
>> On Tue, Jan 31, 2012 at 7:54 PM, Bruno Rocha <[email protected]>wrote:
>>
>>> Hi Bruce,
>>>
>>> delete the database if the sample app created one, then replace
>>> modules/datamodel/user.py with this https://gist.github.com/1714979
>>>
>>>
>>> --
>>>
>>> Bruno Rocha
>>> [http://rochacbruno.com.br]
>>>
>>>
>>
>>
>> --
>> --
>> Regards,
>> Bruce Wade
>> http://ca.linkedin.com/in/brucelwade
>> http://www.wadecybertech.com
>> http://www.warplydesigned.com
>> http://www.fitnessfriendsfinder.com
>>
>
>
>
> --
> --
> Regards,
> Bruce Wade
> http://ca.linkedin.com/in/brucelwade
> http://www.wadecybertech.com
> http://www.warplydesigned.com
> http://www.fitnessfriendsfinder.com
>



-- 

Bruno Rocha
[http://rochacbruno.com.br]

Reply via email to