Skip to content

Commit

Permalink
Add compatibility with MediaWiki 1.43
Browse files Browse the repository at this point in the history
Use UserFactory::newFromName and UserGroupManager::addUserToGroup instead of corresponding deprecated and removed methods of User to load existing users and add the Shibboleth group to new users.
  • Loading branch information
milanmeu authored Jan 22, 2025
1 parent 1bae64a commit a395e96
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions includes/ShibbolethSessionProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@

use WebRequest;
use User;
use MediaWiki\User\UserFactory;
use MediaWiki\User\UserGroupManager;
use MediaWiki\Session\SessionProvider;
use MediaWiki\Session\ImmutableSessionProviderWithCookie;
use MediaWiki\Session\SessionBackend;
use MediaWiki\Session\SessionInfo;
use MediaWiki\Session\UserInfo;
use MediaWiki\MediaWikiServices;

class ShibbolethSessionProvider extends SessionProvider {
public function provideSessionInfo(WebRequest $request) {
Expand Down Expand Up @@ -58,17 +61,21 @@ public function provideSessionInfo(WebRequest $request) {
return null;
}
}


$services = MediaWikiServices::getInstance();
$userFactory = $services->getUserFactory();

$kulid = ucwords($kulid);
$user = User::newFromName($kulid);
$user = $userFactory->newFromName($kulid);

if (!$user->getId()) {
$user = User::createNew($kulid, [
// 'email' => $shib->single_email(),
'real_name' => $shib->fullname(),
'email_authenticated' => wfTimestamp(TS_MW) + 100
]);
$user->addGroup("Shibboleth");
$userGroupManager = $services->getUserGroupManager();
$userGroupManager->addUserToGroup($user, "Shibboleth");
}

return new SessionInfo(SessionInfo::MAX_PRIORITY, [
Expand Down

0 comments on commit a395e96

Please sign in to comment.