addUserDepartaments() public static method

public static addUserDepartaments ( $Departaments, $userID = false, $UserData = false )
 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');
     }
 }
Exemplo n.º 2
0
    }
    $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;
        $globalDepartament[] = -1;
    }
    erLhcoreClassUser::getSession()->update($UserData);
    if (isset($_POST['UserDepartament']) && count($_POST['UserDepartament']) > 0) {
        $globalDepartament = array_merge($_POST['UserDepartament'], $globalDepartament);
    }
    if (count($globalDepartament) > 0) {
        erLhcoreClassUserDep::addUserDepartaments($globalDepartament, $Params['user_parameters']['user_id'], $UserData);
    } else {
        erLhcoreClassUserDep::addUserDepartaments(array(), $Params['user_parameters']['user_id'], $UserData);
    }
    $tpl->set('account_updated_departaments', 'done');
}
$tpl->set('user', $UserData);
$Result['content'] = $tpl->fetch();
$Result['path'] = array(array('url' => erLhcoreClassDesign::baseurl('system/configuration'), 'title' => erTranslationClassLhTranslation::getInstance()->getTranslation('user/edit', 'System configuration')), array('url' => erLhcoreClassDesign::baseurl('user/userlist'), 'title' => erTranslationClassLhTranslation::getInstance()->getTranslation('user/edit', 'Users')), array('title' => erTranslationClassLhTranslation::getInstance()->getTranslation('user/edit', 'User edit') . ' - ' . $UserData->name . ' ' . $UserData->surname));
Exemplo n.º 3
0
     $UserData->all_departments = 1;
     $globalDepartament[] = 0;
 } else {
     $UserData->all_departments = 0;
 }
 if (count($Errors) == 0) {
     $UserData->setPassword($form->Password);
     $UserData->email = $form->Email;
     $UserData->name = $form->Name;
     $UserData->username = $form->Username;
     erLhcoreClassUser::getSession()->save($UserData);
     if (isset($_POST['UserDepartament']) && count($_POST['UserDepartament']) > 0) {
         $globalDepartament = array_merge($_POST['UserDepartament'], $globalDepartament);
     }
     if (count($globalDepartament) > 0) {
         erLhcoreClassUserDep::addUserDepartaments($globalDepartament, $UserData->id, $UserData);
     }
     erLhcoreClassModelGroupUser::removeUserFromGroups($UserData->id);
     foreach ($UserData->user_groups_id as $group_id) {
         $groupUser = new erLhcoreClassModelGroupUser();
         $groupUser->group_id = $group_id;
         $groupUser->user_id = $UserData->id;
         $groupUser->saveThis();
     }
     // Store photo
     if (isset($_FILES["UserPhoto"]) && is_uploaded_file($_FILES["UserPhoto"]["tmp_name"]) && $_FILES["UserPhoto"]["error"] == 0 && erLhcoreClassImageConverter::isPhoto('UserPhoto')) {
         $dir = 'var/userphoto/' . date('Y') . 'y/' . date('m') . '/' . date('d') . '/' . $UserData->id . '/';
         erLhcoreClassChatEventDispatcher::getInstance()->dispatch('user.edit.photo_path', array('dir' => &$dir, 'storage_id' => $UserData->id));
         erLhcoreClassFileUpload::mkdirRecursive($dir);
         $file = qqFileUploader::upload($_FILES, 'UserPhoto', $dir);
         if (empty($file["errors"])) {
Exemplo n.º 4
0
    }
    $globalDepartament = array();
    if (isset($_POST['all_departments']) && $_POST['all_departments'] == 'on') {
        $UserData->all_departments = 1;
        $globalDepartament[] = 0;
    } else {
        $UserData->all_departments = 0;
    }
    erLhcoreClassUser::getSession()->update($UserData);
    if (isset($_POST['UserDepartament']) && count($_POST['UserDepartament']) > 0) {
        $globalDepartament = array_merge($_POST['UserDepartament'], $globalDepartament);
    }
    if (count($globalDepartament) > 0) {
        erLhcoreClassUserDep::addUserDepartaments($globalDepartament, false, $UserData);
    } else {
        erLhcoreClassUserDep::addUserDepartaments(array(), false, $UserData);
    }
    $tpl->set('account_updated_departaments', 'done');
    $tpl->set('tab', 'tab_departments');
}
// If already set during account update
if (!isset($UserData)) {
    $UserData = $currentUser->getUserData();
}
$tpl->set('editdepartaments', $allowEditDepartaments);
$tpl->set('user', $UserData);
if (erLhcoreClassUser::instance()->hasAccessTo('lhuser', 'personalcannedmsg')) {
    /**
     * Canned messages part
     * */
    $cannedMessage = new erLhcoreClassModelCannedMsg();
Exemplo n.º 5
0
        $tpl->set('errors', $Errors);
    }
}
if (isset($_POST['UpdatePending_account'])) {
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('user/edit', '/' . $UserData->id);
        exit;
    }
    $showAllPending = erLhcoreClassUserValidator::validateShowAllPendingOption();
    erLhcoreClassModelUserSetting::setSetting('show_all_pending', $showAllPending, $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/edit', '/' . $UserData->id);
        exit;
    }
    $globalDepartament = erLhcoreClassUserValidator::validateDepartments($UserData, array('all_departments_0_global_value' => -1));
    erLhcoreClassUser::getSession()->update($UserData);
    if (count($globalDepartament) > 0) {
        erLhcoreClassUserDep::addUserDepartaments($globalDepartament, $UserData->id, $UserData);
    } else {
        erLhcoreClassUserDep::addUserDepartaments(array(), $UserData->id, $UserData);
    }
    $tpl->set('account_updated_departaments', 'done');
}
$tpl->set('user', $UserData);
$Result['content'] = $tpl->fetch();
$Result['path'] = array(array('url' => erLhcoreClassDesign::baseurl('system/configuration'), 'title' => erTranslationClassLhTranslation::getInstance()->getTranslation('user/edit', 'System configuration')), array('url' => erLhcoreClassDesign::baseurl('user/userlist'), 'title' => erTranslationClassLhTranslation::getInstance()->getTranslation('user/edit', 'Users')), array('title' => erTranslationClassLhTranslation::getInstance()->getTranslation('user/edit', 'User edit') . ' - ' . $UserData->name . ' ' . $UserData->surname));
erLhcoreClassChatEventDispatcher::getInstance()->dispatch('user.edit_path', array('result' => &$Result));
Exemplo n.º 6
0
$userDepartamentsGroup = isset($_POST['UserDepartamentGroup']) ? $_POST['UserDepartamentGroup'] : array();
$userParams = array('show_all_pending' => 1, 'global_departament' => array());
$tpl->set('tab', $Params['user_parameters_unordered']['tab'] == 'canned' ? 'tab_canned' : '');
if (isset($_POST['Update_account'])) {
    if (!isset($_POST['csfr_token']) || !$currentUser->validateCSFRToken($_POST['csfr_token'])) {
        erLhcoreClassModule::redirect('user/new');
        exit;
    }
    $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();