0010902: language preference is changed by ActiveSync clients to 'en'
authorPhilipp Schüle <p.schuele@metaways.de>
Wed, 11 Mar 2015 17:25:33 +0000 (18:25 +0100)
committerPhilipp Schüle <p.schuele@metaways.de>
Thu, 12 Mar 2015 14:27:57 +0000 (15:27 +0100)
* don't save en locale as preference when autodetecting as this is the default
* some minor code improvements

https://forge.tine20.org/view.php?id=10902

Change-Id: I67279b2673cd56f2856f83d9aff8ab6a4aa16083
Reviewed-on: http://gerrit.tine20.com/customers/1724
Tested-by: Jenkins CI (http://ci.tine20.com/)
Reviewed-by: Philipp Schüle <p.schuele@metaways.de>
Tested-by: Philipp Schüle <p.schuele@metaways.de>
tine20/Tinebase/Controller.php
tine20/Tinebase/Core.php
tine20/Tinebase/Frontend/Json.php

index 11be960..26a329a 100644 (file)
@@ -268,7 +268,7 @@ class Tinebase_Controller extends Tinebase_Controller_Event
      /**
      * renders and send to browser one captcha image
      *
-     * @return void
+     * @return array
      */
     public function makeCaptcha()
     {
@@ -278,7 +278,7 @@ class Tinebase_Controller extends Tinebase_Controller_Event
     /**
      * renders and send to browser one captcha image
      *
-     * @return void
+     * @return array
      */
     protected function _makeImage()
     {
@@ -299,7 +299,6 @@ class Tinebase_Controller extends Tinebase_Controller_Event
         try {
             $image = @imagecreate($width, $height);
             /* set the colours */
-            $background_color = imagecolorallocate($image, 255, 255, 255);
             $text_color = imagecolorallocate($image, 20, 40, 100);
             $noise_color = imagecolorallocate($image, 100, 120, 180);
             /* generate random dots in background */
@@ -424,6 +423,8 @@ class Tinebase_Controller extends Tinebase_Controller_Event
             $this->initUser($user, /* $fixCookieHeader = */ false);
             return true;
         }
+
+        return false;
     }
     
     /**
index 6bd4e4a..783f035 100644 (file)
@@ -418,10 +418,6 @@ class Tinebase_Core
             $controllerNameModel = $controllerName . '_' . $modelName;
             if (! class_exists($controllerNameModel)) {
                 throw new Tinebase_Exception_NotFound('No Application Controller found (checked class ' . $controllerNameModel . ')!');
-                // check for generic app controller
-                if (! class_exists($controllerName)) {
-                    throw new Tinebase_Exception_NotFound('No Controller found (checked classes '. $controllerName . ' and ' . $controllerNameModel . ')!');
-                }
             } else {
                 $controllerName = $controllerNameModel;
             }
@@ -1109,7 +1105,9 @@ class Tinebase_Core
             }
             
             // check if the detected locale should be saved in preferences
-            if ($localeString === 'auto' && is_object(Tinebase_Core::getUser())) {
+            if ($localeString === 'auto' && is_object(Tinebase_Core::getUser()) && (string)$locale !== 'en') {
+                if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) self::getLogger()->debug(__METHOD__ . '::' . __LINE__
+                    . " Saving locale: " . (string)$locale);
                 self::getPreference()->{Tinebase_Preference::LOCALE} = (string)$locale;
             }
         }
@@ -1401,7 +1399,7 @@ class Tinebase_Core
     /**
      * get credentials cache from the registry or initialize it
      *
-     * @return  the cache
+     * @return  Tinebase_Model_CredentialCache
      */
     public static function getUserCredentialCache()
     {
@@ -1608,6 +1606,7 @@ class Tinebase_Core
      * checks if a system command exists. Works on POSIX systems.
      * 
      * @param string $name
+     * @return bool
      */
     public static function systemCommandExists($name)
     {
@@ -1618,7 +1617,8 @@ class Tinebase_Core
     /**
      * calls a system command with escapeshellcmd
      * 
-     * @param unknown $cmd
+     * @param string $cmd
+     * @return bool
      */
     public static function callSystemCommand($cmd)
     {
index ff9bb96..ad27181 100644 (file)
@@ -81,11 +81,11 @@ class Tinebase_Frontend_Json extends Tinebase_Frontend_Json_Abstract
         Tinebase_Core::setupUserLocale($localeString);
         
         if ($saveaspreference) {
+            if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__
+                . " Saving locale: " . $localeString);
             Tinebase_Core::getPreference()->{Tinebase_Preference::LOCALE} = $localeString;
         }
         
-        $locale = Tinebase_Core::get('locale');
-        
         // save in cookie (expires in 365 days)
         if ($setcookie) {
             setcookie('TINE20LOCALE', $localeString, time()+60*60*24*365);
@@ -258,9 +258,10 @@ class Tinebase_Frontend_Json extends Tinebase_Frontend_Json_Abstract
     public function updateMultipleRecords($appName, $modelName, $changes, $filter)
     {
         // increase execution time to 30 minutes
-        $oldMaxExcecutionTime = Tinebase_Core::setExecutionLifeTime(1800);
+        Tinebase_Core::setExecutionLifeTime(1800);
         
         $filterModel = $appName . '_Model_' . $modelName . 'Filter';
+        $data = array();
         foreach ($changes as $f) {
             $data[preg_replace('/^customfield_/','#', $f['name'])] = $f['value'];
         }
@@ -344,7 +345,7 @@ class Tinebase_Frontend_Json extends Tinebase_Frontend_Json_Abstract
      * @param array  $filterData
      * @param string $filterName
      * @param mixed  $tag       string|array existing and non-existing tag
-     * @return void
+     * @return array
      */
     public function attachTagToMultipleRecords($filterData, $filterName, $tag)
     {
@@ -361,7 +362,7 @@ class Tinebase_Frontend_Json extends Tinebase_Frontend_Json_Abstract
      * @param array  $filterData
      * @param string $filterName
      * @param mixed  $tag       string|array existing and non-existing tag
-     * @return void
+     * @return array
      */
     public function detachTagsFromMultipleRecords($filterData, $filterName, $tag)
     {
@@ -747,7 +748,8 @@ class Tinebase_Frontend_Json extends Tinebase_Frontend_Json_Abstract
             try {
                 $userContactArray = Addressbook_Controller_Contact::getInstance()->getContactByUserId($user->getId(), TRUE)->toArray();
             } catch (Addressbook_Exception_NotFound $aenf) {
-                if (Tinebase_Core::isLogLevel(Zend_Log::NOTICE)) Tinebase_Core::getLogger()->notice(__METHOD__ . '::' . __LINE__
+                if (Tinebase_Core::isLogLevel(Zend_Log::NOTICE)) /** @noinspection PhpUndefinedMethodInspection */
+                    Tinebase_Core::getLogger()->notice(__METHOD__ . '::' . __LINE__
                     . ' User not found in Addressbook: ' . $user->accountDisplayName);
             }
         }
@@ -795,9 +797,10 @@ class Tinebase_Frontend_Json extends Tinebase_Frontend_Json_Abstract
             $userApplications = Tinebase_Core::getUser()->getApplications(TRUE);
             $clientConfig = Tinebase_Config::getInstance()->getClientRegistryConfig();
             
-            if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__
+            if (Tinebase_Core::isLogLevel(Zend_Log::TRACE))
+                Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__
                . ' User applications to fetch registry for: ' . print_r($userApplications->name, TRUE));
-            
+
             if (! in_array('Tinebase', $userApplications->name)) {
                 Tinebase_Core::getLogger()->err(__METHOD__ . '::' . __LINE__ . ' User has no permissions to run Tinebase.');
                 $this->logout();
@@ -1171,7 +1174,7 @@ class Tinebase_Frontend_Json extends Tinebase_Frontend_Json_Abstract
     /**
      * joins all given tempfiles in given order to a single new tempFile
      *
-     * @param array of tempfiles arrays $tempFiles
+     * @param array $tempFilesData of tempfiles arrays $tempFiles
      * @return array new tempFile
      */
     public function joinTempFiles($tempFilesData)