jenkins-bot has submitted this change and it was merged.
Change subject: Use UserInputWidget for Special:ManageGoogleLogin
......................................................................
Use UserInputWidget for Special:ManageGoogleLogin
Also:
- Simplify form submission a bit
- Check wpEditToken, when Google Id is changed
- Use OOUI forms
Depends on: I9501c85f4288c255bbe3a5284e99b57b6169916f
Change-Id: Iaeff912e6437d6ebef0d5b1919ce8cf53a7fd5f1
---
M includes/specials/SpecialManageGoogleLogin.php
1 file changed, 39 insertions(+), 44 deletions(-)
Approvals:
Florianschmidtwelzow: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/specials/SpecialManageGoogleLogin.php
b/includes/specials/SpecialManageGoogleLogin.php
index f7b6103..60d7572 100644
--- a/includes/specials/SpecialManageGoogleLogin.php
+++ b/includes/specials/SpecialManageGoogleLogin.php
@@ -4,7 +4,7 @@
private $mGoogleLogin;
/** @var User $manageableUser User object of the user to manage */
- private static $manageableUser = null;
+ private $manageableUser = null;
function __construct() {
parent::__construct( 'ManageGoogleLogin', 'managegooglelogin' );
@@ -24,36 +24,30 @@
return;
}
$this->setHeaders();
- if ( !$request->getVal( 'glManageableUser' ) ) {
- $out->addModules( 'mediawiki.userSuggest' );
- $formFields = array(
- 'username' => array(
- 'type' => 'text',
- 'name' => 'username',
- 'label-message' =>
'googlelogin-username',
- 'id' => 'mw-gl-username',
- 'cssclass' => 'mw-autocomplete-user',
- 'autofocus' => true,
- )
- );
- $htmlForm = new HTMLForm( $formFields,
$this->getContext(), 'googlelogin-manage' );
- $htmlForm->setWrapperLegendMsg( $this->msg(
'googlelogin-managelegend' ) );
- $htmlForm->setSubmitText( $this->msg(
'googlelogin-manage-usersubmit' )->text() );
- $htmlForm->setSubmitProgressive();
- $htmlForm->setSubmitCallback( array( $this,
'submitUserName' ) );
- $htmlForm->show();
- } else {
- $this->submitUserName(
- array(
- 'username' => $request->getVal(
'glManageableUser' )
- )
- );
- }
+ $out->addModules( 'mediawiki.userSuggest' );
+ $formFields = array(
+ 'username' => array(
+ 'type' => 'user',
+ 'name' => 'username',
+ 'label-message' => 'googlelogin-username',
+ 'id' => 'mw-gl-username',
+ 'autofocus' => true,
+ 'exists' => true,
+ ),
+ 'submit' => array(
+ 'type' => 'submit',
+ 'default' => $this->msg(
'googlelogin-manage-usersubmit' )->text(),
+ 'flags' => array( 'progressive', 'primary' ),
+ ),
+ );
+ $htmlForm = HTMLForm::factory( 'ooui', $formFields,
$this->getContext(), 'googlelogin-manage' );
+ $htmlForm->setWrapperLegendMsg( $this->msg(
'googlelogin-managelegend' ) );
+ $htmlForm->suppressDefaultSubmit();
+ $htmlForm->setSubmitCallback( array( $this, 'submitUserName' )
);
+ $htmlForm->show();
- if ( self::$manageableUser ) {
- $this->manageUser( self::$manageableUser );
- } else {
-
+ if ( $this->manageableUser ) {
+ $this->manageUser( $this->manageableUser );
}
}
@@ -63,15 +57,8 @@
* @param array $data Formdata
* @return boolean
*/
- public function submitUserName( $data ) {
- if ( !isset( $data['username'] ) ) {
- return false;
- }
- $checkUser = User::newFromName( $data['username'] );
- if ( !$checkUser || $checkUser->isAnon() ) {
- return wfMessage( 'googlelogin-manage-notexist',
$data['username'] );
- }
- self::$manageableUser = $checkUser;
+ public function submitUserName( array $data ) {
+ $this->submitForm( $data, false );
return true;
}
@@ -170,17 +157,17 @@
'id' => 'mw-gl-username',
)
);
- $htmlForm = new HTMLForm( $formFields, $this->getContext(),
'googlelogin-change' );
- $htmlForm->addHiddenField( 'glManageableUser', $user->getName()
);
+ $htmlForm = HTMLForm::factory( 'ooui', $formFields,
$this->getContext(), 'googlelogin-change' );
+ $htmlForm->addHiddenField( 'username', $user->getName() );
$htmlForm->setWrapperLegendMsg( $this->msg(
'googlelogin-manage-changelegend' ) );
- $htmlForm->setSubmitCallback( array(
'SpecialManageGoogleLogin', 'submitGoogleId' ) );
+ $htmlForm->setSubmitCallback( array( $this, 'submitForm' ) );
if ( $id ) {
$htmlForm->addButton(
'terminate-link',
$this->msg(
'googlelogin-manage-terminatebutton' )->escaped(),
null,
array(
- 'class' => 'mw-ui-destructive',
+ 'flags' => array( 'destructive' ),
)
);
}
@@ -191,9 +178,17 @@
* Submithandler for new google id
*
* @param array $data Formdata
+ * @param boolean $checkSession If true, checks, if the form was
submitted by the user itself
* @return boolean
*/
- public static function submitGoogleId( $data ) {
+ public function submitForm( array $data, $checkSession = true ) {
+ $user = $this->getUser();
+ $request = $this->getRequest();
+ $name = ( isset( $data['username'] ) ? $data['username'] : '' );
+ if ( $checkSession && !$user->matchEditToken( $request->getVal(
'wpEditToken' ), $name ) ) {
+ throw new ErrorPageError( 'sessionfailure-title',
'sessionfailure' );
+ }
+ $this->manageableUser = User::newFromName( $name );
return false;
}
--
To view, visit https://gerrit.wikimedia.org/r/225501
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Iaeff912e6437d6ebef0d5b1919ce8cf53a7fd5f1
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/GoogleLogin
Gerrit-Branch: master
Gerrit-Owner: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits