Exemple #1
0
 /**
  * This function should be used then value can be override by siteAccess
  * or user language has influence to returned value
  *
  * */
 public function getDirLanguage($attribute = 'dir_language')
 {
     $value = null;
     if ($this->hasSetting('site', $attribute)) {
         $value = $this->getSetting('site', $attribute);
     }
     $siteAccess = erLhcoreClassSystem::instance()->SiteAccess;
     if ($siteAccess == 'site_admin') {
         $valueOverride = $this->getSetting('site_access_options', $siteAccess);
         if (key_exists($attribute, $valueOverride)) {
             // User has not changed default site access language. So just return current value.
             if (erLhcoreClassModelUserSetting::getSetting('user_language', $valueOverride['locale']) == $valueOverride['locale']) {
                 return $valueOverride[$attribute];
             } else {
                 // User has changed default siteaccess language, we need to check does ltr or rtl matches
                 foreach ($this->getSetting('site', 'available_site_access') as $siteaccess) {
                     // Loop untill we find our locate siteaccess and check it's language direction
                     $siteAccessOptions = $this->getSetting('site_access_options', $siteaccess);
                     if ($siteAccessOptions['locale'] == erLhcoreClassModelUserSetting::getSetting('user_language', $valueOverride['locale'])) {
                         return $siteAccessOptions[$attribute];
                     }
                 }
             }
         }
     } else {
         $value = $this->getOverrideValue('site', $attribute);
     }
     return $value;
 }
 public static function getSetting($identifier, $default_value, $user_id = false, $noSession = false)
 {
     if ($user_id == false) {
         $currentUser = erLhcoreClassUser::instance();
         if ($currentUser->isLogged()) {
             $user_id = $currentUser->getUserID();
         }
     }
     if ($user_id !== false) {
         $value = CSCacheAPC::getMem()->getSession('settings_user_id_' . $user_id . '_' . $identifier, true);
         if ($value === false && ($value = CSCacheAPC::getMem()->restore('settings_user_id_' . $user_id . '_' . $identifier)) === false) {
             $value = $default_value;
             $list = self::getList(array('filter' => array('user_id' => $user_id, 'identifier' => $identifier)));
             if (count($list) > 0) {
                 $item = array_shift($list);
                 $value = $item->value;
             } else {
                 $item = new erLhcoreClassModelUserSetting();
                 $item->value = $default_value;
                 $item->user_id = $user_id;
                 $item->identifier = $identifier;
                 $item->saveThis();
             }
             CSCacheAPC::getMem()->store('settings_user_id_' . $user_id . '_' . $identifier, $value);
             CSCacheAPC::getMem()->setSession('settings_user_id_' . $user_id . '_' . $identifier, $value, true);
         }
     } else {
         $value = $default_value;
         if ($noSession === false && ($value = CSCacheAPC::getMem()->getSession('anonymous_' . $identifier)) === false) {
             $value = $default_value;
             CSCacheAPC::getMem()->setSession('anonymous_' . $identifier, $value);
         }
     }
     return $value;
 }
 public static function loginBySSO($params)
 {
     $settings = (include 'extension/singlesignon/settings/settings.ini.php');
     // Try to find operator by our logins
     if (isset($params[$settings['attr_map']['username']][0])) {
         $username = $params[$settings['attr_map']['username']][0];
         if (erLhcoreClassModelUser::userExists($username)) {
             $user = array_shift(erLhcoreClassModelUser::getUserList(array('limit' => 1, 'filter' => array('username'))));
             erLhcoreClassUser::instance()->setLoggedUser($user->id);
         } else {
             $user = new erLhcoreClassModelUser();
             foreach ($settings['attr_map'] as $attr => $ssoAttr) {
                 $user->{$attr} = $params[$settings['attr_map'][$attr]][0];
             }
             foreach ($settings['default_attributes'] as $attr => $value) {
                 $user->{$attr} = $value;
             }
             $user->password = sha1(erLhcoreClassModelForgotPassword::randomPassword() . rand(0, 1000) . microtime());
             $user->saveThis();
             // Set that users sees all pending chats
             erLhcoreClassModelUserSetting::setSetting('show_all_pending', 1, $user->id);
             // Set default departments
             erLhcoreClassUserDep::addUserDepartaments($settings['default_departments'], $user->id, $user);
             // Cleanup if previously existed
             erLhcoreClassModelGroupUser::removeUserFromGroups($user->id);
             // Assign user to default group
             foreach ($settings['default_user_groups'] as $group_id) {
                 $groupUser = new erLhcoreClassModelGroupUser();
                 $groupUser->group_id = $group_id;
                 $groupUser->user_id = $user->id;
                 $groupUser->saveThis();
             }
             erLhcoreClassUser::instance()->setLoggedUser($user->id);
         }
         return true;
     } else {
         throw new Exception('Username field not found');
     }
 }
