1<?php 2 3/* 4 * This file is part of the TYPO3 CMS project. 5 * 6 * It is free software; you can redistribute it and/or modify it under 7 * the terms of the GNU General Public License, either version 2 8 * of the License, or any later version. 9 * 10 * For the full copyright and license information, please read the 11 * LICENSE.txt file that was distributed with this source code. 12 * 13 * The TYPO3 project - inspiring people to share! 14 */ 15 16namespace TYPO3\CMS\Install\Updates; 17 18use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; 19 20/** 21 * Installs and downloads EXT:rsaauth if requested 22 * @internal This class is only meant to be used within EXT:install and is not part of the TYPO3 Core API. 23 */ 24class RsaauthExtractionUpdate extends AbstractDownloadExtensionUpdate 25{ 26 /** 27 * @var \TYPO3\CMS\Install\Updates\ExtensionModel 28 */ 29 protected $extension; 30 31 /** 32 * @var \TYPO3\CMS\Install\Updates\Confirmation 33 */ 34 protected $confirmation; 35 36 public function __construct() 37 { 38 $this->extension = new ExtensionModel( 39 'rsaauth', 40 'Deprecated rsaauth extension', 41 '10.0.0', 42 'friendsoftypo3/rsaauth', 43 'Contains a service to authenticate TYPO3 BE and FE users using private/public key encryption of passwords.' 44 ); 45 46 $this->confirmation = new Confirmation( 47 'Are you sure?', 48 'Do not install this extension. Use HTTPS instead. ' . $this->extension->getDescription(), 49 false 50 ); 51 } 52 53 /** 54 * Return a confirmation message instance 55 * 56 * @return \TYPO3\CMS\Install\Updates\Confirmation 57 */ 58 public function getConfirmation(): Confirmation 59 { 60 return $this->confirmation; 61 } 62 63 /** 64 * Return the identifier for this wizard 65 * This should be the same string as used in the ext_localconf class registration 66 * 67 * @return string 68 */ 69 public function getIdentifier(): string 70 { 71 return 'rsaauthExtension'; 72 } 73 74 /** 75 * Return the speaking name of this wizard 76 * 77 * @return string 78 */ 79 public function getTitle(): string 80 { 81 return 'Install extension "rsaauth" from TER if the site is still not secured using HTTPS'; 82 } 83 84 /** 85 * Return the description for this wizard 86 * 87 * @return string 88 */ 89 public function getDescription(): string 90 { 91 return 'The extension "rsaauth" adds a public/private key based encryption for Backend and Frontend' 92 . ' login passwords. The approach is limited and has various flaws. The extension is fully' 93 . ' obsolete if the instance uses HTTPS.'; 94 } 95 96 /** 97 * Is an update necessary? 98 * Is used to determine whether a wizard needs to be run. 99 * 100 * @return bool 101 */ 102 public function updateNecessary(): bool 103 { 104 return !ExtensionManagementUtility::isLoaded('rsaauth'); 105 } 106 107 /** 108 * Returns an array of class names of Prerequisite classes 109 * This way a wizard can define dependencies like "database up-to-date" or 110 * "reference index updated" 111 * 112 * @return string[] 113 */ 114 public function getPrerequisites(): array 115 { 116 return [ 117 DatabaseUpdatedPrerequisite::class 118 ]; 119 } 120} 121