Ejemplo n.º 1
0
 /**
  * @dataProvider providesReadOnlyInfo
  */
 public function testAcl($expectsWrite, $readOnlyValue, $hasOwnerSet)
 {
     /** @var \PHPUnit_Framework_MockObject_MockObject | CardDavBackend $backend */
     $backend = $this->getMockBuilder('OCA\\DAV\\CardDAV\\CardDavBackend')->disableOriginalConstructor()->getMock();
     $backend->expects($this->any())->method('applyShareAcl')->willReturnArgument(1);
     $calendarInfo = ['principaluri' => 'user2', 'id' => 666, 'uri' => 'default'];
     if (!is_null($readOnlyValue)) {
         $calendarInfo['{http://owncloud.org/ns}read-only'] = $readOnlyValue;
     }
     if ($hasOwnerSet) {
         $calendarInfo['{http://owncloud.org/ns}owner-principal'] = 'user1';
     }
     $c = new AddressBook($backend, $calendarInfo);
     $acl = $c->getACL();
     $childAcl = $c->getChildACL();
     $expectedAcl = [['privilege' => '{DAV:}read', 'principal' => $hasOwnerSet ? 'user1' : 'user2', 'protected' => true], ['privilege' => '{DAV:}write', 'principal' => $hasOwnerSet ? 'user1' : 'user2', 'protected' => true]];
     if ($hasOwnerSet) {
         $expectedAcl[] = ['privilege' => '{DAV:}read', 'principal' => 'user2', 'protected' => true];
         if ($expectsWrite) {
             $expectedAcl[] = ['privilege' => '{DAV:}write', 'principal' => 'user2', 'protected' => true];
         }
     }
     $this->assertEquals($expectedAcl, $acl);
     $this->assertEquals($expectedAcl, $childAcl);
 }
Ejemplo n.º 2
0
 /**
  * @return mixed
  * @since 5.0.0
  */
 public function getPermissions()
 {
     $permissions = $this->addressBook->getACL();
     $result = 0;
     foreach ($permissions as $permission) {
         switch ($permission['privilege']) {
             case '{DAV:}read':
                 $result |= Constants::PERMISSION_READ;
                 break;
             case '{DAV:}write':
                 $result |= Constants::PERMISSION_CREATE;
                 $result |= Constants::PERMISSION_UPDATE;
                 break;
             case '{DAV:}all':
                 $result |= Constants::PERMISSION_ALL;
                 break;
         }
     }
     return $result;
 }