示例#1
0
文件: backend.php 项目: matt407/core
 /**
  * @param IShareable $shareable
  * @param string $element
  */
 private function shareWith($shareable, $element)
 {
     $user = $element['href'];
     $parts = explode(':', $user, 2);
     if ($parts[0] !== 'principal') {
         return;
     }
     // remove the share if it already exists
     $this->unshare($shareable->getResourceId(), $element['href']);
     $access = self::ACCESS_READ;
     if (isset($element['readOnly'])) {
         $access = $element['readOnly'] ? self::ACCESS_READ : self::ACCESS_READ_WRITE;
     }
     $query = $this->db->getQueryBuilder();
     $query->insert('dav_shares')->values(['principaluri' => $query->createNamedParameter($parts[1]), 'type' => $query->createNamedParameter($this->resourceType), 'access' => $query->createNamedParameter($access), 'resourceid' => $query->createNamedParameter($shareable->getResourceId())]);
     $query->execute();
 }
示例#2
0
 /**
  * @param IShareable $shareable
  * @param string $element
  */
 private function unshare($shareable, $element)
 {
     $parts = explode(':', $element, 2);
     if ($parts[0] !== 'principal') {
         return;
     }
     // don't share with owner
     if ($shareable->getOwner() === $parts[1]) {
         return;
     }
     $query = $this->db->getQueryBuilder();
     $query->delete('dav_shares')->where($query->expr()->eq('resourceid', $query->createNamedParameter($shareable->getResourceId())))->andWhere($query->expr()->eq('type', $query->createNamedParameter($this->resourceType)))->andWhere($query->expr()->eq('principaluri', $query->createNamedParameter($parts[1])));
     $query->execute();
 }