Exemple #4
0
 public static function getSpeechInstance(erLhcoreClassModelChat $chat)
 {
     $chatLanguageSession = null;
     $chatSpeech = erLhcoreClassModelSpeechChatLanguage::getList(array('filter' => array('chat_id' => $chat->id)));
     if (empty($chatSpeech)) {
         $chatLanguageSession = new erLhcoreClassModelSpeechChatLanguage();
         $chatLanguageSession->chat_id = $chat->id;
         $speechUserLanguage = erLhcoreClassModelUserSetting::getSetting('speech_language', '');
         $speechUserDialect = erLhcoreClassModelUserSetting::getSetting('speech_dialect', '');
         if ($speechUserLanguage != '' && $speechUserDialect != '') {
             $chatLanguageSession->dialect = $speechUserDialect;
             $chatLanguageSession->language_id = $speechUserLanguage;
         } else {
             $speechData = erLhcoreClassModelChatConfig::fetch('speech_data');
             $data = (array) $speechData->data;
             $chatLanguageSession->language_id = $data['language'];
             $chatLanguageSession->dialect = $data['dialect'];
         }
     } else {
         $chatLanguageSession = array_pop($chatSpeech);
     }
     return $chatLanguageSession;
 }
$modeAppend = '';
if ((string) $Params['user_parameters_unordered']['mode'] == 'embed') {
    $embedMode = true;
    $modeAppend = '/(mode)/embed';
}
if (isset($Params['user_parameters_unordered']['theme']) && (int) $Params['user_parameters_unordered']['theme'] > 0) {
    try {
        $theme = erLhAbstractModelWidgetTheme::fetch($Params['user_parameters_unordered']['theme']);
        $Result['theme'] = $theme;
        $tpl->set('theme', $theme);
        $modeAppend .= '/(theme)/' . $theme->id;
    } catch (Exception $e) {
    }
}
if ($Params['user_parameters_unordered']['sound'] !== null && is_numeric($Params['user_parameters_unordered']['sound'])) {
    erLhcoreClassModelUserSetting::setSetting('chat_message', (int) $Params['user_parameters_unordered']['sound'] == 1 ? 1 : 0);
}
if ($Params['user_parameters_unordered']['cstarted'] !== null && $Params['user_parameters_unordered']['cstarted'] != '') {
    $Result['parent_messages'][] = 'lh_callback:' . (string) strip_tags($Params['user_parameters_unordered']['cstarted']);
}
try {
    $chat = erLhcoreClassChat::getSession()->load('erLhcoreClassModelChat', $Params['user_parameters']['chat_id']);
    erLhcoreClassChat::setTimeZoneByChat($chat);
    if ($chat->hash == $Params['user_parameters']['hash']) {
        $tpl->set('chat_id', $Params['user_parameters']['chat_id']);
        $tpl->set('hash', $Params['user_parameters']['hash']);
        $tpl->set('chat', $chat);
        $tpl->set('chat_widget_mode', true);
        $tpl->set('chat_embed_mode', $embedMode);
        $tpl->set('survey', is_numeric($Params['user_parameters_unordered']['survey']) ? (int) $Params['user_parameters_unordered']['survey'] : false);
        $Result['chat'] = $chat;
        $canListOnlineUsersAll = $currentUser->hasAccessTo('lhuser', 'userlistonlineall');
    }
    $pendingTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_pending_list', 1);
    $activeTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_active_list', 1);
    $closedTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_close_list', 0);
    $unreadTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_unread_list', 1);
    $frontTabsOrder = explode(',', 'dashboard,online_users,online_map');
    $browserNotification = (int) erLhcoreClassModelUserSetting::getSetting('new_user_bn', (int) 0);
    $soundUserNotification = (int) erLhcoreClassModelUserSetting::getSetting('new_user_sound', (int) 0);
    $onlineDepartment = (int) erLhcoreClassModelUserSetting::getSetting('o_department', (int) 0);
    $ouserTimeout = (int) erLhcoreClassModelUserSetting::getSetting('ouser_timeout', (int) 3600);
    $oupdTimeout = (int) erLhcoreClassModelUserSetting::getSetting('oupdate_timeout', (int) 10);
    $omaxRows = (int) erLhcoreClassModelUserSetting::getSetting('omax_rows', (int) 50);
    $ogroupBy = (string) erLhcoreClassModelUserSetting::getSetting('ogroup_by', 'none');
    $omapDepartment = (int) erLhcoreClassModelUserSetting::getSetting('omap_depid', 0);
    $omapMarkerTimeout = (int) erLhcoreClassModelUserSetting::getSetting('omap_mtimeout', 30);
    $onlineCheck = (int) '0';
    if ($onlineCheck > 0) {
        $onlineCheck = ",online_user:(ou.last_check_time_ago < " . ($onlineCheck + 3) . ")";
    } else {
        $onlineCheck = '';
    }
    ?>
<div ng-controller="OnlineCtrl as online" ng-init='groupByField = <?php 
    echo json_encode($ogroupBy);
    ?>
;online.maxRows=<?php 
    echo (int) $omaxRows;
    ?>
;online.updateTimeout=<?php 
    echo (int) $oupdTimeout;
    $tab = 'generalsettings';
}
if (isset($_POST['changeSiteAccess'])) {
    $input->siteaccess = $_POST['siteaccess'];
}
if (isset($_POST['StoreUserSettingsAction'])) {
    $definition = array('language' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'string'));
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('system/languages');
        exit;
    }
    $Errors = array();
    $form = new ezcInputForm(INPUT_POST, $definition);
    $Errors = array();
    if ($form->hasValidData('language') && !empty($form->language)) {
        erLhcoreClassModelUserSetting::setSetting('user_language', $form->language);
        // Redirect for change to take effect
        erLhcoreClassModule::redirect('system/languages', '/(updated)/true');
        exit;
    } else {
        $tpl->set('errors', array(erTranslationClassLhTranslation::getInstance()->getTranslation('system/languages', 'Please choose correct language')));
    }
}
if ($currentUser->hasAccessTo('lhsystem', 'configurelanguages')) {
    if (isset($_POST['StoreLanguageSettings'])) {
        $tab = 'generalsettings';
        $definition = array('siteaccess' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'string'), 'language' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'string'), 'theme' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'string'), 'module' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'string'), 'view' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'string'));
        if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
            erLhcoreClassModule::redirect('system/languages');
            exit;
        }
Exemple #8
0
    $validateSpeechData = erLhcoreClassUserValidator::validateSpeech();
    erLhcoreClassModelUserSetting::setSetting('speech_language', $validateSpeechData['speech_language']);
    erLhcoreClassModelUserSetting::setSetting('speech_dialect', $validateSpeechData['speech_dialect']);
    $tpl->set('account_updated', 'done');
    $tpl->set('tab', 'tab_speech');
}
if (erLhcoreClassUser::instance()->hasAccessTo('lhuser', 'change_visibility_list') && isset($_POST['UpdateTabsSettings_account'])) {
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('user/account');
        exit;
    }
    $validateVisibilityListData = erLhcoreClassUserValidator::validateVisibilityList();
    erLhcoreClassModelUserSetting::setSetting('enable_pending_list', $validateVisibilityListData['enable_pending_list']);
    erLhcoreClassModelUserSetting::setSetting('enable_active_list', $validateVisibilityListData['enable_active_list']);
    erLhcoreClassModelUserSetting::setSetting('enable_close_list', $validateVisibilityListData['enable_close_list']);
    erLhcoreClassModelUserSetting::setSetting('enable_unread_list', $validateVisibilityListData['enable_unread_list']);
    $tpl->set('account_updated', 'done');
    $tpl->set('tab', 'tab_settings');
}
if (isset($_POST['Update'])) {
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('user/account');
        exit;
    }
    $Errors = erLhcoreClassUserValidator::validateAccount($UserData);
    if (isset($_POST['DeletePhoto'])) {
        $UserData->removeFile();
    }
    $userPhotoErrors = erLhcoreClassUserValidator::validateUserPhoto($UserData);
    if ($userPhotoErrors !== false) {
        $Errors = array_merge($Errors, $userPhotoErrors);
$currentUser = erLhcoreClassUser::instance();
$onlineTimeout = (int) erLhcoreClassModelChatConfig::fetchCache('sync_sound_settings')->data['online_timeout'];
$canListOnlineUsers = false;
$canListOnlineUsersAll = false;
if (erLhcoreClassModelChatConfig::fetchCache('list_online_operators')->current_value == 1) {
    $canListOnlineUsers = $currentUser->hasAccessTo('lhuser', 'userlistonline');
    $canListOnlineUsersAll = $currentUser->hasAccessTo('lhuser', 'userlistonlineall');
}
// We do not need a session anymore
session_write_close();
$ReturnMessages = array();
$pendingTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_pending_list', 1);
$activeTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_active_list', 1);
$closedTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_close_list', 0);
$unreadTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_unread_list', 1);
$showAllPending = erLhcoreClassModelUserSetting::getSetting('show_all_pending', 1);
$showDepartmentsStats = $currentUser->hasAccessTo('lhuser', 'canseedepartmentstats');
if ($showDepartmentsStats == true) {
    /**
     * Departments stats
     * */
    $limitList = is_numeric($Params['user_parameters_unordered']['limitd']) ? (int) $Params['user_parameters_unordered']['limitd'] : 10;
    $filter = array('ignore_fields' => erLhcoreClassChat::$chatListIgnoreField);
    $filter['limit'] = $limitList;
    if (is_array($Params['user_parameters_unordered']['departmentd']) && !empty($Params['user_parameters_unordered']['departmentd'])) {
        erLhcoreClassChat::validateFilterIn($Params['user_parameters_unordered']['departmentd']);
        $filter['filterin']['id'] = $Params['user_parameters_unordered']['departmentd'];
    }
    $filter['sort'] = 'pending_chats_counter DESC';
    $departments = erLhcoreClassModelDepartament::getList($filter);
    erLhcoreClassChat::prefillGetAttributes($departments, array('id', 'name', 'pending_chats_counter', 'active_chats_counter'), array(), array('remove_all' => true));
Exemple #10
0
    } else {
        $tpl->set('errors', $Errors);
    }
}
if (isset($_POST['UpdatePending_account'])) {
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('user/account');
        exit;
    }
    $definition = array('showAllPendingEnabled' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'boolean'));
    $form = new ezcInputForm(INPUT_POST, $definition);
    $Errors = array();
    if ($form->hasValidData('showAllPendingEnabled') && $form->showAllPendingEnabled == true) {
        erLhcoreClassModelUserSetting::setSetting('show_all_pending', 1, $UserData->id);
    } else {
        erLhcoreClassModelUserSetting::setSetting('show_all_pending', 0, $UserData->id);
    }
    $tpl->set('account_updated', 'done');
    $tpl->set('tab', 'tab_pending');
}
if (isset($_POST['UpdateDepartaments_account'])) {
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('user/userlist');
        exit;
    }
    $globalDepartament = array();
    if (isset($_POST['all_departments']) && $_POST['all_departments'] == 'on') {
        $UserData->all_departments = 1;
        $globalDepartament[] = 0;
    } else {
        $UserData->all_departments = 0;
			<form action="<?php 
    echo erLhcoreClassDesign::baseurl('system/languages');
    ?>
" method="post">
    				<?php 
    include erLhcoreClassDesign::designtpl('lhkernel/csfr_token.tpl.php');
    ?>
    				
    				<div class="form-group">
        				<label><?php 
    echo erTranslationClassLhTranslation::getInstance()->getTranslation('system/languages', 'Language');
    ?>
</label> 
        				<select name="language" class="form-control">
        					<?php 
    $userLanguage = erLhcoreClassModelUserSetting::getSetting('user_language', erLhcoreClassSystem::instance()->Language);
    foreach (erLhcoreClassSiteaccessGenerator::getLanguages() as $language) {
        ?>
        						<option value="<?php 
        echo $language['locale'];
        ?>
" <?php 
        $userLanguage == $language['locale'] ? print 'selected="selected"' : '';
        ?>
><?php 
        echo $language['locale'];
        ?>
</option>
        					<?php 
    }
    ?>
$supportedWidgets = array('online_operators' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/dashboardwidgets', 'Online operators'), 'active_chats' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/dashboardwidgets', 'Active chats'), 'online_visitors' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/dashboardwidgets', 'Online visitors'), 'departments_stats' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/dashboardwidgets', 'Departments stats'), 'pending_chats' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/dashboardwidgets', 'Pending chats'), 'unread_chats' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/dashboardwidgets', 'Unread chats'), 'transfered_chats' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/dashboardwidgets', 'Transfered chats'), 'closed_chats' => erTranslationClassLhTranslation::getInstance()->getTranslation('chat/dashboardwidgets', 'Closed chats'));
erLhcoreClassChatEventDispatcher::getInstance()->dispatch('chat.dashboardwidgets', array('supported_widgets' => &$supportedWidgets));
if (ezcInputForm::hasPostData()) {
    $definition = array('WidgetsUser' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw', null, FILTER_REQUIRE_ARRAY));
    $form = new ezcInputForm(INPUT_POST, $definition);
    $Errors = array();
    if ($form->hasValidData('WidgetsUser') && !empty($form->WidgetsUser)) {
        // Add new widgets
        foreach ($form->WidgetsUser as $newUserWidget) {
            if (!in_array($newUserWidget, $widgetsUser)) {
                $dashboardOrderString = $newUserWidget . ',' . $dashboardOrderString;
                $widgetsUser[] = $newUserWidget;
            }
        }
        // Remove removed widgets
        foreach ($widgetsUser as $userWidget) {
            if (!in_array($userWidget, $form->WidgetsUser)) {
                $dashboardOrderString = str_replace($userWidget, '', $dashboardOrderString);
                unset($widgetsUser[array_search($userWidget, $widgetsUser)]);
            }
        }
        // Just cleanup
        $dashboardOrderString = str_replace(array(',,', ',,,', ',,,,', '|,', ',|'), array(',', ',', ',', '|', '|'), $dashboardOrderString);
        // Store settings in user scope now
        erLhcoreClassModelUserSetting::setSetting('dwo', $dashboardOrderString);
        $tpl->set('updated', true);
    }
}
$tpl->setArray(array('widgets' => $supportedWidgets, 'user_widgets' => $widgetsUser));
echo $tpl->fetch();
exit;
active<?php 
    }
    ?>
" id="speech">

		<form action="<?php 
    echo erLhcoreClassDesign::baseurl('user/account');
    ?>
" method="post">

	  	<?php 
    include erLhcoreClassDesign::designtpl('lhkernel/csfr_token.tpl.php');
    ?>

	  	<?php 
    $dataSpeech = array('language' => (int) erLhcoreClassModelUserSetting::getSetting('speech_language', ''), 'dialect' => (int) erLhcoreClassModelUserSetting::getSetting('speech_dialect', ''), 'optional' => true);
    ?>
	  	
		<?php 
    include erLhcoreClassDesign::designtpl('lhspeech/speech_form_fields.tpl.php');
    ?>
		
		<input type="submit" class="btn btn-default" name="UpdateSpeech_account" value="<?php 
    echo erTranslationClassLhTranslation::getInstance()->getTranslation('user/account', 'Update');
    ?>
" />

		</form>
	</div>
  <?php 
}
<?php

// Make sure that we support variable which is setting now
// It was possible in another portal to cheat, and overload server without this type of checking
try {
    // Start session if required only
    $currentUser = erLhcoreClassUser::instance();
    if (!isset($_SERVER['HTTP_X_CSRFTOKEN']) || !$currentUser->validateCSFRToken($_SERVER['HTTP_X_CSRFTOKEN'])) {
        echo json_encode(array('error' => 'true', 'result' => 'Invalid CSRF Token'));
        exit;
    }
    $settingHandler = erLhcoreClassModelUserSettingOption::fetch($Params['user_parameters']['identifier']);
    // Never trust user input
    erLhcoreClassModelUserSetting::setSetting($Params['user_parameters']['identifier'], (string) $_POST['value']);
    exit;
} catch (Exception $e) {
    print_r($e);
}
exit;
Exemple #15
0
 public static function getInstance()
 {
     if (is_null(self::$instance)) {
         $sysConfiguration = erLhcoreClassSystem::instance();
         $urlCfgDefault = ezcUrlConfiguration::getInstance();
         $urlCfgDefault->basedir = $sysConfiguration->WWWDir;
         $urlCfgDefault->script = $sysConfiguration->IndexFile;
         $urlCfgDefault->unorderedDelimiters = array('(', ')');
         $urlCfgDefault->orderedParameters = array();
         $urlCfgDefault->unorderedParameters = array();
         $urlCfgDefault->addOrderedParameter('siteaccess');
         $urlCfgDefault->addOrderedParameter('module');
         $urlCfgDefault->addOrderedParameter('function');
         $cfgSite = erConfigClassLhConfig::getInstance();
         $urlInstance = new erLhcoreClassURL(($cfgSite->getSetting('site', 'force_virtual_host', false) === false ? 'index.php' : '') . $sysConfiguration->RequestURI, $urlCfgDefault);
         $siteaccess = $urlInstance->getParam('siteaccess');
         $availableSiteaccess = $cfgSite->getSetting('site', 'available_site_access');
         $defaultSiteAccess = $cfgSite->getSetting('site', 'default_site_access');
         if ($defaultSiteAccess != $siteaccess && in_array($siteaccess, $availableSiteaccess)) {
             $optionsSiteAccess = $cfgSite->getSetting('site_access_options', $siteaccess);
             $sysConfiguration->Language = $siteaccess == 'site_admin' ? erLhcoreClassModelUserSetting::getSetting('user_language', $optionsSiteAccess['locale'], false, true) : $optionsSiteAccess['locale'];
             $sysConfiguration->ThemeSite = $optionsSiteAccess['theme'];
             $sysConfiguration->ContentLanguage = $optionsSiteAccess['content_language'];
             $sysConfiguration->WWWDirLang = '/' . $siteaccess;
             $sysConfiguration->SiteAccess = $siteaccess;
             if ($optionsSiteAccess['locale'] != 'en_EN') {
                 $urlInstance->setParam('module', $urlInstance->getParam('module'));
                 $urlInstance->setParam('function', $urlInstance->getParam('function'));
             }
             if (isset($_POST['switchLang']) && in_array($_POST['switchLang'], $availableSiteaccess)) {
                 $optionsSiteAccessOverride = $cfgSite->getSetting('site_access_options', $_POST['switchLang']);
                 $sysConfiguration->Language = $optionsSiteAccessOverride['locale'];
                 $sysConfiguration->SiteAccess = $_POST['switchLang'];
                 if ($defaultSiteAccess != $sysConfiguration->SiteAccess) {
                     $sysConfiguration->WWWDirLang = '/' . $sysConfiguration->SiteAccess;
                 } else {
                     $sysConfiguration->WWWDirLang = '';
                 }
             }
         } else {
             $optionsSiteAccess = $cfgSite->getSetting('site_access_options', $defaultSiteAccess);
             // Falling back
             $sysConfiguration->SiteAccess = $defaultSiteAccess;
             $sysConfiguration->Language = $siteaccess == 'site_admin' ? erLhcoreClassModelUserSetting::getSetting('user_language', $optionsSiteAccess['locale'], false, true) : $optionsSiteAccess['locale'];
             $sysConfiguration->ThemeSite = $optionsSiteAccess['theme'];
             $sysConfiguration->ContentLanguage = $optionsSiteAccess['content_language'];
             if (isset($_POST['switchLang']) && in_array($_POST['switchLang'], $availableSiteaccess)) {
                 $optionsSiteAccessOverride = $cfgSite->getSetting('site_access_options', $_POST['switchLang']);
                 $sysConfiguration->Language = $optionsSiteAccessOverride['locale'];
                 $sysConfiguration->SiteAccess = $_POST['switchLang'];
                 if ($defaultSiteAccess != $sysConfiguration->SiteAccess) {
                     $sysConfiguration->WWWDirLang = '/' . $sysConfiguration->SiteAccess;
                 }
             }
             // To reset possition counter
             $urlCfgDefault->removeOrderedParameter('siteaccess');
             $urlCfgDefault->removeOrderedParameter('module');
             $urlCfgDefault->removeOrderedParameter('function');
             // Reinit parameters
             $urlCfgDefault->addOrderedParameter('module');
             $urlCfgDefault->addOrderedParameter('function');
             //Apply default configuration
             $urlInstance->applyConfiguration($urlCfgDefault);
             if ($optionsSiteAccess['locale'] != 'en_EN') {
                 $urlInstance->setParam('module', $urlInstance->getParam('module'));
                 $urlInstance->setParam('function', $urlInstance->getParam('function'));
             }
         }
         self::$instance = $urlInstance;
     }
     return self::$instance;
 }
Exemple #16
0
        erLhcoreClassModelUserSetting::setSetting('enable_pending_list', 0);
    }
    if ($form->hasValidData('activeTabEnabled') && $form->activeTabEnabled == true) {
        erLhcoreClassModelUserSetting::setSetting('enable_active_list', 1);
    } else {
        erLhcoreClassModelUserSetting::setSetting('enable_active_list', 0);
    }
    if ($form->hasValidData('closedTabEnabled') && $form->closedTabEnabled == true) {
        erLhcoreClassModelUserSetting::setSetting('enable_close_list', 1);
    } else {
        erLhcoreClassModelUserSetting::setSetting('enable_close_list', 0);
    }
    if ($form->hasValidData('unreadTabEnabled') && $form->unreadTabEnabled == true) {
        erLhcoreClassModelUserSetting::setSetting('enable_unread_list', 1);
    } else {
        erLhcoreClassModelUserSetting::setSetting('enable_unread_list', 0);
    }
    $tpl->set('account_updated', 'done');
    $tpl->set('tab', 'tab_settings');
}
if (isset($_POST['Update'])) {
    $definition = array('Password' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'Password1' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'Email' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::REQUIRED, 'validate_email'), 'Name' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::REQUIRED, 'unsafe_raw'), 'Surname' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::REQUIRED, 'unsafe_raw'), 'Username' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'JobTitle' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'Skype' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'XMPPUsername' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'UserTimeZone' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'unsafe_raw'), 'UserInvisible' => new ezcInputFormDefinitionElement(ezcInputFormDefinitionElement::OPTIONAL, 'boolean'));
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('user/account');
        exit;
    }
    $form = new ezcInputForm(INPUT_POST, $definition);
    $Errors = array();
    if (!$form->hasValidData('Username')) {
        $Errors[] = erTranslationClassLhTranslation::getInstance()->getTranslation('user/account', 'Please enter a username!');
    } elseif ($form->hasValidData('Username') && $form->Username != $UserData->username && !erLhcoreClassModelUser::userExists($form->Username)) {
Exemple #17
0
<?php

$departmentNames = array();
$departmentList = array();
$departments = erLhcoreClassModelDepartament::getList($departmentParams);
foreach ($departments as $department) {
    $departmentNames[$department->id] = $department->name;
    $departmentList[] = array('id' => $department->id, 'name' => $department->name);
}
$dashboardOrder = (string) erLhcoreClassModelUserSetting::getSetting('dwo', '');
if ($dashboardOrder == '') {
    $dashboardOrder = erLhcoreClassModelChatConfig::fetch('dashboard_order')->current_value;
}
$dashboardOrder = explode('|', $dashboardOrder);
$columnsTotal = count($dashboardOrder);
$columnSize = 12 / $columnsTotal;
?>
<div class="row" id="dashboard-body" ng-init='lhc.userDepartments=<?php 
echo json_encode($departmentList, JSON_HEX_APOS);
?>
;lhc.userDepartmentsNames=<?php 
echo json_encode($departmentNames, JSON_HEX_APOS);
?>
;lhc.setUpListNames(["actived","closedd","unreadd","pendingd","operatord","departmentd"])'>
     <a class="dashboard-configuration" onclick="return lhc.revealModal({'url':WWW_DIR_JAVASCRIPT +'chat/dashboardwidgets'})" title="<?php 
echo erTranslationClassLhTranslation::getInstance()->getTranslation('chat/syncadmininterface', 'Configure dashboard');
?>
"><i class="material-icons mr-0">&#xE871;</i></a>
     <?php 
for ($i = 0; $i < $columnsTotal; $i++) {
    $widgets = array_filter(explode(',', $dashboardOrder[$i]));
Exemple #18
0
    $Errors = erLhcoreClassUserValidator::validateUserNew($UserData, $userParams);
    if (count($Errors) == 0) {
        try {
            $db = ezcDbInstance::get();
            $db->beginTransaction();
            erLhcoreClassUser::getSession()->save($UserData);
            if (count($userParams['global_departament']) > 0) {
                erLhcoreClassUserDep::addUserDepartaments($userParams['global_departament'], $UserData->id, $UserData);
            }
            $UserData->setUserGroups();
            $userPhotoErrors = erLhcoreClassUserValidator::validateUserPhoto($UserData);
            if ($userPhotoErrors !== false && count($userPhotoErrors) == 0) {
                $UserData->saveThis();
            }
            erLhcoreClassModelDepartamentGroupUser::addUserDepartmentGroups($UserData, erLhcoreClassUserValidator::validateDepartmentsGroup($UserData));
            erLhcoreClassModelUserSetting::setSetting('show_all_pending', $userParams['show_all_pending'], $UserData->id);
            erLhcoreClassChatEventDispatcher::getInstance()->dispatch('user.user_created', array('userData' => &$UserData, 'password' => $UserData->password_front));
            $db->commit();
            erLhcoreClassModule::redirect('user/userlist');
            exit;
        } catch (Exception $e) {
            $tpl->set('errors', array($e->getMessage()));
            $UserData->removeFile();
            $db->rollback();
        }
    } else {
        $tpl->set('errors', $Errors);
    }
}
$tpl->set('user', $UserData);
$tpl->set('userDepartaments', $UserDepartaments);
$soundData = array(0 => false, 'repeat_sound' => 1, 'repeat_sound_delay' => 5, 'show_alert' => false, 'new_chat_sound_enabled' => true, 'new_message_sound_admin_enabled' => true, 'new_message_sound_user_enabled' => true, 'online_timeout' => 300, 'check_for_operator_msg' => 10, 'back_office_sinterval' => 10, 'chat_message_sinterval' => 3.5, 'long_polling_enabled' => false, 'polling_chat_message_sinterval' => 1.5, 'polling_back_office_sinterval' => 5, 'connection_timeout' => 30, 'browser_notification_message' => false);
?>
confLH.back_office_sinterval = <?php 
echo (int) ($soundData['back_office_sinterval'] * 1000);
?>
;confLH.chat_message_sinterval = <?php 
echo (int) ($soundData['chat_message_sinterval'] * 1000);
?>
;confLH.new_chat_sound_enabled = <?php 
echo (int) erLhcoreClassModelUserSetting::getSetting('new_chat_sound', (int) $soundData['new_chat_sound_enabled']);
?>
;confLH.new_message_sound_admin_enabled = <?php 
echo (int) erLhcoreClassModelUserSetting::getSetting('chat_message', (int) $soundData['new_message_sound_admin_enabled']);
?>
;confLH.new_message_sound_user_enabled = <?php 
echo (int) erLhcoreClassModelUserSetting::getSetting('chat_message', (int) $soundData['new_message_sound_user_enabled']);
?>
;confLH.new_message_browser_notification = <?php 
echo isset($soundData['browser_notification_message']) ? (int) $soundData['browser_notification_message'] : 0;
?>
;confLH.transLation = {'new_chat':'New chat request'};confLH.csrf_token = '<?php 
echo erLhcoreClassUser::instance()->getCSFRToken();
?>
';confLH.repeat_sound = <?php 
echo (int) $soundData['repeat_sound'];
?>
;confLH.repeat_sound_delay = <?php 
echo (int) $soundData['repeat_sound_delay'];
?>
;confLH.show_alert = <?php 
echo (int) $soundData['show_alert'];
<?php

$soundData = erLhcoreClassModelChatConfig::fetch('sync_sound_settings')->data;
$soundMessageEnabled = erLhcoreClassModelUserSetting::getSetting('chat_message', (int) $soundData['new_message_sound_admin_enabled']);
$soundNewChatEnabled = erLhcoreClassModelUserSetting::getSetting('new_chat_sound', (int) $soundData['new_chat_sound_enabled']);
$canChangeOnlineStatus = false;
$currentUser = erLhcoreClassUser::instance();
if ($currentUser->hasAccessTo('lhuser', 'changeonlinestatus')) {
    $canChangeOnlineStatus = true;
    if (!isset($UserData)) {
        $UserData = $currentUser->getUserData(true);
    }
}
$canChangeVisibilityMode = false;
if ($currentUser->hasAccessTo('lhuser', 'changevisibility')) {
    $canChangeVisibilityMode = true;
    if (!isset($UserData)) {
        $UserData = $currentUser->getUserData(true);
    }
}
?>

<?php 
if ($currentUser->hasAccessTo('lhchat', 'use')) {
    ?>

<?php 
    if (!isset($hideULSetting)) {
        ?>
<ul class="list-inline user-settings-list pull-right">
<?php 
Exemple #21
0
    <div class="columns large-<?php 
$canUseChat == true ? print '9' : (print '12');
?>
">
    	<?php 
echo $Result['content'];
?>
    </div>

    <?php 
if ($canUseChat == true) {
    $pendingTabEnabled = (int) erLhcoreClassModelUserSetting::getSetting('enable_pending_list', 1);
    $activeTabEnabled = (int) erLhcoreClassModelUserSetting::getSetting('enable_active_list', 1);
    $closedTabEnabled = (int) erLhcoreClassModelUserSetting::getSetting('enable_close_list', 0);
    $unreadTabEnabled = (int) erLhcoreClassModelUserSetting::getSetting('enable_unread_list', 1);
    ?>
    <div class="columns large-3" id="right-column-page" ng-cloak>
			<div class="section-container auto" data-section="auto">
			  <section>
			    <p class="title" data-section-title><a title="<?php 
    echo erTranslationClassLhTranslation::getInstance()->getTranslation('pagelayout/pagelayout', 'Chats transferred to you directly');
    ?>
" href="#panel1"><i class="icon-user"></i><span class="tru-cnt"></span></a></p>
			    <div class="content" data-section-content>
			      <div id="right-transfer-chats">
			      		<?php 
    include erLhcoreClassDesign::designtpl('lhchat/lists/angular_transfer_chats.tpl.php');
    ?>
		            </div>
			    </div>
?>
" id="pending">
	   <form action="<?php 
echo erLhcoreClassDesign::baseurl('user/edit');
?>
/<?php 
echo $user->id;
?>
#pending" method="post">

	  	<?php 
include erLhcoreClassDesign::designtpl('lhkernel/csfr_token.tpl.php');
?>

		<label><input type="checkbox" name="showAllPendingEnabled" value="1" <?php 
erLhcoreClassModelUserSetting::getSetting('show_all_pending', 1, $user->id) == 1 ? print 'checked="checked"' : '';
?>
 /> <?php 
echo erTranslationClassLhTranslation::getInstance()->getTranslation('user/account', 'User can see all pending chats, not only assigned to him');
?>
</label><br>
		
		<input type="submit" class="btn btn-default" name="UpdatePending_account" value="<?php 
echo erTranslationClassLhTranslation::getInstance()->getTranslation('user/account', 'Update');
?>
"/>
	   </form>
    </div>
    <?php 
if (erLhcoreClassUser::instance()->hasAccessTo('lhpermission', 'see_permissions_users')) {
    ?>