/** * @param int $a_usr_id * @return bool|int */ protected function getViteroUserId($a_usr_id) { $this->getViteroInstance()->includeClass('class.ilViteroUserMapping.php'); $map = new ilViteroUserMapping(); $vuser = $map->getVUserId($a_usr_id); return $vuser != 0 ? $vuser : false; }
/** * Update enabled status * @param <type> $users * @param <type> $group_id * @param <type> $status */ public function updateEnabledStatusForUsers($users, $group_id, $status) { $mapping = new ilViteroUserMapping(); foreach ($users as $usr_id) { try { $vuser = $mapping->getVUserId($usr_id); if ($vuser) { $this->changeEnabled($vuser, $group_id, $status); } } catch (Exception $e) { $GLOBALS['ilLog']->write(__METHOD__ . ': Update status failed with message ' . $e); } } }
/** * start session * @global <type> $ilDB */ public function startSession() { global $ilDB, $ilUser, $ilCtrl, $ilAccess; // Handle deleted accounts ilObjVitero::handleDeletedUsers(); try { // Create update user $map = new ilViteroUserMapping(); $vuid = $map->getVUserId($ilUser->getId()); $ucon = new ilViteroUserSoapConnector(); if (!$vuid) { $vuid = $ucon->createUser($ilUser); $map->map($ilUser->getId(), $vuid); } else { try { $ucon->updateUser($vuid, $ilUser); } catch (ilViteroConnectorException $e) { if ($e->getCode() == 53) { $map->unmap($ilUser->getId()); $vuid = $ucon->createUser($ilUser); $map->map($ilUser->getId(), $vuid); } } } // Store update image if (ilViteroSettings::getInstance()->isAvatarEnabled()) { $usr_image_path = ilUtil::getWebspaceDir() . '/usr_images/usr_' . $ilUser->getId() . '.jpg'; if (@file_exists($usr_image_path)) { $ucon->storeAvatarUsingBase64($vuid, array('name' => 'usr_image.jpg', 'type' => ilViteroAvatarSoapConnector::FILE_TYPE_NORMAL, 'file' => $usr_image_path)); } } /* if(ilViteroSettings::getInstance()->isAvatarEnabled() and 0) { try { $avatar_service = new ilViteroAvatarSoapConnector(); $usr_image_path = ilUtil::getWebspaceDir().'/usr_images/usr_'.$ilUser->getId().'.jpg'; if(@file_exists($usr_image_path)) { $avatar_service->storeAvatar( $vuid, array( 'name' => 'usr_image.jpg', 'type' => ilViteroAvatarSoapConnector::FILE_TYPE_NORMAL, 'file' => $usr_image_path ) ); } } catch(ilViteroConnectorException $e) { // continue } } */ // Assign user to vitero group $grp = new ilViteroGroupSoapConnector(); $grp->addUserToGroup($this->object->getVGroupId(), $vuid); $grp->changeGroupRole($this->object->getVGroupId(), $vuid, $ilAccess->checkAccess('write', '', $this->object->getRefId()) ? ilViteroGroupSoapConnector::ADMIN_ROLE : ilViteroGroupSoapConnector::MEMBER_ROLE); $sc = new ilViteroSessionCodeSoapConnector(); $dur = new ilDateTime(time(), IL_CAL_UNIX); $dur->increment(IL_CAL_HOUR, 2); $code = $sc->createPersonalBookingSessionCode($vuid, (int) $_GET['bid'], $dur); $GLOBALS['ilLog']->write(__METHOD__ . ': ' . ilViteroSettings::getInstance()->getWebstartUrl() . '?code=' . $code); ilUtil::redirect(ilViteroSettings::getInstance()->getWebstartUrl() . '?sessionCode=' . $code); } catch (ilViteroConnectorException $e) { ilUtil::sendFailure($e->getViteroMessage(), true); $ilCtrl->redirect($this, 'infoScreen'); } }
public static function handleDeletedUsers() { global $ilDB; $query = 'SELECT DISTINCT(vuid) FROM rep_robj_xvit_umap ' . 'LEFT JOIN usr_data ON iuid = usr_id ' . 'WHERE usr_id IS NULL ' . 'GROUP BY vuid '; $res = $ilDB->query($query); while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) { try { $user_service = new ilViteroUserSoapConnector(); $user_service->deleteUser($row->vuid); } catch (ilViteroConnectorException $e) { } $umap = new ilViteroUserMapping(); $umap->deleteByViteroUserId($row->vuid); } }