Resolve language item-related PIP GUI todos
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / package / PackageUpdateUnauthorizedException.class.php
CommitLineData
3536d2fe
AE
1<?php
2namespace wcf\system\package;
3use wcf\data\package\update\server\PackageUpdateServer;
4use wcf\system\exception\UserException;
3536d2fe
AE
5use wcf\system\WCF;
6use wcf\util\HTTPRequest;
7
8/**
9 * Credentials for update server are either missing or invalid.
10 *
11 * @author Alexander Ebert
c839bd49 12 * @copyright 2001-2018 WoltLab GmbH
3536d2fe 13 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
e71525e4 14 * @package WoltLabSuite\Core\System\Package
3536d2fe
AE
15 */
16class PackageUpdateUnauthorizedException extends UserException {
17 /**
18 * package update version
19 * @var array
20 */
058cbd6a 21 protected $packageUpdateVersion = [];
3536d2fe
AE
22
23 /**
24 * HTTP request object
4e25add7 25 * @var HTTPRequest
3536d2fe
AE
26 */
27 protected $request = null;
28
29 /**
30 * package update server object
4e25add7 31 * @var PackageUpdateServer
3536d2fe
AE
32 */
33 protected $updateServer = null;
34
35 /**
36 * Creates a new PackageUpdateUnauthorizedException object.
37 *
4e25add7
MS
38 * @param HTTPRequest $request
39 * @param PackageUpdateServer $updateServer
40 * @param array $packageUpdateVersion
3536d2fe 41 */
058cbd6a 42 public function __construct(HTTPRequest $request, PackageUpdateServer $updateServer, array $packageUpdateVersion = []) {
3536d2fe
AE
43 $this->request = $request;
44 $this->updateServer = $updateServer;
45 $this->packageUpdateVersion = $packageUpdateVersion;
46 }
47
48 /**
49 * Returns the rendered template.
50 *
51 * @return string
52 */
53 public function getRenderedTemplate() {
c9b6fc9b
AE
54 $serverReply = $this->request->getReply();
55
058cbd6a 56 WCF::getTPL()->assign([
c9b6fc9b 57 'authInsufficient' => (isset($serverReply['httpHeaders']['wcf-update-server-auth'][0]) && $serverReply['httpHeaders']['wcf-update-server-auth'][0] === 'unauthorized'),
3536d2fe
AE
58 'packageUpdateVersion' => $this->packageUpdateVersion,
59 'request' => $this->request,
c9b6fc9b
AE
60 'updateServer' => $this->updateServer,
61 'serverAuthData' => $this->updateServer->getAuthData(),
62 'serverReply' => $serverReply
058cbd6a 63 ]);
3536d2fe
AE
64
65 return WCF::getTPL()->fetch('packageUpdateUnauthorized');
66 }
67
68 /**
69 * Returns package update version.
59dc0db6 70 *
3536d2fe
AE
71 * @return array
72 */
73 public function getPackageUpdateVersion() {
74 return $this->packageUpdateVersion;
75 }
76
77 /**
78 * Returns the HTTP request object.
59dc0db6 79 *
4e25add7 80 * @return HTTPRequest
3536d2fe
AE
81 */
82 public function getRequest() {
83 return $this->request;
84 }
85
86 /**
87 * Returns package update server object.
59dc0db6 88 *
4e25add7 89 * @return PackageUpdateServer
3536d2fe
AE
90 */
91 public function getUpdateServer() {
92 return $this->updateServer;
93 }
94}