Merge branch '2013.10' into 2014.11
[tine20] / tine20 / Tinebase / User.php
index 22cd5de..c809b89 100644 (file)
@@ -746,16 +746,20 @@ class Tinebase_User
         $deletedInSyncBackend = array_diff($userIdsInSqlBackend, $usersInSyncBackend->getArrayOfIds());
 
         if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__
-            . ' About to delete ' . count($deletedInSyncBackend) . ' users in SQL backend...');
+            . ' About to delete / expire ' . count($deletedInSyncBackend) . ' users in SQL backend...');
 
         foreach ($deletedInSyncBackend as $userToDelete) {
             $user = Tinebase_User::getInstance()->getUserByPropertyFromSqlBackend('accountId', $userToDelete, 'Tinebase_Model_FullUser');
 
+            if (in_array($user->accountLoginName, self::getSystemUsernames())) {
+                return;
+            }
+
             // at first, we expire the user
             $now = Tinebase_DateTime::now();
             if (! $user->accountExpires) {
                 if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__
-                    . ' Set expiry date to ' . $now);
+                    . ' Set expiry date of ' . $user->accountLoginName . ' to ' . $now);
                 $user->accountExpires = $now;
                 Tinebase_User::getInstance()->updateUserInSqlBackend($user);
             } else {
@@ -782,6 +786,16 @@ class Tinebase_User
     }
 
     /**
+     * returns login_names of system users
+     *
+     * @return array
+     */
+    public static function getSystemUsernames()
+    {
+        return array('cronuser', 'calendarscheduling');
+    }
+
+    /**
      * get all user passwords from ldap
      * - set pw for user (in sql and sql plugins)
      * - do not encrypt the pw again as it is encrypted in LDAP