mirror of
https://github.com/netzbegruenung/user_saml.git
synced 2024-05-02 17:14:53 +02:00
Gid collision: append SAML prefix to gid
Signed-off-by: Jonathan Treffler <mail@jonathan-treffler.de> Signed-off-by: Giuliano Mele <giuliano.mele@verdigado.com>
This commit is contained in:
parent
5752511ff8
commit
68f76b66c7
|
@ -50,7 +50,14 @@ try {
|
|||
$groupBackend = new \OCA\User_SAML\GroupBackend(\OC::$server->getDatabaseConnection());
|
||||
\OC::$server->getGroupManager()->addBackend($groupBackend);
|
||||
|
||||
\OC::$server->registerService('SAMLGroupManager', function(\OCA\User_SAML\GroupBackend $groupBackend) {
|
||||
$samlSettings = new \OCA\User_SAML\SAMLSettings(
|
||||
$urlGenerator,
|
||||
$config,
|
||||
$request,
|
||||
$session
|
||||
);
|
||||
|
||||
\OC::$server->registerService('SAMLGroupManager', function(\OCA\User_SAML\GroupBackend $groupBackend, $samlSettings) {
|
||||
return new OCA\User_SAML\GroupManager(
|
||||
\OC::$server->getDatabaseConnection(),
|
||||
\OC::$server->query('SAMLGroupDuplicateChecker'),
|
||||
|
@ -58,17 +65,11 @@ $groupBackend = new \OCA\User_SAML\GroupBackend(\OC::$server->getDatabaseConnect
|
|||
\OC::$server->getUserManager(),
|
||||
$groupBackend,
|
||||
\OC::$server->getConfig(),
|
||||
\OC::$server->getJobList()
|
||||
\OC::$server->getJobList(),
|
||||
$samlSettings,
|
||||
);
|
||||
});
|
||||
|
||||
$samlSettings = new \OCA\User_SAML\SAMLSettings(
|
||||
$urlGenerator,
|
||||
$config,
|
||||
$request,
|
||||
$session
|
||||
);
|
||||
|
||||
$userData = new \OCA\User_SAML\UserData(
|
||||
new \OCA\User_SAML\UserResolver(\OC::$server->getUserManager()),
|
||||
$samlSettings,
|
||||
|
|
|
@ -5,6 +5,7 @@ namespace OCA\User_SAML;
|
|||
use OC\BackgroundJob\JobList;
|
||||
use OC\Hooks\PublicEmitter;
|
||||
use OCA\User_SAML\Jobs\MigrateGroups;
|
||||
use OCA\User_SAML\SAMLSettings;
|
||||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IGroup;
|
||||
|
@ -35,6 +36,8 @@ class GroupManager
|
|||
private $config;
|
||||
/** @var JobList */
|
||||
private $jobList;
|
||||
/** @var SAMLSettings */
|
||||
private $settings;
|
||||
|
||||
|
||||
public function __construct(
|
||||
|
@ -44,7 +47,8 @@ class GroupManager
|
|||
IUserManager $userManager,
|
||||
GroupBackend $ownGroupBackend,
|
||||
IConfig $config,
|
||||
JobList $jobList
|
||||
JobList $jobList,
|
||||
SAMLSettings $settings
|
||||
) {
|
||||
$this->db = $db;
|
||||
$this->duplicateChecker = $duplicateChecker;
|
||||
|
@ -53,6 +57,7 @@ class GroupManager
|
|||
$this->ownGroupBackend = $ownGroupBackend;
|
||||
$this->config = $config;
|
||||
$this->jobList = $jobList;
|
||||
$this->settings = $settings;
|
||||
}
|
||||
|
||||
public function replaceGroups($uid, $samlGroups) {
|
||||
|
@ -106,7 +111,9 @@ class GroupManager
|
|||
$group = $this->createGroupInBackend($gid);
|
||||
} else if($e->getCode() === 2) {
|
||||
//FIXME: probably need config flag. Previous to 17, gid was used as displayname
|
||||
$group = $this->createGroupInBackend('__saml__' . $gid, $gid);
|
||||
$idpPrefix = $this->settings->getPrefix('saml-attribute-mapping-group_mapping_prefix');
|
||||
$groupPrefix = $this->config->getAppValue('user_saml', $idpPrefix . 'saml-attribute-mapping-group_mapping_prefix', 'SAML_');
|
||||
$group = $this->createGroupInBackend($groupPrefix . $gid, $gid);
|
||||
} else {
|
||||
throw $e;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue