Skip to content
Snippets Groups Projects
Commit 29870daf authored by Guillaume Heurtier's avatar Guillaume Heurtier
Browse files

FEAT #11454 TIME 2:30 unsharing folder unpin folder if necessary

parent cceb301e
No related branches found
No related tags found
No related merge requests found
...@@ -35,6 +35,7 @@ use Slim\Http\Response; ...@@ -35,6 +35,7 @@ use Slim\Http\Response;
use SrcCore\controllers\PreparedClauseController; use SrcCore\controllers\PreparedClauseController;
use SrcCore\models\DatabaseModel; use SrcCore\models\DatabaseModel;
use SrcCore\models\ValidatorModel; use SrcCore\models\ValidatorModel;
use User\models\UserEntityModel;
use User\models\UserModel; use User\models\UserModel;
class FolderController class FolderController
...@@ -342,7 +343,7 @@ class FolderController ...@@ -342,7 +343,7 @@ class FolderController
'data' => [$args['folderId']] 'data' => [$args['folderId']]
]); ]);
if (!empty($args['remove'])) { if (!empty($entitiesToRemove)) {
EntityFolderModel::delete(['entity_id' => $entitiesToRemove, 'folder_id' => $args['folderId']]); EntityFolderModel::delete(['entity_id' => $entitiesToRemove, 'folder_id' => $args['folderId']]);
} }
if (!empty($args['add'])) { if (!empty($args['add'])) {
...@@ -355,6 +356,41 @@ class FolderController ...@@ -355,6 +356,41 @@ class FolderController
} }
} }
$entitiesOfFolder = EntityFolderModel::getByFolderId([
'select' => ['entities.entity_id'],
'folder_id' => $args['folderId']
]);
$entitiesOfFolder = array_column($entitiesOfFolder, 'entity_id');
$users = UserPinnedFolderModel::get([
'select' => ['user_id'],
'where' => ['folder_id = ?'],
'data' => [$args['folderId']]
]);
if (!empty($users) && empty($entitiesOfFolder)) {
UserPinnedFolderModel::delete([
'where' => ['folder_id = ?', 'user_id != ?'],
'data' => [$args['folderId'], $folder[0]['user_id']]
]);
} else {
foreach ($users as $user) {
if ($user['user_id'] != $folder[0]['user_id']) {
$inEntities = UserEntityModel::getWithUsers([
'select' => ['users.id'],
'where' => ['users.id = ?', 'entity_id in (?)'],
'data' => [$user['user_id'], $entitiesOfFolder]
]);
if (empty($inEntities)) {
UserPinnedFolderModel::delete([
'where' => ['folder_id = ?', 'user_id = ?'],
'data' => [$args['folderId'], $user['user_id']]
]);
}
}
}
}
$folderChild = FolderModel::getChild(['id' => $args['folderId'], 'select' => ['id']]); $folderChild = FolderModel::getChild(['id' => $args['folderId'], 'select' => ['id']]);
if (!empty($folderChild)) { if (!empty($folderChild)) {
foreach ($folderChild as $child) { foreach ($folderChild as $child) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment