ckfinder/ckfinder-symfony-bundle

Cannot use file upload access control for particular folder

ErnestZiemkowski opened this issue · 0 comments

Hello!

I'm trying to deny file upload for one particular folder using this docs:
https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_accessControl
However, it does not work.

Here's fragment of my access control code of my ckfinder_config.php:
`
/================================ Access Control =====================================/
// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_roleSessionVar

$config['roleSessionVar'] = 'CKFinder_UserRole';

// http://docs.cksource.com/ckfinder3-php/configuration.html#configuration_options_accessControl
$config['accessControl'][] = [
'role' => '',
'resourceType' => '
',
'folder' => '/',

'FOLDER_VIEW'         => true,
'FOLDER_CREATE'       => true,
'FOLDER_RENAME'       => true,
'FOLDER_DELETE'       => true,

'FILE_VIEW'           => true,
'FILE_UPLOAD'         => true,
'FILE_RENAME'         => true,
'FILE_DELETE'         => true,

'IMAGE_RESIZE'        => true,
'IMAGE_RESIZE_CUSTOM' => true

];

$config['accessControl'][] = [
'role' => '',
'resourceType' => '
',
'folder' => '/ankieteo',

'FOLDER_CREATE'       => false,
'FOLDER_DELETE'       => false,
'FOLDER_RENAME'       => false,

'FILE_UPLOAD'         => false,
'FILE_RENAME'         => false,
'FILE_DELETE'         => false,

'IMAGE_RESIZE'        => false,
'IMAGE_RESIZE_CUSTOM' => false

];
and here's my overrideConfig method: protected function overrideConfig()
{
$this->connectorConfig['images'] = [
'maxWidth' => 1200,
'maxHeight' => 1200,
'quality' => 80,
'sizes' => [
'small' => ['width' => 480, 'height' => 320, 'quality' => 80],
'medium' => ['width' => 600, 'height' => 480, 'quality' => 80],
'large' => ['width' => 800, 'height' => 600, 'quality' => 80]
]
];

    $this->connectorConfig['resourceTypes'] = [];
    $this->connectorConfig['resourceTypes'][] = [
        'name'              => 'images',
        'label'             => 'Zdjęcia',
        'directory'         => $this->tokenStorage->getToken()->getUser()->getId().'/images',
        'maxSize'           => 0,
        'allowedExtensions' => 'bmp,gif,jpeg,jpg,png',
        'deniedExtensions'  => '',
        'backend'           => 'default'
    ];

    $this->connectorConfig['resourceTypes'][] = [
        'name'              => 'videos',
        'label'             => 'Filmy',
        'directory'         => $this->tokenStorage->getToken()->getUser()->getId().'/videos',
        'maxSize'           => 0,
        'allowedExtensions' => 'mp4',
        'deniedExtensions'  => '',
        'backend'           => 'default'
    ];

    $this->connectorConfig['resourceTypes'][] = [
        'name'              => 'audios',
        'label'             => 'Audio',
        'directory'         => $this->tokenStorage->getToken()->getUser()->getId().'/audios',
        'maxSize'           => 0,
        'allowedExtensions' => 'mp3',
        'deniedExtensions'  => '',
        'backend'           => 'default'
    ];

    $this->connectorConfig['resourceTypes'][] = [
        'name'              => 'ankieteo',
        'label'             => 'Ankieteo',
        'directory'         => '/ankieteo',
        'maxSize'           => 0,
        'allowedExtensions' => 'bmp,gif,jpeg,jpg,png',
        'deniedExtensions'  => '',
        'backend'           => 'default'
    ];

    if ($this->tokenStorage->getToken()->getUser()->getGroup()) {
        $this->connectorConfig['resourceTypes'][] = [
            'name'              => 'group/videos',
            'label'             => mb_substr($this->tokenStorage->getToken()->getUser()->getGroup()->getName(), 0, 11).' - Filmy',
            'directory'         => 'groups/'.$this->tokenStorage->getToken()->getUser()->getGroup()->getId().'/videos',
            'maxSize'           => 0,
            'allowedExtensions' => 'mp4',
            'deniedExtensions'  => '',
            'backend'           => 'default'
        ];

        $this->connectorConfig['resourceTypes'][] = [
            'name'              => 'group/images',
            'label'             => mb_substr($this->tokenStorage->getToken()->getUser()->getGroup()->getName(), 0, 11).' - Zdjęcia',
            'directory'         => 'groups/'.$this->tokenStorage->getToken()->getUser()->getGroup()->getId().'/images',
            'maxSize'           => 0,
            'allowedExtensions' => 'bmp,gif,jpeg,png',
            'deniedExtensions'  => '',
            'backend'           => 'default'
        ];

        $this->connectorConfig['resourceTypes'][] = [
            'name'              => 'group/audios',
            'label'             => mb_substr($this->tokenStorage->getToken()->getUser()->getGroup()->getName(), 0, 11).' - Audio',
            'directory'         => 'groups/'.$this->tokenStorage->getToken()->getUser()->getGroup()->getId().'/audios',
            'maxSize'           => 0,
            'allowedExtensions' => 'mp3',
            'deniedExtensions'  => '',
            'backend'           => 'default'
        ];
    }
}

`

And here's how it looks in the end. The upload file button still exists:
ckfinder_access_controll_file_upload_bug