From e97bd18fd3fda073b79ca8b440802421d62405e7 Mon Sep 17 00:00:00 2001 From: Torben Hansen <derhansen@gmail.com> Date: Tue, 17 Jan 2023 21:16:29 +0100 Subject: [PATCH] [FEATURE] Allow to provide name for new admin users in ext:install MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The field `realName` has been added to the "Create Administrative User" modal in ext:install, so it is possible to provide the name of a new admin user. The notice in the header of the model has been removed, since it is superfluous now. Resolves: #99584 Releases: main Signed-off-by: Torben Hansen <derhansen@gmail.com> Change-Id: I6732bfe4d664f200b2bcc3471c6f0ffd9859365b Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77455 Tested-by: Georg Ringer <georg.ringer@gmail.com> Reviewed-by: Georg Ringer <georg.ringer@gmail.com> Tested-by: core-ci <typo3@b13.com> Tested-by: Stefan Bürk <stefan@buerk.tech> Reviewed-by: Stefan Bürk <stefan@buerk.tech> --- .../module/maintenance/create-admin.ts | 1 + ...deRealNameForNewAdminUsersInExtinstall.rst | 26 +++++++++++++++++++ .../Controller/MaintenanceController.php | 2 ++ .../Templates/Maintenance/CreateAdmin.html | 13 +++++++--- .../module/maintenance/create-admin.js | 2 +- 5 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 typo3/sysext/core/Documentation/Changelog/12.2/Feature-99584-AllowToProvideRealNameForNewAdminUsersInExtinstall.rst diff --git a/Build/Sources/TypeScript/install/module/maintenance/create-admin.ts b/Build/Sources/TypeScript/install/module/maintenance/create-admin.ts index ae144c6a0e4f..4258dfbfdeb6 100644 --- a/Build/Sources/TypeScript/install/module/maintenance/create-admin.ts +++ b/Build/Sources/TypeScript/install/module/maintenance/create-admin.ts @@ -72,6 +72,7 @@ class CreateAdmin extends AbstractInteractableModule { userPassword: this.findInModal('.t3js-createAdmin-password').val(), userPasswordCheck: this.findInModal('.t3js-createAdmin-password-check').val(), userEmail: this.findInModal('.t3js-createAdmin-email').val(), + realName: this.findInModal('.t3js-createAdmin-realname').val(), userSystemMaintainer: (this.findInModal('.t3js-createAdmin-system-maintainer').is(':checked')) ? 1 : 0, }, }; diff --git a/typo3/sysext/core/Documentation/Changelog/12.2/Feature-99584-AllowToProvideRealNameForNewAdminUsersInExtinstall.rst b/typo3/sysext/core/Documentation/Changelog/12.2/Feature-99584-AllowToProvideRealNameForNewAdminUsersInExtinstall.rst new file mode 100644 index 000000000000..257c6c2abca0 --- /dev/null +++ b/typo3/sysext/core/Documentation/Changelog/12.2/Feature-99584-AllowToProvideRealNameForNewAdminUsersInExtinstall.rst @@ -0,0 +1,26 @@ +.. include:: /Includes.rst.txt + +.. _feature-99584-1673985938: + +========================================================================== +Feature: #99584 - Allow to provide name for new admin users in ext:install +========================================================================== + +See :issue:`99584` + +Description +=========== + +The field `realName` has been added to the "Create Administrative User" modal +in ext:install, so it is possible to provide the name of a new admin user. + +The notice in the header of the model has been removed, since it is +superfluous now. + +Impact +====== + +It is now possible to provide the field `realName`, when a new admin user +is created in ext:install. + +.. index:: Backend, ext:install diff --git a/typo3/sysext/install/Classes/Controller/MaintenanceController.php b/typo3/sysext/install/Classes/Controller/MaintenanceController.php index 88788fe6de0c..7cd0b4b0cf54 100644 --- a/typo3/sysext/install/Classes/Controller/MaintenanceController.php +++ b/typo3/sysext/install/Classes/Controller/MaintenanceController.php @@ -489,6 +489,7 @@ class MaintenanceController extends AbstractController $password = $request->getParsedBody()['install']['userPassword']; $passwordCheck = $request->getParsedBody()['install']['userPasswordCheck']; $email = $request->getParsedBody()['install']['userEmail'] ?? ''; + $realName = $request->getParsedBody()['install']['realName'] ?? ''; $isSystemMaintainer = ((bool)$request->getParsedBody()['install']['userSystemMaintainer'] == '1') ? true : false; $messages = new FlashMessageQueue('install'); @@ -533,6 +534,7 @@ class MaintenanceController extends AbstractController 'username' => $username, 'password' => $hashedPassword, 'admin' => 1, + 'realName' => $realName, 'tstamp' => $GLOBALS['EXEC_TIME'], 'crdate' => $GLOBALS['EXEC_TIME'], ]; diff --git a/typo3/sysext/install/Resources/Private/Templates/Maintenance/CreateAdmin.html b/typo3/sysext/install/Resources/Private/Templates/Maintenance/CreateAdmin.html index 10f31bd91987..1ecb11f299a0 100644 --- a/typo3/sysext/install/Resources/Private/Templates/Maintenance/CreateAdmin.html +++ b/typo3/sysext/install/Resources/Private/Templates/Maintenance/CreateAdmin.html @@ -1,9 +1,5 @@ <html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true"> -<p> - After you've created the user, log in and add the rest of the user information, like real name. -</p> - <div class="t3js-module-content" data-create-admin-token="{createAdminToken}"> <form action="" id="t3js-createAdmin-form" method="post" spellcheck="false"> <div class="form-group"> @@ -44,6 +40,15 @@ required /> </div> + <div class="form-group"> + <label for="t3-install-admin-realname" class="control-label">Name</label> + <input + type="text" + class="t3-install-form-input-text t3js-createAdmin-realname form-control" + name="realName" + id="t3-install-admin-realname" + /> + </div> <div class="form-group"> <label for="t3-install-admin-email" class="control-label">Email address</label> <input diff --git a/typo3/sysext/install/Resources/Public/JavaScript/module/maintenance/create-admin.js b/typo3/sysext/install/Resources/Public/JavaScript/module/maintenance/create-admin.js index 0c2a34d158ae..260e00921217 100644 --- a/typo3/sysext/install/Resources/Public/JavaScript/module/maintenance/create-admin.js +++ b/typo3/sysext/install/Resources/Public/JavaScript/module/maintenance/create-admin.js @@ -10,4 +10,4 @@ * * The TYPO3 project - inspiring people to share! */ -import Modal from"@typo3/backend/modal.js";import Notification from"@typo3/backend/notification.js";import AjaxRequest from"@typo3/core/ajax/ajax-request.js";import Router from"@typo3/install/router.js";import PasswordStrength from"@typo3/install/module/password-strength.js";import{AbstractInteractableModule}from"@typo3/install/module/abstract-interactable-module.js";class CreateAdmin extends AbstractInteractableModule{constructor(){super(...arguments),this.selectorAdminCreateButton=".t3js-createAdmin-create"}initialize(t){this.currentModal=t,this.getData(),t.on("click",this.selectorAdminCreateButton,(t=>{t.preventDefault(),this.create()})),t.on("click",".t3-install-form-password-strength",(()=>{PasswordStrength.initialize(".t3-install-form-password-strength")}))}getData(){const t=this.getModalBody();new AjaxRequest(Router.getUrl("createAdminGetData")).get({cache:"no-cache"}).then((async e=>{const s=await e.resolve();!0===s.success?(t.empty().append(s.html),Modal.setButtons(s.buttons)):Notification.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")}),(e=>{Router.handleAjaxError(e,t)}))}create(){this.setModalButtonsState(!1);const t=this.getModalBody(),e={install:{action:"createAdmin",token:this.getModuleContent().data("create-admin-token"),userName:this.findInModal(".t3js-createAdmin-user").val(),userPassword:this.findInModal(".t3js-createAdmin-password").val(),userPasswordCheck:this.findInModal(".t3js-createAdmin-password-check").val(),userEmail:this.findInModal(".t3js-createAdmin-email").val(),userSystemMaintainer:this.findInModal(".t3js-createAdmin-system-maintainer").is(":checked")?1:0}};this.getModuleContent().find(":input").prop("disabled",!0),new AjaxRequest(Router.getUrl()).post(e).then((async t=>{const e=await t.resolve();!0===e.success&&Array.isArray(e.status)?(e.status.forEach((t=>{Notification.showMessage(t.title,t.message,t.severity)})),e.userCreated&&(this.findInModal(".t3js-createAdmin-user").val(""),this.findInModal(".t3js-createAdmin-password").val(""),this.findInModal(".t3js-createAdmin-password-check").val(""),this.findInModal(".t3js-createAdmin-email").val(""),this.findInModal(".t3js-createAdmin-system-maintainer").prop("checked",!1))):Notification.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")}),(e=>{Router.handleAjaxError(e,t)})).finally((()=>{this.setModalButtonsState(!0),this.getModuleContent().find(":input").prop("disabled",!1)}))}}export default new CreateAdmin; \ No newline at end of file +import Modal from"@typo3/backend/modal.js";import Notification from"@typo3/backend/notification.js";import AjaxRequest from"@typo3/core/ajax/ajax-request.js";import Router from"@typo3/install/router.js";import PasswordStrength from"@typo3/install/module/password-strength.js";import{AbstractInteractableModule}from"@typo3/install/module/abstract-interactable-module.js";class CreateAdmin extends AbstractInteractableModule{constructor(){super(...arguments),this.selectorAdminCreateButton=".t3js-createAdmin-create"}initialize(t){this.currentModal=t,this.getData(),t.on("click",this.selectorAdminCreateButton,(t=>{t.preventDefault(),this.create()})),t.on("click",".t3-install-form-password-strength",(()=>{PasswordStrength.initialize(".t3-install-form-password-strength")}))}getData(){const t=this.getModalBody();new AjaxRequest(Router.getUrl("createAdminGetData")).get({cache:"no-cache"}).then((async e=>{const s=await e.resolve();!0===s.success?(t.empty().append(s.html),Modal.setButtons(s.buttons)):Notification.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")}),(e=>{Router.handleAjaxError(e,t)}))}create(){this.setModalButtonsState(!1);const t=this.getModalBody(),e={install:{action:"createAdmin",token:this.getModuleContent().data("create-admin-token"),userName:this.findInModal(".t3js-createAdmin-user").val(),userPassword:this.findInModal(".t3js-createAdmin-password").val(),userPasswordCheck:this.findInModal(".t3js-createAdmin-password-check").val(),userEmail:this.findInModal(".t3js-createAdmin-email").val(),realName:this.findInModal(".t3js-createAdmin-realname").val(),userSystemMaintainer:this.findInModal(".t3js-createAdmin-system-maintainer").is(":checked")?1:0}};this.getModuleContent().find(":input").prop("disabled",!0),new AjaxRequest(Router.getUrl()).post(e).then((async t=>{const e=await t.resolve();!0===e.success&&Array.isArray(e.status)?(e.status.forEach((t=>{Notification.showMessage(t.title,t.message,t.severity)})),e.userCreated&&(this.findInModal(".t3js-createAdmin-user").val(""),this.findInModal(".t3js-createAdmin-password").val(""),this.findInModal(".t3js-createAdmin-password-check").val(""),this.findInModal(".t3js-createAdmin-email").val(""),this.findInModal(".t3js-createAdmin-system-maintainer").prop("checked",!1))):Notification.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")}),(e=>{Router.handleAjaxError(e,t)})).finally((()=>{this.setModalButtonsState(!0),this.getModuleContent().find(":input").prop("disabled",!1)}))}}export default new CreateAdmin; \ No newline at end of file -- GitLab