erLhcoreClassModelDepartamentGroupUser::addUserDepartmentGroups PHP Method

addUserDepartmentGroups() public static method

public static addUserDepartmentGroups ( $userData, $groupsIds )
    public static function addUserDepartmentGroups($userData, $groupsIds)
    {
        $groups = self::getList(array('filter' => array('user_id' => $userData->id)));
        $oldMembers = array();
        foreach ($groups as $group) {
            if (!in_array($group->id, $groupsIds)) {
                $group->removeThis();
            } else {
                $oldMembers[] = $group->id;
            }
        }
        // Save new assignments
        foreach ($groupsIds as $groupId) {
            if (!in_array($groupId, $oldMembers)) {
                $member = new self();
                $member->user_id = $userData->id;
                $member->dep_group_id = $groupId;
                $member->saveThis();
            }
        }
        if (isset($_SESSION['lhCacheUserDepartaments_' . $userData->id])) {
            unset($_SESSION['lhCacheUserDepartaments_' . $userData->id]);
        }
    }

Usage Example

示例#1
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);