committed by
Julius Härtl
parent
b7f3c2d140
commit
981fc8e16f
@@ -154,19 +154,17 @@ class AssignmentMapper extends QBMapper implements IPermissionMapper {
|
||||
* @return void
|
||||
*/
|
||||
public function transferOwnership(string $ownerId, string $newOwnerId) {
|
||||
$params = [
|
||||
'newOwner' => $newOwnerId,
|
||||
'type' => Assignment::TYPE_USER
|
||||
];
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$sql = "DELETE FROM `*PREFIX*{$this->tableName}` WHERE `participant` = :newOwner AND `type`= :type";
|
||||
$stmt = $this->db->executeQuery($sql, $params);
|
||||
$stmt->closeCursor();
|
||||
$params = [
|
||||
'owner' => $ownerId,
|
||||
'newOwner' => $newOwnerId,
|
||||
'type' => Assignment::TYPE_USER
|
||||
];
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$sql = "DELETE FROM `*PREFIX*{$this->tableName}` WHERE `participant` = :newOwner AND `type`= :type AND id IN
|
||||
(SELECT id FROM `*PREFIX*{$this->tableName}` WHERE `participant` = :owner)";
|
||||
$stmt = $this->db->executeQuery($sql, $params);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = "UPDATE `*PREFIX*{$this->tableName}` SET `participant` = :newOwner WHERE `participant` = :owner AND `type`= :type";
|
||||
$stmt = $this->db->executeQuery($sql, $params);
|
||||
$stmt->closeCursor();
|
||||
|
||||
@@ -182,7 +182,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
|
||||
|
||||
// shared with user
|
||||
$qb->resetQueryParts();
|
||||
$qb->select('b.id', 'title', 'owner', 'color', 'archived', 'deleted_at', 'last_modified')
|
||||
$qb->selectDistinct('b.id', 'title', 'owner', 'color', 'archived', 'deleted_at', 'last_modified')
|
||||
//->selectAlias('1', 'shared')
|
||||
->from('deck_boards', 'b')
|
||||
->innerJoin('b', 'deck_board_acl', 'acl', $qb->expr()->eq('b.id', 'acl.board_id'))
|
||||
@@ -490,4 +490,25 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
|
||||
$stmt = $this->db->executeQuery($sql, $params);
|
||||
$stmt->closeCursor();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset Cache for a
|
||||
* given board or a given user
|
||||
*
|
||||
* @param int|null $boardId
|
||||
* @param int|null $userId
|
||||
*/
|
||||
public function flushCache(?int $boardId = null, ?string $userId = null)
|
||||
{
|
||||
if ($boardId) {
|
||||
unset($this->boardCache[$boardId]);
|
||||
} else {
|
||||
$this->boardCache = null;
|
||||
}
|
||||
if ($userId) {
|
||||
unset($this->userBoardCache[$userId]);
|
||||
} else {
|
||||
$this->userBoardCache = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user