Skip to content

Commit 68a32dc

Browse files
authored
Volume drivers (#329)
* Added settings for box, onedrive and renamed dropbox to dropbox2 * Added missed end() statement * Added options to dropbox test configuration * Added options to dropbox, onedrive and box test configuration * Added apiThumbnail element to onedrive * Apply fixes from StyleCI (#328) * Added tmpPath option to box settings
1 parent edd88ba commit 68a32dc

File tree

6 files changed

+171
-50
lines changed

6 files changed

+171
-50
lines changed

src/Configuration/ElFinderConfigurationReader.php

+40-7
Original file line numberDiff line numberDiff line change
@@ -339,13 +339,46 @@ private function configureDriver(array $parameter)
339339
$settings['path'] = $parameter['ftp_settings']['path'];
340340

341341
break;
342-
case 'dropbox':
343-
$settings['consumerKey'] = $parameter['dropbox_settings']['app_key'] ?: $parameter['dropbox_settings']['consumer_key'];
344-
$settings['consumerSecret'] = $parameter['dropbox_settings']['app_secret'] ?: $parameter['dropbox_settings']['consumer_secret'];
345-
$settings['accessToken'] = $parameter['dropbox_settings']['access_token'];
346-
$settings['accessTokenSecret'] = $parameter['dropbox_settings']['access_token_secret'];
347-
$settings['dropboxUid'] = $parameter['dropbox_settings']['dropbox_uid'];
348-
$settings['metaCachePath'] = $parameter['dropbox_settings']['meta_cache_path'];
342+
case 'dropbox2':
343+
$settings['app_key'] = $parameter['dropbox2_settings']['app_key'];
344+
$settings['app_secret'] = $parameter['dropbox2_settings']['app_secret'];
345+
$settings['access_token'] = $parameter['dropbox2_settings']['access_token'];
346+
$settings['aliasFormat'] = $parameter['dropbox2_settings']['aliasFormat'];
347+
$settings['path'] = $parameter['dropbox2_settings']['path'];
348+
$settings['separator'] = $parameter['dropbox2_settings']['separator'];
349+
$settings['acceptedName'] = $parameter['dropbox2_settings']['acceptedName'];
350+
$settings['rootCssClass'] = $parameter['dropbox2_settings']['rootCssClass'];
351+
$settings['publishPermission'] = $parameter['dropbox2_settings']['publishPermission'];
352+
$settings['getThumbSize'] = $parameter['dropbox2_settings']['getThumbSize'];
353+
354+
break;
355+
case 'onedrive':
356+
$settings['client_id'] = $parameter['onedrive_settings']['client_id'];
357+
$settings['client_secret'] = $parameter['onedrive_settings']['client_secret'];
358+
$settings['accessToken'] = $parameter['onedrive_settings']['accessToken'];
359+
$settings['root'] = $parameter['onedrive_settings']['root'];
360+
$settings['OneDriveApiClient'] = $parameter['onedrive_settings']['OneDriveApiClient'];
361+
$settings['path'] = $parameter['onedrive_settings']['path'];
362+
$settings['separator'] = $parameter['onedrive_settings']['separator'];
363+
$settings['tmbPath'] = $parameter['onedrive_settings']['tmbPath'];
364+
$settings['tmbURL'] = $parameter['onedrive_settings']['tmbURL'];
365+
$settings['tmpPath'] = $parameter['onedrive_settings']['tmpPath'];
366+
$settings['acceptedName'] = $parameter['onedrive_settings']['acceptedName'];
367+
$settings['rootCssClass'] = $parameter['onedrive_settings']['rootCssClass'];
368+
$settings['useApiThumbnail'] = $parameter['onedrive_settings']['useApiThumbnail'];
369+
370+
break;
371+
case 'box':
372+
$settings['client_id'] = $parameter['box_settings']['client_id'];
373+
$settings['client_secret'] = $parameter['box_settings']['client_secret'];
374+
$settings['accessToken'] = $parameter['box_settings']['accessToken'];
375+
$settings['root'] = $parameter['box_settings']['root'];
376+
$settings['path'] = $parameter['box_settings']['path'];
377+
$settings['separator'] = $parameter['box_settings']['separator'];
378+
$settings['tmbPath'] = $parameter['box_settings']['tmbPath'];
379+
$settings['tmbURL'] = $parameter['box_settings']['tmbURL'];
380+
$settings['acceptedName'] = $parameter['box_settings']['acceptedName'];
381+
$settings['rootCssClass'] = $parameter['box_settings']['rootCssClass'];
349382

350383
break;
351384
case 's3':

src/DependencyInjection/Configuration.php

+45-10
Original file line numberDiff line numberDiff line change
@@ -219,21 +219,56 @@ public function getConfigTreeBuilder()
219219
->scalarNode('glide_key')->defaultValue('')->end()
220220
->append($this->createPluginsNode())
221221
->append($this->createDriverOptionsNode())
222-
->arrayNode('dropbox_settings')
222+
->arrayNode('dropbox2_settings')
223223
->canBeEnabled()
224224
->children()
225-
->scalarNode('consumer_key')
226-
->setDeprecated('You should use "app_key" to make the dropbox driver work prepoerly')
227-
->end()
228-
->scalarNode('consumer_secret')
229-
->setDeprecated('You should use "app_secret" to make the dropbox driver work prepoerly')
230-
->end()
231225
->scalarNode('app_key')->end()
232226
->scalarNode('app_secret')->end()
233227
->scalarNode('access_token')->end()
234-
->scalarNode('access_token_secret')->end()
235-
->scalarNode('dropbox_uid')->end()
236-
->scalarNode('meta_cache_path')->end()
228+
->scalarNode('aliasFormat')->defaultValue('%s@Dropbox')->end()
229+
->scalarNode('path')->defaultValue('/')->end()
230+
->scalarNode('separator')->defaultValue('/')->end()
231+
->scalarNode('acceptedName')->defaultValue('%s@Dropbox')->end()
232+
->scalarNode('rootCssClass')->defaultValue('elfinder-navbar-root-dropbox')->end()
233+
->arrayNode('publishPermission')
234+
->children()
235+
->scalarNode('requested_visibility')->defaultValue('public')->end()
236+
->end()
237+
->end()
238+
->scalarNode('getThumbSize')->defaultValue('medium')->end()
239+
->end()
240+
->end()
241+
->arrayNode('box_settings')
242+
->canBeEnabled()
243+
->children()
244+
->scalarNode('client_id')->end()
245+
->scalarNode('client_secret')->end()
246+
->scalarNode('accessToken')->end()
247+
->scalarNode('root')->defaultValue('Box.com')->end()
248+
->scalarNode('path')->defaultValue('/')->end()
249+
->scalarNode('separator')->defaultValue('/')->end()
250+
->scalarNode('tmbPath')->defaultValue('')->end()
251+
->scalarNode('tmbURL')->defaultValue('')->end()
252+
->scalarNode('tmpPath')->defaultValue('')->end()
253+
->scalarNode('acceptedName')->defaultValue('#^[^/\\?*:|"<>]*[^./\\?*:|"<>]$#')->end()
254+
->scalarNode('rootCssClass')->defaultValue('elfinder-navbar-root-box')->end()
255+
->end()
256+
->end()
257+
->arrayNode('onedrive_settings')
258+
->canBeEnabled()
259+
->children()
260+
->scalarNode('client_id')->end()
261+
->scalarNode('client_secret')->end()
262+
->scalarNode('accessToken')->end()
263+
->scalarNode('root')->defaultValue('OneDrive.com')->end()
264+
->scalarNode('OneDriveApiClient')->defaultValue('')->end()
265+
->scalarNode('path')->defaultValue('/')->end()
266+
->scalarNode('separator')->defaultValue('/')->end()
267+
->scalarNode('tmbPath')->defaultValue('')->end()
268+
->scalarNode('tmbURL')->defaultValue('')->end()
269+
->scalarNode('acceptedName')->defaultValue('#^[^/\\?*:|"<>]*[^./\\?*:|"<>]$#')->end()
270+
->scalarNode('rootCssClass')->defaultValue('elfinder-navbar-root-onedrive')->end()
271+
->booleanNode('useApiThumbnail')->defaultTrue()->end()
237272
->end()
238273
->end()
239274
->arrayNode('ftp_settings')

tests/DependencyInjection/ConfigurationLoadTest.php

+45-14
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88

99
/**
1010
* Class ConfigurationLoadTest.
11-
*
12-
* @package FM\ElfinderBundle\Tests\DependencyInjection
1311
*/
1412
class ConfigurationLoadTest extends AbstractExtensionConfigurationTestCase
1513
{
@@ -108,22 +106,55 @@ public function testSupportsAllConfigFormats($path)
108106
'create' => array(),
109107
'extract' => array(),
110108
),
111-
'glide_url' => '',
112-
'glide_key' => '',
113-
'alias' => 'foo',
114-
'tree_deep' => 1,
115-
'upload_allow' => array('image/png', 'image/jpg', 'image/jpeg'),
116-
'upload_order' => array('deny', 'allow'),
117-
'defaults' => array('read' => true, 'write' => true),
118-
'upload_deny' => array('all'),
119-
'upload_max_size' => 0,
120-
'dropbox_settings' => array(
121-
'consumer_key' => 'some_consumer',
122-
'consumer_secret' => 'con$umer',
109+
'glide_url' => '',
110+
'glide_key' => '',
111+
'alias' => 'foo',
112+
'tree_deep' => 1,
113+
'upload_allow' => array('image/png', 'image/jpg', 'image/jpeg'),
114+
'upload_order' => array('deny', 'allow'),
115+
'defaults' => array('read' => true, 'write' => true),
116+
'upload_deny' => array('all'),
117+
'upload_max_size' => 0,
118+
'dropbox2_settings' => array(
119+
'aliasFormat' => '%s@Dropbox',
120+
'path' => '/',
121+
'separator' => '/',
122+
'acceptedName' => '%s@Dropbox',
123+
'rootCssClass' => 'elfinder-navbar-root-dropbox',
124+
'getThumbSize' => 'medium',
123125
'app_key' => 'some_consumer',
124126
'app_secret' => 'con$umer',
125127
'enabled' => true,
126128
),
129+
'box_settings' => array(
130+
'client_id' => 'some_consumer',
131+
'client_secret' => 'con$umer',
132+
'accessToken' => 'token',
133+
'root' => 'Box.com',
134+
'path' => '/',
135+
'separator' => '/',
136+
'tmbPath' => '',
137+
'tmbURL' => '',
138+
'tmpPath' => '',
139+
'acceptedName' => '#^[^/\?*:|"<>]*[^./\?*:|"<>]$#',
140+
'rootCssClass' => 'elfinder-navbar-root-box',
141+
'enabled' => true,
142+
),
143+
'onedrive_settings' => array(
144+
'client_id' => 'some_consumer',
145+
'client_secret' => 'con$umer',
146+
'accessToken' => 'token',
147+
'root' => 'OneDrive.com',
148+
'OneDriveApiClient' => '',
149+
'path' => '/',
150+
'separator' => '/',
151+
'tmbPath' => '',
152+
'tmbURL' => '',
153+
'acceptedName' => '#^[^/\?*:|"<>]*[^./\?*:|"<>]$#',
154+
'rootCssClass' => 'elfinder-navbar-root-onedrive',
155+
'useApiThumbnail' => true,
156+
'enabled' => true,
157+
),
127158
'ftp_settings' => array(
128159
'host' => '127.0.0.1',
129160
'user' => 'root',

tests/Fixtures/config/config.php

+21-13
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,30 @@
1616
'debug' => true,
1717
'roots' => array(
1818
'uploads' => array(
19-
'driver' => 'LocalFileSystem',
20-
'path' => 'uploads',
21-
'show_hidden' => true,
22-
'trash_hash' => 'trash_hash',
23-
'alias' => 'foo',
24-
'check_subfolders' => 1,
25-
'tree_deep' => 1,
26-
'upload_allow' => array('image/png', 'image/jpg', 'image/jpeg'),
27-
'upload_deny' => array('all'),
28-
'upload_max_size' => 0,
29-
'dropbox_settings' => array(
30-
'consumer_key' => 'some_consumer',
31-
'consumer_secret' => 'con$umer',
19+
'driver' => 'LocalFileSystem',
20+
'path' => 'uploads',
21+
'show_hidden' => true,
22+
'trash_hash' => 'trash_hash',
23+
'alias' => 'foo',
24+
'check_subfolders' => 1,
25+
'tree_deep' => 1,
26+
'upload_allow' => array('image/png', 'image/jpg', 'image/jpeg'),
27+
'upload_deny' => array('all'),
28+
'upload_max_size' => 0,
29+
'dropbox2_settings' => array(
3230
'app_key' => 'some_consumer',
3331
'app_secret' => 'con$umer',
3432
),
33+
'box_settings' => array(
34+
'client_id' => 'some_consumer',
35+
'client_secret' => 'con$umer',
36+
'accessToken' => 'token',
37+
),
38+
'onedrive_settings' => array(
39+
'client_id' => 'some_consumer',
40+
'client_secret' => 'con$umer',
41+
'accessToken' => 'token',
42+
),
3543
'ftp_settings' => array(
3644
'host' => '127.0.0.1',
3745
'user' => 'root',

tests/Fixtures/config/config.xml

+11-3
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,20 @@
2525
upload-deny="all"
2626
upload-max-size="0"
2727
>
28-
<fm-elfinder:dropbox-settings
29-
consumer-key="some_consumer"
30-
consumer-secret="con$umer"
28+
<fm-elfinder:dropbox2-settings
3129
app-key="some_consumer"
3230
app-secret="con$umer"
3331
/>
32+
<fm-elfinder:onedrive-settings
33+
client-id="some_consumer"
34+
client-secret="con$umer"
35+
accessToken="token"
36+
/>
37+
<fm-elfinder:box-settings
38+
client-id="some_consumer"
39+
client-secret="con$umer"
40+
accessToken="token"
41+
/>
3442
<fm-elfinder:ftp-settings
3543
host="127.0.0.1"
3644
user="root"

tests/Fixtures/config/config.yml

+9-3
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,17 @@ fm_elfinder:
2121
alias: foo
2222
tree_deep: 1
2323
upload_allow: ['image/png', 'image/jpg', 'image/jpeg']
24-
dropbox_settings:
25-
consumer_key: some_consumer
26-
consumer_secret: con$umer
24+
dropbox2_settings:
2725
app_key: some_consumer
2826
app_secret: con$umer
27+
onedrive_settings:
28+
client_id: some_consumer
29+
client_secret: con$umer
30+
accessToken: token
31+
box_settings:
32+
client_id: some_consumer
33+
client_secret: con$umer
34+
accessToken: token
2935
ftp_settings:
3036
host: 127.0.0.1
3137
user: root

0 commit comments

Comments
 (0)