/**
  * Given a UserConfigurationForm and user, save the configuration values for the specified user.
  */
 public static function setConfigurationFromForm(UserConfigurationForm $form, User $user)
 {
     assert('$user instanceOf User && $user->id > 0');
     Yii::app()->pagination->setByUserAndType($user, 'listPageSize', (int) $form->listPageSize);
     Yii::app()->pagination->setByUserAndType($user, 'subListPageSize', (int) $form->subListPageSize);
     Yii::app()->themeManager->setThemeColorValue($user, $form->themeColor);
     Yii::app()->themeManager->setBackgroundTextureValue($user, $form->backgroundTexture);
     static::setValue($user, (bool) $form->hideWelcomeView, 'hideWelcomeView');
     static::setValue($user, (bool) $form->turnOffEmailNotifications, 'turnOffEmailNotifications');
     static::setValue($user, (bool) $form->enableDesktopNotifications, 'enableDesktopNotifications');
     static::setValue($user, (int) $form->defaultPermissionSetting, 'defaultPermissionSetting', false);
     static::setDefaultPermissionGroupSetting($user, (int) $form->defaultPermissionGroupSetting, (int) $form->defaultPermissionSetting);
     ZurmoConfigurationUtil::setByUserAndModuleName($user, 'ZurmoModule', 'VisibleAndOrderedTabMenuItems', serialize($form->selectedVisibleAndOrderedTabMenuItems));
     MenuUtil::forgetCacheEntryForTabMenuByUser($user);
 }