Hi all, in db.py I'd like to extend Auth so that I can override some methods... such as define tables... and maybe in the future make it login using OpenID or facebook etc...
so I've extended Auth and and overrided define_tables... but I'm getting an error on auth.define_tables() any ideas ? class MyAuth(Auth): def define_tables(self, migrate=True): """ to be called unless tables are defined manually usages: auth.define_tables() # defines all needed tables and table files UUID+'_auth_user.table',... auth.define_tables(migrate='myprefix_') # defines all needed tables and table files 'myprefix_auth_user.table',... auth.define_tables(migrate=False) # defines all needed tables without migration/table files """ db = self.db if not self.settings.table_user: password = self.settings.password_field self.settings.table_user = db.define_table( self.settings.table_user_name, db.Field('first_name', length=128,default=''), db.Field('last_name', length=128,default=''), db.Field('location', length=128,default=''), db.Field('email', length=128,default=''), db.Field(password, 'password', readable=False, label='Password'), db.Field('registration_key', length=128, writable=False, readable=False, default=''), migrate=self.__get_migrate(self.settings.table_user_name, migrate)) table = self.settings.table_user table.first_name.requires = IS_NOT_EMPTY() table.last_name.requires = IS_NOT_EMPTY() table[password].requires = CRYPT() table.email.requires = [IS_EMAIL(), IS_NOT_IN_DB(db, '%s.email' % self.settings.table_user._tablename)] table.registration_key.default = '' if not self.settings.table_group: self.settings.table_group = \ db.define_table(self.settings.table_group_name, db.Field('role', length=128,default=''), db.Field('description', 'text'), migrate=self.__get_migrate(self.settings.table_group_name, migrate)) table = self.settings.table_group table.role.requires = IS_NOT_IN_DB(db, '%s.role' % self.settings.table_group._tablename) if not self.settings.table_membership: self.settings.table_membership = \ db.define_table(self.settings.table_membership_name, db.Field('user_id', self.settings.table_user), db.Field('group_id', self.settings.table_group), migrate=self.__get_migrate(self.settings.table_membership_name, migrate)) table = self.settings.table_membership table.user_id.requires = IS_IN_DB(db, '%s.id' % self.settings.table_user._tablename, '%(id)s: %(first_name)s %(last_name)s\ ') table.group_id.requires = IS_IN_DB(db, '%s.id' % self.settings.table_group._tablename, '%(id)s: %(role)s') if not self.settings.table_permission: self.settings.table_permission = \ db.define_table(self.settings.table_permission_name, db.Field('group_id',self.settings.table_group), db.Field('name', default='default'), db.Field('table_name'), db.Field('record_id', 'integer'), migrate=self.__get_migrate(self.settings.table_permission_name, migrate)) <----------- error here ******* table = self.settings.table_permission table.group_id.requires = IS_IN_DB(db, '%s.id' % self.settings.table_group._tablename, '%(id)s: %(role)s') table.name.requires = IS_NOT_EMPTY() table.table_name.requires = IS_IN_SET(self.db.tables) table.record_id.requires = IS_INT_IN_RANGE(0, 10 ** 9) if not self.settings.table_event: self.settings.table_event = db.define_table( self.settings.table_event_name, db.Field('time_stamp', 'datetime', default=self.environment.request.now), db.Field('client_ip', default=self.environment.request.client), db.Field('user_id', self.settings.table_user, default=None), db.Field('origin', default='auth'), db.Field('description', 'text', default=''), migrate=self.__get_migrate(self.settings.table_event_name, migrate)) table = self.settings.table_event table.user_id.requires = IS_IN_DB(db, '%s.id' % self.settings.table_user._tablename, '%(id)s: %(first_name)s %(last_name)s\ ') table.origin.requires = IS_NOT_EMPTY() table.description.requires = IS_NOT_EMPTY() auth=MyAuth(globals(),db) # authentication/authorization auth.define_tables() # creates all needed tables Traceback (most recent call last): File "/home/sebas/projects/meetings/src/gluon/restricted.py", line 107, in restricted exec ccode in environment File "/home/sebas/projects/meetings/src/applications/welcome/models/db.py", line 151, in <module> auth.define_tables() # creates all needed tables File "/home/sebas/projects/meetings/src/applications/welcome/models/db.py", line 82, in define_tables migrate=self.__get_migrate(self.settings.table_user_name, migrate)) AttributeError: 'MyAuth' object has no attribute '_MyAuth__get_migrate' --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---