MediaWiki master
UserGroupManagerFactory.php
Go to the documentation of this file.
1<?php
21namespace MediaWiki\User;
22
28use Psr\Log\LoggerInterface;
31
40 private ServiceOptions $options;
41 private ReadOnlyMode $readOnlyMode;
42 private ILBFactory $dbLoadBalancerFactory;
43 private UserEditTracker $userEditTracker;
44 private GroupPermissionsLookup $groupPermissionLookup;
45 private JobQueueGroupFactory $jobQueueGroupFactory;
46 private LoggerInterface $logger;
47
49 private $clearCacheCallbacks;
50
51 private HookContainer $hookContainer;
52 private TempUserConfig $tempUserConfig;
53
57 private $instances = [];
58
71 public function __construct(
72 ServiceOptions $options,
73 ReadOnlyMode $readOnlyMode,
74 ILBFactory $dbLoadBalancerFactory,
75 HookContainer $hookContainer,
76 UserEditTracker $userEditTracker,
77 GroupPermissionsLookup $groupPermissionsLookup,
78 JobQueueGroupFactory $jobQueueGroupFactory,
79 LoggerInterface $logger,
80 TempUserConfig $tempUserConfig,
81 array $clearCacheCallbacks = []
82 ) {
83 $this->options = $options;
84 $this->readOnlyMode = $readOnlyMode;
85 $this->dbLoadBalancerFactory = $dbLoadBalancerFactory;
86 $this->hookContainer = $hookContainer;
87 $this->userEditTracker = $userEditTracker;
88 $this->groupPermissionLookup = $groupPermissionsLookup;
89 $this->jobQueueGroupFactory = $jobQueueGroupFactory;
90 $this->logger = $logger;
91 $this->tempUserConfig = $tempUserConfig;
92 $this->clearCacheCallbacks = $clearCacheCallbacks;
93 }
94
99 public function getUserGroupManager( $wikiId = UserIdentity::LOCAL ): UserGroupManager {
100 if ( is_string( $wikiId ) && $this->dbLoadBalancerFactory->getLocalDomainID() === $wikiId ) {
101 $wikiId = UserIdentity::LOCAL;
102 }
103 $key = (string)$wikiId;
104 if ( !isset( $this->instances[$key] ) ) {
105 $this->instances[$key] = new UserGroupManager(
106 $this->options,
107 $this->readOnlyMode,
108 $this->dbLoadBalancerFactory,
109 $this->hookContainer,
110 $this->userEditTracker,
111 $this->groupPermissionLookup,
112 $this->jobQueueGroupFactory->makeJobQueueGroup( $wikiId ),
113 $this->logger,
114 $this->tempUserConfig,
115 $this->clearCacheCallbacks,
116 $wikiId
117 );
118 }
119 return $this->instances[$key];
120 }
121}
if(!defined('MW_SETUP_CALLBACK'))
Definition WebStart.php:81
A class for passing options to services.
Factory for JobQueueGroup objects.
Track info about user edit counts and timings.
Factory service for UserGroupManager instances.
getUserGroupManager( $wikiId=UserIdentity::LOCAL)
__construct(ServiceOptions $options, ReadOnlyMode $readOnlyMode, ILBFactory $dbLoadBalancerFactory, HookContainer $hookContainer, UserEditTracker $userEditTracker, GroupPermissionsLookup $groupPermissionsLookup, JobQueueGroupFactory $jobQueueGroupFactory, LoggerInterface $logger, TempUserConfig $tempUserConfig, array $clearCacheCallbacks=[])
Manage user group memberships.
Determine whether a site is currently in read-only mode.
Interface for temporary user creation config and name matching.
Manager of ILoadBalancer objects and, indirectly, IDatabase connections.