Plugin.runUpdate() needs admin user in ThreadLocal.
AddressCampaign.values -> s_values (values is a keyword).
AddressCampaign.values -> s_values (values is a keyword).
Needs try-catch in getAbgeschlossenNichtFakturiertAnzahl() if data-base isn't updated yet (needed by counter of menu entry).
AuftragsPositionDO.timeOfPerformance*
AuftragsPositionDO.timeOfPerformance*
Serialization warning fixed.
afterUpdate(O, O, boolean) added.
Admin user is local user (if remote user management system is used later).
Refresh cache only after modification (users new method afterUpdate(PFUserDO, PFUserDO, boolean).
Fix: if password is unmodified, then don't return major modification (LdapSlave gets confused).
Wrong user was returned in authenticate(…).
Avoid multiple refreshes of users and UserGroupCache.