- all (sql) accounts have now allways a contact associated with them (account_id is added as new column to the contacts table)
- contacts queries are simplefied a lot now, as no more join with the accouns-table, union and case when statesments are necessary
- lot of the special handling for accounts in the contacts class is no longer needed
- new contact-repository mode "sql-ldap" which additional writes all changes to the ldap repository, to allow to use it read-only from eg. thunderbird and still have the full sql speed and features within eGW (not yet fully working!)
==> requites update of API and addressbook to work (setup!)
- new cleaner AND documented interfaces
- old interfaces are still availible, but depricated
- LDAP backend stores now membership information in LDAP too, and does NO longer require the phpgwAccount schema
- LDAP backend deals now well with LDAP schema in which posixGroup is no structural object (eg. newer SuSE distros)
- password from users are done now binded as that user, so if you dont need/use our admin to manage accounts, you can give a root-dn which only allows to search&read accounts
- phpgw_accounts --> egw_accounts
- phpgw_acl --> egw_acl
- phpgw_log(_msg) --> egw_log(_msg)
- phpgw_config --> egw_config
- phpgw_applications --> egw_applications
This requires code-changes in many apps. Quite often I was able to replace the db access, with calls to the appropreate classes.
- set a default account email address as well as a user preference email
address in the users' preferences
- actually check if the account creation succeeds before we commit the transaction to the database.
- set default name to New User if we have no other data
- remove some crap and make function readable
- name & firstname
- primary group (if a group with that numerical id exists in eGW, its added as primary group to the account and acl)
- numerical account-id (if availible, no new one gets created, but the one from ldap is used)
- email (as preference for the email-app)
Username did not get translated, as at the time when the accounts-class get instanciated the user preferences, which determine the language, which determine the charset (if no system-charset), are not loaded. I use iso-8859-1 as default then, which gives us the same behavior then before all the changes.