/** * Get the LTI Configuration generator * * @return Generator */ public function getGenerator() { try { if (empty($this->generator)) { $this->setGenerator(new Generator($this->metadata['TOOL_NAME'], $this->metadata['TOOL_ID'], $this->metadata['TOOL_LAUNCH_URL'], empty($this->metadata['TOOL_DESCRIPTION']) ? false : $this->metadata['TOOL_DESCRIPTION'], empty($this->metadata['TOOL_ICON_URL']) ? false : $this->metadata['TOOL_ICON_URL'], empty($this->metadata['TOOL_LAUNCH_PRIVACY']) ? LaunchPrivacy::USER_PROFILE() : $this->metadata['TOOL_LAUNCH_PRIVACY'], empty($this->metadata['TOOL_DOMAIN']) ? false : $this->metadata['TOOL_DOMAIN'])); } } catch (LTIConfigGeneratorException $e) { throw new ConfigurationException($e->getMessage(), ConfigurationException::TOOL_PROVIDER); } return $this->generator; }
/** * Set the level of user profile privacy requested of the Tool Consumer * * @param string $launchPrivacy Must be a valid value of the * `LaunchPrivacy` enumerated type * * @see LaunchPrivacy `LaunchPrivacy` enumerated type */ public function setLaunchPrivacy($launchPrivacy) { if (!is_a($launchPrivacy, LaunchPrivacy::class) && !LaunchPrivacy::isValid($launchPrivacy)) { throw new ConfigurationException("Invalid launch privacy setting '{$launchPrivacy}'", ConfigurationException::TOOL_PROVIDER); } else { $this->launchPrivacy = empty($launchPrivacy) ? LaunchPrivacy::ANONYMOUS() : $launchPrivacy; } }