On Sunday, January 29, 2012 7:36:07 PM UTC-5, HittingSmoke wrote:
>
> I'd like to use auth with only a username instead of first and last 
> name. I defined my own tables without a first and last name but it 
> still causes issues throughout the app. 
>
> For instance, when I try to use appadmin to add a user to a new auth 
> group I get an error (<type 'exceptions.KeyError'> 'first_name') if 
> there is no first and last name fields in the database. If I create 
> them but make them unreadable and unwritable the page will load but 
> all of the entries in the User ID dropdown say "None None (user ID 
> #)". 
>

The default validator for auth_permission.user_id and auth_event.user_id is:

IS_IN_DB(db, '%s.id' % settings.table_user_name,
    '%(first_name)s %(last_name)s (%(id)s)')

After calling auth.define_tables(), you can change those to:

db.auth_permission.user_id.requires = IS_IN_DB(db, '%s.id' %
    settings.table_user_name, '%(username)s (%(id)s)')

Perhaps this should happen automatically when the first_name and last_name 
fields are not included in auth_user.

The auth Welcome bar is also fixed to the first name field and if not 
> used it will says Welcome, None. 
>

You can easily replace the navbar by removing auth.navbar from the 
layout.html view and replacing it with a custom navbar. However, we should 
make auth.navbar more customizable. Please open an issue 
(http://code.google.com/p/web2py/issues/list) and reference this thread.

Anthony

Reply via email to