really use known groups
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
parent
3447ea4955
commit
02b703193a
|
@ -945,7 +945,7 @@ class Access extends LDAPUtility {
|
|||
|
||||
array_walk($groupRecords, function ($record) use ($idsByDn) {
|
||||
$newlyMapped = false;
|
||||
$gid = $uidsByDn[$record['dn'][0]] ?? null;
|
||||
$gid = $idsByDn[$record['dn'][0]] ?? null;
|
||||
if ($gid === null) {
|
||||
$gid = $this->dn2ocname($record['dn'][0], null, false, $newlyMapped, $record);
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ use OCA\User_LDAP\Helper;
|
|||
use OCA\User_LDAP\ILDAPWrapper;
|
||||
use OCA\User_LDAP\LDAP;
|
||||
use OCA\User_LDAP\LogWrapper;
|
||||
use OCA\User_LDAP\Mapping\GroupMapping;
|
||||
use OCA\User_LDAP\Mapping\UserMapping;
|
||||
use OCA\User_LDAP\User\Manager;
|
||||
use OCA\User_LDAP\User\OfflineUser;
|
||||
|
@ -66,6 +67,8 @@ class AccessTest extends TestCase {
|
|||
protected $userMapper;
|
||||
/** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
|
||||
protected $shareManager;
|
||||
/** @var GroupMapping|\PHPUnit\Framework\MockObject\MockObject */
|
||||
protected $groupMapper;
|
||||
/** @var Connection|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $connection;
|
||||
/** @var LDAP|\PHPUnit\Framework\MockObject\MockObject */
|
||||
|
@ -88,6 +91,7 @@ class AccessTest extends TestCase {
|
|||
$this->helper = $this->createMock(Helper::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->userMapper = $this->createMock(UserMapping::class);
|
||||
$this->groupMapper = $this->createMock(GroupMapping::class);
|
||||
$this->ncUserManager = $this->createMock(IUserManager::class);
|
||||
$this->shareManager = $this->createMock(IManager::class);
|
||||
|
||||
|
@ -100,6 +104,7 @@ class AccessTest extends TestCase {
|
|||
$this->ncUserManager
|
||||
);
|
||||
$this->access->setUserMapper($this->userMapper);
|
||||
$this->access->setGroupMapper($this->groupMapper);
|
||||
}
|
||||
|
||||
private function getConnectorAndLdapMock() {
|
||||
|
@ -641,6 +646,45 @@ class AccessTest extends TestCase {
|
|||
$this->assertSame($expected, $list);
|
||||
}
|
||||
|
||||
public function testFetchListOfGroupsKnown() {
|
||||
$filter = 'objectClass=nextcloudGroup';
|
||||
$attributes = ['cn', 'gidNumber', 'dn'];
|
||||
$base = 'ou=SomeGroups,dc=my,dc=directory';
|
||||
|
||||
$fakeConnection = ldap_connect();
|
||||
$fakeSearchResultResource = ldap_connect();
|
||||
$fakeLdapEntries = [
|
||||
'count' => 2,
|
||||
[
|
||||
'dn' => 'cn=Good Team,' . $base,
|
||||
'cn' => ['Good Team'],
|
||||
],
|
||||
[
|
||||
'dn' => 'cn=Another Good Team,' . $base,
|
||||
'cn' => ['Another Good Team'],
|
||||
]
|
||||
];
|
||||
|
||||
$this->prepareMocksForSearchTests($base, $fakeConnection, $fakeSearchResultResource, $fakeLdapEntries);
|
||||
|
||||
$this->groupMapper->expects($this->any())
|
||||
->method('getListOfIdsByDn')
|
||||
->willReturn([
|
||||
'cn=Good Team,' . $base => 'Good_Team',
|
||||
'cn=Another Good Team,' . $base => 'Another_Good_Team',
|
||||
]);
|
||||
$this->groupMapper->expects($this->never())
|
||||
->method('getNameByDN');
|
||||
|
||||
$this->connection->expects($this->exactly(2))
|
||||
->method('writeToCache');
|
||||
|
||||
$groups = $this->access->fetchListOfGroups($filter, $attributes);
|
||||
$this->assertSame(2, count($groups));
|
||||
$this->assertSame('Good Team', $groups[0]['cn'][0]);
|
||||
$this->assertSame('Another Good Team', $groups[1]['cn'][0]);
|
||||
}
|
||||
|
||||
public function intUsernameProvider() {
|
||||
// system dependent :-/
|
||||
$translitExpected = @iconv('UTF-8', 'ASCII//TRANSLIT', 'fränk') ? 'frank' : 'frnk';
|
||||
|
|
Loading…
Reference in New Issue