mirror of https://github.com/nextcloud/photos
Merge pull request #1597 from simonspa/p/remove-collab-photos
Remove photos from collaborators once they are removed
This commit is contained in:
commit
3be4878535
|
@ -377,12 +377,18 @@ class AlbumMapper {
|
|||
}
|
||||
|
||||
foreach ($collaboratorsToRemove as $collaborator) {
|
||||
$query = $this->connection->getQueryBuilder();
|
||||
$query->delete('photos_albums_collabs')
|
||||
->where($query->expr()->eq('album_id', $query->createNamedParameter($albumId, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($query->expr()->eq('collaborator_id', $query->createNamedParameter($collaborator['id'])))
|
||||
->andWhere($query->expr()->eq('collaborator_type', $query->createNamedParameter($collaborator['type'], IQueryBuilder::PARAM_INT)))
|
||||
->executeStatement();
|
||||
switch ($collaborator['type']) {
|
||||
case self::TYPE_USER:
|
||||
$this->deleteUserFromAlbumCollaboratorsList($collaborator['id'], $albumId);
|
||||
break;
|
||||
default:
|
||||
$query = $this->connection->getQueryBuilder();
|
||||
$query->delete('photos_albums_collabs')
|
||||
->where($query->expr()->eq('album_id', $query->createNamedParameter($albumId, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($query->expr()->eq('collaborator_id', $query->createNamedParameter($collaborator['id'])))
|
||||
->andWhere($query->expr()->eq('collaborator_type', $query->createNamedParameter($collaborator['type'], IQueryBuilder::PARAM_INT)))
|
||||
->executeStatement();
|
||||
}
|
||||
}
|
||||
|
||||
$this->connection->commit();
|
||||
|
@ -450,6 +456,20 @@ class AlbumMapper {
|
|||
->andWhere($query->expr()->eq('collaborator_id', $query->createNamedParameter($userId)))
|
||||
->andWhere($query->expr()->eq('collaborator_type', $query->createNamedParameter(self::TYPE_USER, IQueryBuilder::PARAM_INT)))
|
||||
->executeStatement();
|
||||
|
||||
// Remove all photos by this user from the album:
|
||||
$query = $this->connection->getQueryBuilder();
|
||||
$query->delete('photos_albums_files')
|
||||
->where($query->expr()->eq('album_id', $query->createNamedParameter($albumId, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($query->expr()->eq('owner', $query->createNamedParameter($userId)))
|
||||
->executeStatement();
|
||||
|
||||
// Update the last added photo:
|
||||
$query = $this->connection->getQueryBuilder();
|
||||
$query->update("photos_albums")
|
||||
->set('last_added_photo', $query->createNamedParameter($this->getLastAdded($albumId), IQueryBuilder::PARAM_INT))
|
||||
->where($query->expr()->eq('album_id', $query->createNamedParameter($albumId, IQueryBuilder::PARAM_INT)))
|
||||
->executeStatement();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue