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