Hi,
I'm working with my own authentication provider as: *
auth.settings.login_form=MyAuth()*, all *works correctly*.
I need an additional field from default auth_user table definition, I used:
*auth.settings.extra_fields['auth_user'] = [Field('**employee_id**',
'text')]*, works correctly (the value of this field is provided by MyAuth()
to reference another system, ergo, in web2py it's would be treated as a
simple text).
The final schema is:
CREATE TABLE auth_user(
id INTEGER PRIMARY KEY AUTOINCREMENT,
first_name CHAR(128),
last_name CHAR(128),
email CHAR(512),
password CHAR(512),
registration_key CHAR(512),
reset_password_key CHAR(512),
registration_id CHAR(512)
, *employee_id* TEXT);
In MyAuth() class, I have the method get_user(self), which web2py call in
the login process to get user details. At the end of this method, I return:
user = dict(first_name=response['attributes']['cn'][0],
last_name=response['attributes']['cn'][0],
username=response['attributes']['uid'][0],
registration_id=response['attributes']['uid'][0], *employee_id*
=response['attributes']['*employee_id*'][0])
All fields are updated correctly, except the *employee_id*, that is the
additional field.
*Hypothesis 1*: I don't know if web2py is updating only default fields from
the auth_user table (and because employee_id are not default field, it's no
updated).
*Hypothesis 2*: The name of the additional field *employee_id* is malformed
(because the last part "_id" is used to reference another table and
commonly is INT type and web2py don't know how to handle this, since there
is no the *employee* table).
Thank you.
--