/
sets.php
62 lines (52 loc) · 2.04 KB
/
sets.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
namespace Concrete\Controller\Dialog\File;
use Concrete\Controller\Backend\UserInterface\File as BackendInterfaceFileController;
use Concrete\Core\File\EditResponse;
use Concrete\Core\File\Set\Set;
class Sets extends BackendInterfaceFileController
{
protected $viewPath = '/dialogs/file/sets';
protected function canAccess()
{
return $this->permissions->canViewFileInFileManager();
}
public function view()
{
}
public function submit()
{
$requestSets = array();
if (is_array($this->request->request->get('fsID'))) {
$requestSets = $this->request->request->get('fsID');
}
$fsp = \FilePermissions::getGlobal();
if ($this->validateAction()) {
$sets = Set::getMySets();
foreach ($sets as $set) {
if (in_array($set->getFileSetID(), $requestSets) && $fsp->canAddFile($this->file) && !$this->file->inFileSet($set)) {
// This was checked and it wasn't in the file set previously
$set->addFileToSet($this->file);
}
if ($this->file->inFileSet($set) && !in_array($set->getFileSetID(), $requestSets) && $fsp->canAddFile($this->file)) {
// This was not checked but it used to be in the set.
$set->removeFileFromSet($this->file);
}
}
}
$fsNew = $this->request->request->get('fsNew');
$fsNewShare = $this->request->request->get('fsNewShare');
if (is_array($fsNew)) {
foreach ($fsNew as $i => $name) {
if ($name) {
$type = ($fsNewShare[$i] == 1) ? Set::TYPE_PUBLIC : Set::TYPE_PRIVATE;
$fs = Set::createAndGetSet($fsNew[$i], $type);
$fs->addFileToSet($this->file);
}
}
}
$response = new EditResponse();
$response->setFile($this->file);
$response->setMessage(t('File sets updated successfully.'));
$response->outputJSON();
}
}