Add the new variable `FileProcessorFormField::$bigPreview` with getter and setter.
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / package / PackageUpdateUnauthorizedException.class.php
CommitLineData
3536d2fe 1<?php
a9229942 2
3536d2fe 3namespace wcf\system\package;
a9229942 4
3536d2fe
AE
5use wcf\data\package\update\server\PackageUpdateServer;
6use wcf\system\exception\UserException;
3536d2fe
AE
7use wcf\system\WCF;
8use wcf\util\HTTPRequest;
9
10/**
11 * Credentials for update server are either missing or invalid.
a9229942
TD
12 *
13 * @author Alexander Ebert
14 * @copyright 2001-2019 WoltLab GmbH
15 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
3536d2fe 16 */
a9229942
TD
17class PackageUpdateUnauthorizedException extends UserException
18{
19 /**
20 * package update version
21 * @var array
22 */
23 protected $packageUpdateVersion = [];
24
25 /**
26 * HTTP request object
27 * @var HTTPRequest
28 */
29 protected $request;
30
31 /**
32 * package update server object
33 * @var PackageUpdateServer
34 */
35 protected $updateServer;
36
37 /**
38 * Creates a new PackageUpdateUnauthorizedException object.
39 *
40 * @param HTTPRequest $request
41 * @param PackageUpdateServer $updateServer
42 * @param array $packageUpdateVersion
43 */
44 public function __construct(
45 HTTPRequest $request,
46 PackageUpdateServer $updateServer,
47 array $packageUpdateVersion = []
48 ) {
49 $this->request = $request;
50 $this->updateServer = $updateServer;
51 $this->packageUpdateVersion = $packageUpdateVersion;
52 }
53
54 /**
55 * Returns the rendered template.
56 *
57 * @return string
58 */
59 public function getRenderedTemplate()
60 {
61 $serverReply = $this->request->getReply();
62
33dae5a6
AE
63 $requiresPaidUpgrade = false;
64 if ($this->updateServer->isWoltLabStoreServer() && !empty($this->packageUpdateVersion['pluginStoreFileID'])) {
65 $requiresPaidUpgrade = ($serverReply['httpHeaders']['wcf-update-server-requires-paid-upgrade'][0] ?? '') === 'true';
66 }
67
68 if ($requiresPaidUpgrade) {
69 WCF::getTPL()->assign([
70 'packageName' => $this->packageUpdateVersion['packageName'],
71 'pluginStoreFileID' => $this->packageUpdateVersion['pluginStoreFileID'],
72 ]);
73
74 return WCF::getTPL()->fetch('packageUpdateUnauthorizedPaidUpgrade');
75 }
76
2ff4f82c 77 $authInsufficient = (($serverReply['httpHeaders']['wcf-update-server-auth'][0] ?? '') === 'unauthorized');
d38c2db2
AE
78 if ($authInsufficient && !empty($this->packageUpdateVersion['pluginStoreFileID'])) {
79 $hasOnlyTrustedServers = true;
127c944c
AE
80 foreach (PackageUpdateServer::getActiveUpdateServers() as $updateServer) {
81 if (!$updateServer->isWoltLabUpdateServer() && !$updateServer->isWoltLabStoreServer()) {
82 $hasOnlyTrustedServers = false;
83 break;
d38c2db2
AE
84 }
85 }
2ff4f82c 86
d38c2db2
AE
87 if ($hasOnlyTrustedServers) {
88 WCF::getTPL()->assign([
89 'packageName' => $this->packageUpdateVersion['packageName'],
90 'pluginStoreFileID' => $this->packageUpdateVersion['pluginStoreFileID'],
91 ]);
92
93 return WCF::getTPL()->fetch('packageUpdateUnauthorizedPurchaseRequired');
94 }
2ff4f82c
AE
95 }
96
a9229942 97 WCF::getTPL()->assign([
2ff4f82c 98 'authInsufficient' => $authInsufficient,
a9229942
TD
99 'packageUpdateVersion' => $this->packageUpdateVersion,
100 'request' => $this->request,
101 'updateServer' => $this->updateServer,
102 'serverAuthData' => $this->updateServer->getAuthData(),
103 'serverReply' => $serverReply,
33dae5a6 104 'requiresPaidUpgrade' => $requiresPaidUpgrade,
a9229942
TD
105 ]);
106
107 return WCF::getTPL()->fetch('packageUpdateUnauthorized');
108 }
109
110 /**
111 * Returns package update version.
112 *
113 * @return array
114 */
115 public function getPackageUpdateVersion()
116 {
117 return $this->packageUpdateVersion;
118 }
119
120 /**
121 * Returns the HTTP request object.
122 *
123 * @return HTTPRequest
124 */
125 public function getRequest()
126 {
127 return $this->request;
128 }
129
130 /**
131 * Returns package update server object.
132 *
133 * @return PackageUpdateServer
134 */
135 public function getUpdateServer()
136 {
137 return $this->updateServer;
138 }
3536d2fe 139}