Nextcloud 21 support

- Group getBackendNames removed, is introduced in nextcloud 22
- QueryBuilder executeStatement and executeQuery replaced by execute function

Signed-off-by: Jonathan Treffler <mail@jonathan-treffler.de>
Signed-off-by: Giuliano Mele <giuliano.mele@verdigado.com>
This commit is contained in:
Giuliano Mele 2021-08-20 11:40:09 +02:00 committed by Jonathan Treffler
parent aac68c1866
commit 65006775e4
2 changed files with 12 additions and 6 deletions

View file

@ -200,7 +200,7 @@ class GroupBackend extends ABackend implements IAddToGroupBackend, IRemoveFromGr
$qb->delete(self::TABLE_MEMBERS)
->where($qb->expr()->eq('uid', $qb->createNamedParameter($uid)))
->andWhere($qb->expr()->eq('gid', $qb->createNamedParameter($gid)))
->executeStatement();
->execute();
return true;
}
@ -217,7 +217,7 @@ class GroupBackend extends ABackend implements IAddToGroupBackend, IRemoveFromGr
)));
}
$result = $query->executeQuery();
$result = $query->execute();
$count = $result->fetchOne();
$result->closeCursor();
@ -235,12 +235,12 @@ class GroupBackend extends ABackend implements IAddToGroupBackend, IRemoveFromGr
// delete the group
$query->delete(self::TABLE_GROUPS)
->where($query->expr()->eq('gid', $query->createNamedParameter($gid)))
->executeStatement();
->execute();
// delete group user relation
$query->delete(self::TABLE_MEMBERS)
->where($query->expr()->eq('gid', $query->createNamedParameter($gid)))
->executeStatement();
->execute();
// remove from cache
unset($this->groupCache[$gid]);

View file

@ -4,6 +4,7 @@ namespace OCA\User_SAML;
use OC\BackgroundJob\JobList;
use OC\Hooks\PublicEmitter;
use OCA\User_SAML\GroupBackend;
use OCA\User_SAML\Jobs\MigrateGroups;
use OCA\User_SAML\SAMLSettings;
use OCP\IConfig;
@ -199,9 +200,14 @@ class GroupManager
}
protected function hasSamlBackend(IGroup $group): bool {
$backends = $group->getBackendNames();
$reflected = new \ReflectionObject($group);
$backendsProperty = $reflected->getProperty('backends');
$backendsProperty->setAccessible(true);
$backends = $backendsProperty->getValue($group);
// available at nextcloud 22
// $backends = $group->getBackendNames();
foreach ($backends as $backend) {
if($backend === 'OCA\User_SAML\GroupBackend') {
if($backend instanceof GroupBackend) {
return true;
}
}