group: only pass backends that hold that specific group to the group constructor

This commit is contained in:
Robin Appelman 2013-07-18 12:15:34 +02:00
parent 63df8f3500
commit e3ea3ed3c5
4 changed files with 13 additions and 11 deletions

View File

@ -225,7 +225,7 @@ class Group {
$this->emitter->emit('\OC\Group', 'preDelete', array($this)); $this->emitter->emit('\OC\Group', 'preDelete', array($this));
} }
foreach ($this->backends as $backend) { foreach ($this->backends as $backend) {
if ($backend->implementsActions(OC_GROUP_BACKEND_DELETE_GROUP) and $backend->groupExists($this->gid)) { if ($backend->implementsActions(OC_GROUP_BACKEND_DELETE_GROUP)) {
$result = true; $result = true;
$backend->deleteGroup($this->gid); $backend->deleteGroup($this->gid);
} }

View File

@ -85,7 +85,13 @@ class Manager extends PublicEmitter {
} }
protected function getGroupObject($gid) { protected function getGroupObject($gid) {
$this->cachedGroups[$gid] = new Group($gid, $this->backends, $this->userManager, $this); $backends = array();
foreach ($this->backends as $backend) {
if ($backend->groupExists($gid)) {
$backends[] = $backend;
}
}
$this->cachedGroups[$gid] = new Group($gid, $backends, $this->userManager, $this);
return $this->cachedGroups[$gid]; return $this->cachedGroups[$gid];
} }

View File

@ -307,10 +307,6 @@ class Group extends \PHPUnit_Framework_TestCase {
$backend->expects($this->once()) $backend->expects($this->once())
->method('deleteGroup') ->method('deleteGroup')
->with('group1'); ->with('group1');
$backend->expects($this->once())
->method('groupExists')
->with('group1')
->will($this->returnValue(true));
$backend->expects($this->any()) $backend->expects($this->any())
->method('implementsActions') ->method('implementsActions')
->will($this->returnValue(true)); ->will($this->returnValue(true));

View File

@ -17,7 +17,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
* @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend
*/ */
$backend = $this->getMock('\OC_Group_Database'); $backend = $this->getMock('\OC_Group_Database');
$backend->expects($this->once()) $backend->expects($this->any())
->method('groupExists') ->method('groupExists')
->with('group1') ->with('group1')
->will($this->returnValue(true)); ->will($this->returnValue(true));
@ -85,7 +85,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
* @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend1 * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend1
*/ */
$backend1 = $this->getMock('\OC_Group_Database'); $backend1 = $this->getMock('\OC_Group_Database');
$backend1->expects($this->once()) $backend1->expects($this->any())
->method('groupExists') ->method('groupExists')
->with('group1') ->with('group1')
->will($this->returnValue(false)); ->will($this->returnValue(false));
@ -94,7 +94,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
* @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend2 * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend2
*/ */
$backend2 = $this->getMock('\OC_Group_Database'); $backend2 = $this->getMock('\OC_Group_Database');
$backend2->expects($this->once()) $backend2->expects($this->any())
->method('groupExists') ->method('groupExists')
->with('group1') ->with('group1')
->will($this->returnValue(true)); ->will($this->returnValue(true));
@ -117,7 +117,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
* @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend
*/ */
$backend = $this->getMock('\OC_Group_Database'); $backend = $this->getMock('\OC_Group_Database');
$backend->expects($this->once()) $backend->expects($this->any())
->method('groupExists') ->method('groupExists')
->with('group1') ->with('group1')
->will($this->returnValue(false)); ->will($this->returnValue(false));
@ -143,7 +143,7 @@ class Manager extends \PHPUnit_Framework_TestCase {
* @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend
*/ */
$backend = $this->getMock('\OC_Group_Database'); $backend = $this->getMock('\OC_Group_Database');
$backend->expects($this->once()) $backend->expects($this->any())
->method('groupExists') ->method('groupExists')
->with('group1') ->with('group1')
->will($this->returnValue(true)); ->will($this->returnValue(true));