2 declare(strict_types
=1);
3 namespace wcf\system\package
;
4 use wcf\data\package\update\server\PackageUpdateServer
;
5 use wcf\system\exception\UserException
;
7 use wcf\util\HTTPRequest
;
10 * Credentials for update server are either missing or invalid.
12 * @author Alexander Ebert
13 * @copyright 2001-2018 WoltLab GmbH
14 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
15 * @package WoltLabSuite\Core\System\Package
17 class PackageUpdateUnauthorizedException
extends UserException
{
19 * package update version
22 protected $packageUpdateVersion = [];
28 protected $request = null;
31 * package update server object
32 * @var PackageUpdateServer
34 protected $updateServer = null;
37 * Creates a new PackageUpdateUnauthorizedException object.
39 * @param HTTPRequest $request
40 * @param PackageUpdateServer $updateServer
41 * @param array $packageUpdateVersion
43 public function __construct(HTTPRequest
$request, PackageUpdateServer
$updateServer, array $packageUpdateVersion = []) {
44 $this->request
= $request;
45 $this->updateServer
= $updateServer;
46 $this->packageUpdateVersion
= $packageUpdateVersion;
50 * Returns the rendered template.
54 public function getRenderedTemplate() {
55 $serverReply = $this->request
->getReply();
57 WCF
::getTPL()->assign([
58 'authInsufficient' => (isset($serverReply['httpHeaders']['wcf-update-server-auth'][0]) && $serverReply['httpHeaders']['wcf-update-server-auth'][0] === 'unauthorized'),
59 'packageUpdateVersion' => $this->packageUpdateVersion
,
60 'request' => $this->request
,
61 'updateServer' => $this->updateServer
,
62 'serverAuthData' => $this->updateServer
->getAuthData(),
63 'serverReply' => $serverReply
66 return WCF
::getTPL()->fetch('packageUpdateUnauthorized');
70 * Returns package update version.
74 public function getPackageUpdateVersion() {
75 return $this->packageUpdateVersion
;
79 * Returns the HTTP request object.
83 public function getRequest() {
84 return $this->request
;
88 * Returns package update server object.
90 * @return PackageUpdateServer
92 public function getUpdateServer() {
93 return $this->updateServer
;