Added proper error message for commercial products via update server
authorAlexander Ebert <ebert@woltlab.com>
Thu, 18 Sep 2014 11:52:37 +0000 (13:52 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Thu, 18 Sep 2014 11:52:37 +0000 (13:52 +0200)
wcfsetup/install/files/lib/data/package/update/PackageUpdate.class.php
wcfsetup/install/files/lib/system/package/PackageInstallationScheduler.class.php
wcfsetup/install/files/lib/system/package/PackageUpdateDispatcher.class.php
wcfsetup/install/files/lib/util/HTTPRequest.class.php
wcfsetup/install/lang/de.xml
wcfsetup/install/lang/en.xml

index 0b7a6ecf9abb46015c9423ee15691b3116ef3ad0..db130cfda2d782bf88bbee7db088528b34c8f1ac 100644 (file)
@@ -23,6 +23,12 @@ class PackageUpdate extends DatabaseObject {
         */
        protected static $databaseTableIndexName = 'packageUpdateID';
        
+       /**
+        * package update API version
+        * @var string
+        */
+       const API_VERSION = '2.1';
+       
        /**
         * Returns the name of the package the update belongs to.
         * 
index 19416dabcc17f251514209c7633dbd59506b52c6..897139cb038e3df814d7a53171396a0c99923475 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 namespace wcf\system\package;
 use wcf\data\package\update\server\PackageUpdateServer;
+use wcf\data\package\update\PackageUpdate;
 use wcf\data\package\Package;
 use wcf\data\package\PackageCache;
 use wcf\system\database\util\PreparedStatementConditionBuilder;
@@ -232,6 +233,7 @@ class PackageInstallationScheduler {
                                        $this->packageUpdateServers[$packageUpdateVersion['packageUpdateServerID']]->serverURL,
                                        (!empty($authData) ? array('auth' => $authData) : array()),
                                        array(
+                                               'apiVersion' => PackageUpdate::API_VERSION,
                                                'packageName' => $packageUpdateVersion['package'],
                                                'packageVersion' => $packageUpdateVersion['packageVersion']
                                        )
index 5b6d1fa41d71e5ea0702bfdc21396f723e164932..602ca971bb10577c8687c81a68251d4dad2acabb 100644 (file)
@@ -3,9 +3,8 @@ namespace wcf\system\package;
 use wcf\data\package\update\server\PackageUpdateServer;
 use wcf\data\package\update\server\PackageUpdateServerEditor;
 use wcf\data\package\update\version\PackageUpdateVersionEditor;
-use wcf\data\package\update\version\PackageUpdateVersionList;
+use wcf\data\package\update\PackageUpdate;
 use wcf\data\package\update\PackageUpdateEditor;
-use wcf\data\package\update\PackageUpdateList;
 use wcf\data\package\Package;
 use wcf\system\cache\builder\PackageUpdateCacheBuilder;
 use wcf\system\database\util\PreparedStatementConditionBuilder;
@@ -17,6 +16,7 @@ use wcf\system\SingletonFactory;
 use wcf\system\WCF;
 use wcf\util\HTTPRequest;
 use wcf\util\XML;
+use wcf\data\package\update\PackageUpdate;
 
 /**
  * Provides functions to manage package updates.
@@ -84,6 +84,7 @@ class PackageUpdateDispatcher extends SingletonFactory {
                if ($authData) $settings['auth'] = $authData;
                
                $postData = array(
+                       'apiVersion' => PackageUpdate::API_VERSION,
                        'lastUpdateTime' => $updateServer->lastUpdateTime
                );
                
index 3289cb94906ab40205f957fec3dec5f835fa9c8d..7e0589671ef66a620284cb91339ac8dc8a59a195 100644 (file)
@@ -432,6 +432,7 @@ final class HTTPRequest {
                        break;
                        
                        case '401':
+                       case '402':
                        case '403':
                                throw new HTTPUnauthorizedException("Received status code '".$this->statusCode."' from server");
                        break;
index e583b3bb5ee8e14dd6763a2f78adf9a53bc157a0..c165d8bb7e82d54cd68005cc628e5e3c96cafa02 100644 (file)
@@ -1133,6 +1133,7 @@ GmbH=Gesellschaft mit beschränkter Haftung]]></item>
                <item name="wcf.acp.package.update.credentials"><![CDATA[Zugangsdaten]]></item>
                <item name="wcf.acp.package.update.error.listNotFound"><![CDATA[Die Paketliste konnte nicht abgerufen werden]]></item>
                <item name="wcf.acp.package.update.errorCode.401"><![CDATA[Ihre Angaben sind ungültig, bitte überprüfen Sie {if $updateServer->requiresLicense()}Lizenz- und Seriennummer{else}Benutzername und Passwort{/if}.]]></item>
+               <item name="wcf.acp.package.update.errorCode.402"><![CDATA[{if $updateServer->requiresLicense()}Lizenz- und Seriennummer{else}Benutzername und Passwort{/if} wurden vom Server akzeptiert, es handelt sich aber um einer kommerzielles Produkt auf das diese Zugangsdaten keinen Zugriff haben.]]></item>
                <item name="wcf.acp.package.update.errorCode.403"><![CDATA[Sie sind nicht berechtigt auf dieses Paket zuzugreifen.]]></item>
                <item name="wcf.acp.package.update.licenseNo"><![CDATA[Lizenznummer]]></item>
                <item name="wcf.acp.package.update.password"><![CDATA[Passwort]]></item>
index b3a4fc4229fee1f0fa9413275b056c931d5b47cf..2eb20232cf56aec2728e1f19ce4e1ad90533562f 100644 (file)
@@ -1132,6 +1132,7 @@ GmbH=Gesellschaft mit beschränkter Haftung]]></item>
                <item name="wcf.acp.package.update.credentials"><![CDATA[Credentials]]></item>
                <item name="wcf.acp.package.update.error.listNotFound"><![CDATA[The package list could not be retrieved]]></item>
                <item name="wcf.acp.package.update.errorCode.401"><![CDATA[Your credentials are invalid, please verify {if $updateServer->requiresLicense()}license and serial number{else}username and password{/if}.]]></item>
+               <item name="wcf.acp.package.update.errorCode.401"><![CDATA[{if $updateServer->requiresLicense()}License and serial number{else}Username and password{/if} have been accepted by the server, but they do not grant you the permission to download this commercial product.]]></item>
                <item name="wcf.acp.package.update.errorCode.403"><![CDATA[You are not allowed to access this package.]]></item>
                <item name="wcf.acp.package.update.licenseNo"><![CDATA[License Number]]></item>
                <item name="wcf.acp.package.update.password"><![CDATA[Password]]></item>