Will do.  I could create a fix on my own by creating a new Auth class that 
inherits from auth and just override the  'reset_password' method, correct? 
 That way I should still be able to update as long as nothing new happens 
in gluon.Auth.reset_password?



On Saturday, November 16, 2013 3:58:56 AM UTC-5, Massimo Di Pierro wrote:
>
> Please open a ticket. This needs to be implemented.
>
> On Friday, 15 November 2013 11:07:31 UTC-6, DeanK wrote:
>>
>> So I have a somewhat unique situation where multiple different users will 
>> be creating separate accounts with unique usernames, using the SAME email 
>> address.  I figured I could make this happen by using custom auth tables 
>> like this:
>>
>> ## Manually set up Auth tables so you can have non-unique emails
>> db.define_table(
>>     auth.settings.table_user_name,
>>     Field('username', length=32, default=''),
>>     Field('first_name', length=128, default=''),
>>     Field('last_initial', length=1, default=''),
>>     Field('email', length=128, default=''), # required
>>     Field('password', 'password', length=512,            # required
>>           readable=False, label='Password'),
>>     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_initial.requires =   
>> IS_NOT_EMPTY(error_message=auth.messages.is_empty)
>> custom_auth_table.password.requires = [CRYPT()]
>> custom_auth_table.email.requires = 
>> [IS_EMAIL(error_message=auth.messages.invalid_email)]
>> custom_auth_table.username.requires = IS_NOT_IN_DB(db, 
>> custom_auth_table.username)
>>
>> auth.settings.table_user = custom_auth_table # tell auth to use 
>> custom_auth_table
>>
>> # Define auth tables
>> auth.define_tables(username=True, signature=False)
>>
>>
>> There are two issues with this approach.
>>
>> First, "forgot password" asks for an email still and resets the first 
>> account in the table with that user name.  Is there a way to reset based on 
>> username built in to web2py?  I couldn't seem to find anything in the 
>> documentation so i'm thinking no unfortunately...
>>
>> Second, and less vital, is the "forgot username" functionality emails the 
>> first username in the table linked to the entered email only.  Ideally you 
>> would email the names and usernames of all accounts linked to the email 
>> address.
>>
>>
>> Is there any way I could enable the described desired functionality? 
>>  Could I somehow extend the existing login functionality without breaking 
>> the ability to update my web2py instance (basically changes that don't 
>> touch core web2py code)?  
>>
>> Thanks,
>> Dean
>>
>>
>>
>>

-- 
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.

Reply via email to