Introduce the UserIdentity interface.

This provides a narrow view on a user identity, providing access to
ID and name.

This has been extracted from I140f43a6fb443b for re-use with Actors,
on Anomie's request.

Change-Id: Ief00db5ce382537c5bf992159eae6baf096ae4be
This commit is contained in:
daniel 2017-11-16 20:44:44 +01:00 committed by Addshore
parent 25e5d9b8c1
commit 38edb8ab30
3 changed files with 54 additions and 1 deletions

View file

@ -957,6 +957,7 @@ $wgAutoloadLocalClasses = [
'MediaWiki\\Tidy\\RemexDriver' => __DIR__ . '/includes/tidy/RemexDriver.php',
'MediaWiki\\Tidy\\RemexMungerData' => __DIR__ . '/includes/tidy/RemexMungerData.php',
'MediaWiki\\Tidy\\TidyDriverBase' => __DIR__ . '/includes/tidy/TidyDriverBase.php',
'MediaWiki\\User\\UserIdentity' => __DIR__ . '/includes/user/UserIdentity.php',
'MediaWiki\\Widget\\ComplexNamespaceInputWidget' => __DIR__ . '/includes/widget/ComplexNamespaceInputWidget.php',
'MediaWiki\\Widget\\ComplexTitleInputWidget' => __DIR__ . '/includes/widget/ComplexTitleInputWidget.php',
'MediaWiki\\Widget\\DateInputWidget' => __DIR__ . '/includes/widget/DateInputWidget.php',

View file

@ -27,6 +27,7 @@ use MediaWiki\Session\Token;
use MediaWiki\Auth\AuthManager;
use MediaWiki\Auth\AuthenticationResponse;
use MediaWiki\Auth\AuthenticationRequest;
use MediaWiki\User\UserIdentity;
use Wikimedia\ScopedCallback;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\DBExpectedError;
@ -48,7 +49,7 @@ define( 'EDIT_TOKEN_SUFFIX', Token::SUFFIX );
* for rendering normal pages are set in the cookie to minimize use
* of the database.
*/
class User implements IDBAccessObject {
class User implements IDBAccessObject, UserIdentity {
/**
* @const int Number of characters in user_token field.
*/

View file

@ -0,0 +1,51 @@
<?php
/**
* Interface for objects representing user identity.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* @file
*/
namespace MediaWiki\User;
/**
* Interface for objects representing user identity.
*
* This represents the identity of a user in the context of page revisions and log entries.
*
* @since 1.31
*/
interface UserIdentity {
/**
* @since 1.31
*
* @return int The user ID. May be 0 for anonymous users or for users with no local account.
*/
public function getId();
/**
* @since 1.31
*
* @return string The user's logical name. May be an IPv4 or IPv6 address for anonymous users.
*/
public function getName();
// TODO: in the future, we should also provide access to the actor ID here.
// TODO: we may want to (optionally?) provide a global ID, see CentralIdLookup.
}