Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
die_coolen_jungs
our_own_cloud_project
Commits
494c1d74
Commit
494c1d74
authored
Aug 25, 2015
by
Morris Jobke
Browse files
Merge pull request #18440 from owncloud/ext-backends.customjs
Migrate custom JS external storage backends to new registration API [part 2]
parents
2f86be9c
88a78237
Changes
16
Hide whitespace changes
Inline
Side-by-side
apps/files_external/ajax/
dropbox
.php
→
apps/files_external/ajax/
oauth1
.php
View file @
494c1d74
...
...
@@ -30,6 +30,7 @@ OCP\JSON::checkLoggedIn();
OCP\JSON
::
callCheck
();
$l
=
\
OC
::
$server
->
getL10N
(
'files_external'
);
// FIXME: currently hard-coded to Dropbox OAuth
if
(
isset
(
$_POST
[
'app_key'
])
&&
isset
(
$_POST
[
'app_secret'
]))
{
$oauth
=
new
Dropbox_OAuth_Curl
((
string
)
$_POST
[
'app_key'
],
(
string
)
$_POST
[
'app_secret'
]);
if
(
isset
(
$_POST
[
'step'
]))
{
...
...
@@ -47,7 +48,7 @@ if (isset($_POST['app_key']) && isset($_POST['app_secret'])) {
'request_token_secret'
=>
$token
[
'token_secret'
])));
}
catch
(
Exception
$exception
)
{
OCP\JSON
::
error
(
array
(
'data'
=>
array
(
'message'
=>
$l
->
t
(
'Fetching request tokens failed. Verify that your
Dropbox
app key and secret are correct.'
))
$l
->
t
(
'Fetching request tokens failed. Verify that your app key and secret are correct.'
))
));
}
break
;
...
...
@@ -60,7 +61,7 @@ if (isset($_POST['app_key']) && isset($_POST['app_secret'])) {
'access_token_secret'
=>
$token
[
'token_secret'
]));
}
catch
(
Exception
$exception
)
{
OCP\JSON
::
error
(
array
(
'data'
=>
array
(
'message'
=>
$l
->
t
(
'Fetching access tokens failed. Verify that your
Dropbox
app key and secret are correct.'
))
$l
->
t
(
'Fetching access tokens failed. Verify that your app key and secret are correct.'
))
));
}
}
...
...
@@ -68,5 +69,5 @@ if (isset($_POST['app_key']) && isset($_POST['app_secret'])) {
}
}
}
else
{
OCP\JSON
::
error
(
array
(
'data'
=>
array
(
'message'
=>
$l
->
t
(
'Please provide a valid
Dropbox
app key and secret.'
))));
OCP\JSON
::
error
(
array
(
'data'
=>
array
(
'message'
=>
$l
->
t
(
'Please provide a valid app key and secret.'
))));
}
apps/files_external/ajax/
google
.php
→
apps/files_external/ajax/
oauth2
.php
View file @
494c1d74
...
...
@@ -33,6 +33,7 @@ OCP\JSON::checkLoggedIn();
OCP\JSON
::
callCheck
();
$l
=
\
OC
::
$server
->
getL10N
(
'files_external'
);
// FIXME: currently hard-coded to Google Drive
if
(
isset
(
$_POST
[
'client_id'
])
&&
isset
(
$_POST
[
'client_secret'
])
&&
isset
(
$_POST
[
'redirect'
]))
{
$client
=
new
Google_Client
();
$client
->
setClientId
((
string
)
$_POST
[
'client_id'
]);
...
...
apps/files_external/appinfo/app.php
View file @
494c1d74
...
...
@@ -70,61 +70,6 @@ if (OCP\Config::getAppValue('files_external', 'allow_user_mounting', 'yes') == '
OCP\Util
::
connectHook
(
'OC_Filesystem'
,
'post_initMountPoints'
,
'\OC_Mount_Config'
,
'initMountPointsHook'
);
OCP\Util
::
connectHook
(
'OC_User'
,
'post_login'
,
'OC\Files\Storage\SMB_OC'
,
'login'
);
OC_Mount_Config
::
registerBackend
(
'\OC\Files\Storage\AmazonS3'
,
[
'backend'
=>
(
string
)
$l
->
t
(
'Amazon S3'
),
'priority'
=>
100
,
'configuration'
=>
[
'key'
=>
(
string
)
$l
->
t
(
'Key'
),
'secret'
=>
'*'
.
$l
->
t
(
'Secret'
),
'bucket'
=>
(
string
)
$l
->
t
(
'Bucket'
),
],
'has_dependencies'
=>
true
,
]);
OC_Mount_Config
::
registerBackend
(
'\OC\Files\Storage\AmazonS3'
,
[
'backend'
=>
(
string
)
$l
->
t
(
'Amazon S3 and compliant'
),
'priority'
=>
100
,
'configuration'
=>
[
'key'
=>
(
string
)
$l
->
t
(
'Access Key'
),
'secret'
=>
'*'
.
$l
->
t
(
'Secret Key'
),
'bucket'
=>
(
string
)
$l
->
t
(
'Bucket'
),
'hostname'
=>
'&'
.
$l
->
t
(
'Hostname'
),
'port'
=>
'&'
.
$l
->
t
(
'Port'
),
'region'
=>
'&'
.
$l
->
t
(
'Region'
),
'use_ssl'
=>
'!'
.
$l
->
t
(
'Enable SSL'
),
'use_path_style'
=>
'!'
.
$l
->
t
(
'Enable Path Style'
)
],
'has_dependencies'
=>
true
,
]);
OC_Mount_Config
::
registerBackend
(
'\OC\Files\Storage\Dropbox'
,
[
'backend'
=>
'Dropbox'
,
'priority'
=>
100
,
'configuration'
=>
[
'configured'
=>
'#configured'
,
'app_key'
=>
(
string
)
$l
->
t
(
'App key'
),
'app_secret'
=>
'*'
.
$l
->
t
(
'App secret'
),
'token'
=>
'#token'
,
'token_secret'
=>
'#token_secret'
],
'custom'
=>
'dropbox'
,
'has_dependencies'
=>
true
,
]);
OC_Mount_Config
::
registerBackend
(
'\OC\Files\Storage\Google'
,
[
'backend'
=>
'Google Drive'
,
'priority'
=>
100
,
'configuration'
=>
[
'configured'
=>
'#configured'
,
'client_id'
=>
(
string
)
$l
->
t
(
'Client ID'
),
'client_secret'
=>
'*'
.
$l
->
t
(
'Client secret'
),
'token'
=>
'#token'
,
],
'custom'
=>
'google'
,
'has_dependencies'
=>
true
,
]);
OC_Mount_Config
::
registerBackend
(
'\OC\Files\Storage\Swift'
,
[
'backend'
=>
(
string
)
$l
->
t
(
'OpenStack Object Storage'
),
'priority'
=>
100
,
...
...
apps/files_external/appinfo/application.php
View file @
494c1d74
...
...
@@ -65,6 +65,9 @@ class Application extends App {
$container
->
query
(
'OCA\Files_External\Lib\Backend\DAV'
),
$container
->
query
(
'OCA\Files_External\Lib\Backend\OwnCloud'
),
$container
->
query
(
'OCA\Files_External\Lib\Backend\SFTP'
),
$container
->
query
(
'OCA\Files_External\Lib\Backend\AmazonS3'
),
$container
->
query
(
'OCA\Files_External\Lib\Backend\Dropbox'
),
$container
->
query
(
'OCA\Files_External\Lib\Backend\Google'
),
]);
if
(
!
\
OC_Util
::
runningOnWindows
())
{
...
...
@@ -91,6 +94,15 @@ class Application extends App {
// AuthMechanism::SCHEME_PASSWORD mechanisms
$container
->
query
(
'OCA\Files_External\Lib\Auth\Password\Password'
),
$container
->
query
(
'OCA\Files_External\Lib\Auth\Password\SessionCredentials'
),
// AuthMechanism::SCHEME_OAUTH1 mechanisms
$container
->
query
(
'OCA\Files_External\Lib\Auth\OAuth1\OAuth1'
),
// AuthMechanism::SCHEME_OAUTH2 mechanisms
$container
->
query
(
'OCA\Files_External\Lib\Auth\OAuth2\OAuth2'
),
// Specialized mechanisms
$container
->
query
(
'OCA\Files_External\Lib\Auth\AmazonS3\AccessKey'
),
]);
}
...
...
apps/files_external/appinfo/routes.php
View file @
494c1d74
...
...
@@ -46,10 +46,10 @@ namespace OCA\Files_External\AppInfo;
)
);
$this
->
create
(
'files_external_
dropbox
'
,
'ajax/
dropbox
.php'
)
->
actionInclude
(
'files_external/ajax/
dropbox
.php'
);
$this
->
create
(
'files_external_
google
'
,
'ajax/
google
.php'
)
->
actionInclude
(
'files_external/ajax/
google
.php'
);
$this
->
create
(
'files_external_
oauth1
'
,
'ajax/
oauth1
.php'
)
->
actionInclude
(
'files_external/ajax/
oauth1
.php'
);
$this
->
create
(
'files_external_
oauth2
'
,
'ajax/
oauth2
.php'
)
->
actionInclude
(
'files_external/ajax/
oauth2
.php'
);
$this
->
create
(
'files_external_list_applicable'
,
'/applicable'
)
...
...
apps/files_external/js/dropbox.js
deleted
100644 → 0
View file @
2f86be9c
$
(
document
).
ready
(
function
()
{
$
(
'
#externalStorage tbody tr.
\\\\
OC
\\\\
Files
\\\\
Storage
\\\\
Dropbox
'
).
each
(
function
()
{
var
configured
=
$
(
this
).
find
(
'
[data-parameter="configured"]
'
);
if
(
$
(
configured
).
val
()
==
'
true
'
)
{
$
(
this
).
find
(
'
.configuration input
'
).
attr
(
'
disabled
'
,
'
disabled
'
);
$
(
this
).
find
(
'
.configuration
'
).
append
(
'
<span id="access" style="padding-left:0.5em;">
'
+
t
(
'
files_external
'
,
'
Access granted
'
)
+
'
</span>
'
);
}
else
{
var
app_key
=
$
(
this
).
find
(
'
.configuration [data-parameter="app_key"]
'
).
val
();
var
app_secret
=
$
(
this
).
find
(
'
.configuration [data-parameter="app_secret"]
'
).
val
();
var
config
=
$
(
this
).
find
(
'
.configuration
'
);
if
(
app_key
!=
''
&&
app_secret
!=
''
)
{
var
pos
=
window
.
location
.
search
.
indexOf
(
'
oauth_token
'
)
+
12
;
var
token
=
$
(
this
).
find
(
'
.configuration [data-parameter="token"]
'
);
if
(
pos
!=
-
1
&&
window
.
location
.
search
.
substr
(
pos
,
$
(
token
).
val
().
length
)
==
$
(
token
).
val
())
{
var
token_secret
=
$
(
this
).
find
(
'
.configuration [data-parameter="token_secret"]
'
);
var
tr
=
$
(
this
);
var
statusSpan
=
$
(
tr
).
find
(
'
.status span
'
);
statusSpan
.
removeClass
();
statusSpan
.
addClass
(
'
waiting
'
);
$
.
post
(
OC
.
filePath
(
'
files_external
'
,
'
ajax
'
,
'
dropbox.php
'
),
{
step
:
2
,
app_key
:
app_key
,
app_secret
:
app_secret
,
request_token
:
$
(
token
).
val
(),
request_token_secret
:
$
(
token_secret
).
val
()
},
function
(
result
)
{
if
(
result
&&
result
.
status
==
'
success
'
)
{
$
(
token
).
val
(
result
.
access_token
);
$
(
token_secret
).
val
(
result
.
access_token_secret
);
$
(
configured
).
val
(
'
true
'
);
OCA
.
External
.
Settings
.
mountConfig
.
saveStorageConfig
(
tr
,
function
(
status
)
{
if
(
status
)
{
$
(
tr
).
find
(
'
.configuration input
'
).
attr
(
'
disabled
'
,
'
disabled
'
);
$
(
tr
).
find
(
'
.configuration
'
).
append
(
'
<span id="access" style="padding-left:0.5em;">
'
+
t
(
'
files_external
'
,
'
Access granted
'
)
+
'
</span>
'
);
}
});
}
else
{
OC
.
dialogs
.
alert
(
result
.
data
.
message
,
t
(
'
files_external
'
,
'
Error configuring Dropbox storage
'
));
}
});
}
}
else
{
onDropboxInputsChange
(
$
(
this
));
}
}
});
$
(
'
#externalStorage
'
).
on
(
'
paste
'
,
'
tbody tr.
\\\\
OC
\\\\
Files
\\\\
Storage
\\\\
Dropbox td
'
,
function
()
{
var
tr
=
$
(
this
).
parent
();
setTimeout
(
function
()
{
onDropboxInputsChange
(
tr
);
},
20
);
});
$
(
'
#externalStorage
'
).
on
(
'
keyup
'
,
'
tbody tr.
\\\\
OC
\\\\
Files
\\\\
Storage
\\\\
Dropbox td
'
,
function
()
{
onDropboxInputsChange
(
$
(
this
).
parent
());
});
$
(
'
#externalStorage
'
).
on
(
'
change
'
,
'
tbody tr.
\\\\
OC
\\\\
Files
\\\\
Storage
\\\\
Dropbox .chzn-select
'
,
function
()
{
onDropboxInputsChange
(
$
(
this
).
parent
().
parent
());
});
function
onDropboxInputsChange
(
tr
)
{
if
(
$
(
tr
).
find
(
'
[data-parameter="configured"]
'
).
val
()
!=
'
true
'
)
{
var
config
=
$
(
tr
).
find
(
'
.configuration
'
);
if
(
$
(
tr
).
find
(
'
.mountPoint input
'
).
val
()
!=
''
&&
$
(
config
).
find
(
'
[data-parameter="app_key"]
'
).
val
()
!=
''
&&
$
(
config
).
find
(
'
[data-parameter="app_secret"]
'
).
val
()
!=
''
&&
(
$
(
tr
).
find
(
'
.chzn-select
'
).
length
==
0
||
$
(
tr
).
find
(
'
.chzn-select
'
).
val
()
!=
null
))
{
if
(
$
(
tr
).
find
(
'
.dropbox
'
).
length
==
0
)
{
$
(
config
).
append
(
$
(
document
.
createElement
(
'
input
'
))
.
addClass
(
'
button dropbox
'
)
.
attr
(
'
type
'
,
'
button
'
)
.
attr
(
'
value
'
,
t
(
'
files_external
'
,
'
Grant access
'
)));
}
else
{
$
(
tr
).
find
(
'
.dropbox
'
).
show
();
}
}
else
if
(
$
(
tr
).
find
(
'
.dropbox
'
).
length
>
0
)
{
$
(
tr
).
find
(
'
.dropbox
'
).
hide
();
}
}
}
$
(
'
#externalStorage
'
).
on
(
'
click
'
,
'
.dropbox
'
,
function
(
event
)
{
event
.
preventDefault
();
var
tr
=
$
(
this
).
parent
().
parent
();
var
app_key
=
$
(
this
).
parent
().
find
(
'
[data-parameter="app_key"]
'
).
val
();
var
app_secret
=
$
(
this
).
parent
().
find
(
'
[data-parameter="app_secret"]
'
).
val
();
if
(
app_key
!=
''
&&
app_secret
!=
''
)
{
var
tr
=
$
(
this
).
parent
().
parent
();
var
configured
=
$
(
this
).
parent
().
find
(
'
[data-parameter="configured"]
'
);
var
token
=
$
(
this
).
parent
().
find
(
'
[data-parameter="token"]
'
);
var
token_secret
=
$
(
this
).
parent
().
find
(
'
[data-parameter="token_secret"]
'
);
$
.
post
(
OC
.
filePath
(
'
files_external
'
,
'
ajax
'
,
'
dropbox.php
'
),
{
step
:
1
,
app_key
:
app_key
,
app_secret
:
app_secret
,
callback
:
location
.
protocol
+
'
//
'
+
location
.
host
+
location
.
pathname
},
function
(
result
)
{
if
(
result
&&
result
.
status
==
'
success
'
)
{
$
(
configured
).
val
(
'
false
'
);
$
(
token
).
val
(
result
.
data
.
request_token
);
$
(
token_secret
).
val
(
result
.
data
.
request_token_secret
);
OCA
.
External
.
Settings
.
mountConfig
.
saveStorageConfig
(
tr
,
function
()
{
window
.
location
=
result
.
data
.
url
;
});
}
else
{
OC
.
dialogs
.
alert
(
result
.
data
.
message
,
t
(
'
files_external
'
,
'
Error configuring Dropbox storage
'
));
}
});
}
else
{
OC
.
dialogs
.
alert
(
t
(
'
files_external
'
,
'
Please provide a valid Dropbox app key and secret.
'
),
t
(
'
files_external
'
,
'
Error configuring Dropbox storage
'
)
);
}
});
});
apps/files_external/js/google.js
deleted
100644 → 0
View file @
2f86be9c
$
(
document
).
ready
(
function
()
{
$
(
'
#externalStorage tbody tr.
\\\\
OC
\\\\
Files
\\\\
Storage
\\\\
Google
'
).
each
(
function
()
{
var
configured
=
$
(
this
).
find
(
'
[data-parameter="configured"]
'
);
if
(
$
(
configured
).
val
()
==
'
true
'
)
{
$
(
this
).
find
(
'
.configuration input
'
).
attr
(
'
disabled
'
,
'
disabled
'
);
$
(
this
).
find
(
'
.configuration
'
).
append
(
$
(
'
<span/>
'
).
attr
(
'
id
'
,
'
access
'
)
.
text
(
t
(
'
files_external
'
,
'
Access granted
'
)));
}
else
{
var
client_id
=
$
(
this
).
find
(
'
.configuration [data-parameter="client_id"]
'
).
val
();
var
client_secret
=
$
(
this
).
find
(
'
.configuration [data-parameter="client_secret"]
'
)
.
val
();
if
(
client_id
!=
''
&&
client_secret
!=
''
)
{
var
params
=
{};
window
.
location
.
href
.
replace
(
/
[
?&
]
+
([^
=&
]
+
)
=
([^
&
]
*
)
/gi
,
function
(
m
,
key
,
value
)
{
params
[
key
]
=
value
;
});
if
(
params
[
'
code
'
]
!==
undefined
)
{
var
tr
=
$
(
this
);
var
token
=
$
(
this
).
find
(
'
.configuration [data-parameter="token"]
'
);
var
statusSpan
=
$
(
tr
).
find
(
'
.status span
'
);
statusSpan
.
removeClass
();
statusSpan
.
addClass
(
'
waiting
'
);
$
.
post
(
OC
.
filePath
(
'
files_external
'
,
'
ajax
'
,
'
google.php
'
),
{
step
:
2
,
client_id
:
client_id
,
client_secret
:
client_secret
,
redirect
:
location
.
protocol
+
'
//
'
+
location
.
host
+
location
.
pathname
,
code
:
params
[
'
code
'
],
},
function
(
result
)
{
if
(
result
&&
result
.
status
==
'
success
'
)
{
$
(
token
).
val
(
result
.
data
.
token
);
$
(
configured
).
val
(
'
true
'
);
OCA
.
External
.
Settings
.
mountConfig
.
saveStorageConfig
(
tr
,
function
(
status
)
{
if
(
status
)
{
$
(
tr
).
find
(
'
.configuration input
'
).
attr
(
'
disabled
'
,
'
disabled
'
);
$
(
tr
).
find
(
'
.configuration
'
).
append
(
$
(
'
<span/>
'
)
.
attr
(
'
id
'
,
'
access
'
)
.
text
(
t
(
'
files_external
'
,
'
Access granted
'
)));
}
});
}
else
{
OC
.
dialogs
.
alert
(
result
.
data
.
message
,
t
(
'
files_external
'
,
'
Error configuring Google Drive storage
'
)
);
}
}
);
}
}
else
{
onGoogleInputsChange
(
$
(
this
));
}
}
});
$
(
'
#externalStorage
'
).
on
(
'
paste
'
,
'
tbody tr.
\\\\
OC
\\\\
Files
\\\\
Storage
\\\\
Google td
'
,
function
()
{
var
tr
=
$
(
this
).
parent
();
setTimeout
(
function
()
{
onGoogleInputsChange
(
tr
);
},
20
);
}
);
$
(
'
#externalStorage
'
).
on
(
'
keyup
'
,
'
tbody tr.
\\\\
OC
\\\\
Files
\\\\
Storage
\\\\
Google td
'
,
function
()
{
onGoogleInputsChange
(
$
(
this
).
parent
());
}
);
$
(
'
#externalStorage
'
).
on
(
'
change
'
,
'
tbody tr.
\\\\
OC
\\\\
Files
\\\\
Storage
\\\\
Google .chzn-select
'
,
function
()
{
onGoogleInputsChange
(
$
(
this
).
parent
().
parent
());
}
);
function
onGoogleInputsChange
(
tr
)
{
if
(
$
(
tr
).
find
(
'
[data-parameter="configured"]
'
).
val
()
!=
'
true
'
)
{
var
config
=
$
(
tr
).
find
(
'
.configuration
'
);
if
(
$
(
tr
).
find
(
'
.mountPoint input
'
).
val
()
!=
''
&&
$
(
config
).
find
(
'
[data-parameter="client_id"]
'
).
val
()
!=
''
&&
$
(
config
).
find
(
'
[data-parameter="client_secret"]
'
).
val
()
!=
''
&&
(
$
(
tr
).
find
(
'
.chzn-select
'
).
length
==
0
||
$
(
tr
).
find
(
'
.chzn-select
'
).
val
()
!=
null
))
{
if
(
$
(
tr
).
find
(
'
.google
'
).
length
==
0
)
{
$
(
config
).
append
(
$
(
document
.
createElement
(
'
input
'
)).
addClass
(
'
button google
'
)
.
attr
(
'
type
'
,
'
button
'
)
.
attr
(
'
value
'
,
t
(
'
files_external
'
,
'
Grant access
'
)));
}
else
{
$
(
tr
).
find
(
'
.google
'
).
show
();
}
}
else
if
(
$
(
tr
).
find
(
'
.google
'
).
length
>
0
)
{
$
(
tr
).
find
(
'
.google
'
).
hide
();
}
}
}
$
(
'
#externalStorage
'
).
on
(
'
click
'
,
'
.google
'
,
function
(
event
)
{
event
.
preventDefault
();
var
tr
=
$
(
this
).
parent
().
parent
();
var
configured
=
$
(
this
).
parent
().
find
(
'
[data-parameter="configured"]
'
);
var
client_id
=
$
(
this
).
parent
().
find
(
'
[data-parameter="client_id"]
'
).
val
();
var
client_secret
=
$
(
this
).
parent
().
find
(
'
[data-parameter="client_secret"]
'
).
val
();
if
(
client_id
!=
''
&&
client_secret
!=
''
)
{
var
token
=
$
(
this
).
parent
().
find
(
'
[data-parameter="token"]
'
);
$
.
post
(
OC
.
filePath
(
'
files_external
'
,
'
ajax
'
,
'
google.php
'
),
{
step
:
1
,
client_id
:
client_id
,
client_secret
:
client_secret
,
redirect
:
location
.
protocol
+
'
//
'
+
location
.
host
+
location
.
pathname
,
},
function
(
result
)
{
if
(
result
&&
result
.
status
==
'
success
'
)
{
$
(
configured
).
val
(
'
false
'
);
$
(
token
).
val
(
'
false
'
);
OCA
.
External
.
Settings
.
mountConfig
.
saveStorageConfig
(
tr
,
function
(
status
)
{
window
.
location
=
result
.
data
.
url
;
});
}
else
{
OC
.
dialogs
.
alert
(
result
.
data
.
message
,
t
(
'
files_external
'
,
'
Error configuring Google Drive storage
'
)
);
}
}
);
}
});
});
apps/files_external/js/oauth1.js
0 → 100644
View file @
494c1d74
$
(
document
).
ready
(
function
()
{
OCA
.
External
.
Settings
.
mountConfig
.
whenSelectAuthMechanism
(
function
(
$tr
,
authMechanism
,
scheme
)
{
if
(
authMechanism
===
'
oauth1::oauth1
'
)
{
var
config
=
$tr
.
find
(
'
.configuration
'
);
config
.
append
(
$
(
document
.
createElement
(
'
input
'
))
.
addClass
(
'
button auth-param
'
)
.
attr
(
'
type
'
,
'
button
'
)
.
attr
(
'
value
'
,
t
(
'
files_external
'
,
'
Grant access
'
))
.
attr
(
'
name
'
,
'
oauth1_grant
'
)
);
var
configured
=
$tr
.
find
(
'
[data-parameter="configured"]
'
);
if
(
$
(
configured
).
val
()
==
'
true
'
)
{
$tr
.
find
(
'
.configuration input
'
).
attr
(
'
disabled
'
,
'
disabled
'
);
$tr
.
find
(
'
.configuration
'
).
append
(
'
<span id="access" style="padding-left:0.5em;">
'
+
t
(
'
files_external
'
,
'
Access granted
'
)
+
'
</span>
'
);
}
else
{
var
app_key
=
$tr
.
find
(
'
.configuration [data-parameter="app_key"]
'
).
val
();
var
app_secret
=
$tr
.
find
(
'
.configuration [data-parameter="app_secret"]
'
).
val
();
if
(
app_key
!=
''
&&
app_secret
!=
''
)
{
var
pos
=
window
.
location
.
search
.
indexOf
(
'
oauth_token
'
)
+
12
;
var
token
=
$tr
.
find
(
'
.configuration [data-parameter="token"]
'
);
if
(
pos
!=
-
1
&&
window
.
location
.
search
.
substr
(
pos
,
$
(
token
).
val
().
length
)
==
$
(
token
).
val
())
{
var
token_secret
=
$tr
.
find
(
'
.configuration [data-parameter="token_secret"]
'
);
var
statusSpan
=
$tr
.
find
(
'
.status span
'
);
statusSpan
.
removeClass
();
statusSpan
.
addClass
(
'
waiting
'
);
$
.
post
(
OC
.
filePath
(
'
files_external
'
,
'
ajax
'
,
'
oauth1.php
'
),
{
step
:
2
,
app_key
:
app_key
,
app_secret
:
app_secret
,
request_token
:
$
(
token
).
val
(),
request_token_secret
:
$
(
token_secret
).
val
()
},
function
(
result
)
{
if
(
result
&&
result
.
status
==
'
success
'
)
{
$
(
token
).
val
(
result
.
access_token
);
$
(
token_secret
).
val
(
result
.
access_token_secret
);
$
(
configured
).
val
(
'
true
'
);
OCA
.
External
.
Settings
.
mountConfig
.
saveStorageConfig
(
$tr
,
function
(
status
)
{
if
(
status
)
{
$tr
.
find
(
'
.configuration input
'
).
attr
(
'
disabled
'
,
'
disabled
'
);
$tr
.
find
(
'
.configuration
'
).
append
(
'
<span id="access" style="padding-left:0.5em;">
'
+
t
(
'
files_external
'
,
'
Access granted
'
)
+
'
</span>
'
);
}
});
}
else
{
OC
.
dialogs
.
alert
(
result
.
data
.
message
,
t
(
'
files_external
'
,
'
Error configuring OAuth1
'
));
}
});
}
}
}
}
});
$
(
'
#externalStorage
'
).
on
(
'
click
'
,
'
[name="oauth1_grant"]
'
,
function
(
event
)
{
event
.
preventDefault
();
var
tr
=
$
(
this
).
parent
().
parent
();
var
app_key
=
$
(
this
).
parent
().
find
(
'
[data-parameter="app_key"]
'
).
val
();
var
app_secret
=
$
(
this
).
parent
().
find
(
'
[data-parameter="app_secret"]
'
).
val
();
if
(
app_key
!=
''
&&
app_secret
!=
''
)
{
var
configured
=
$
(
this
).
parent
().
find
(
'
[data-parameter="configured"]
'
);
var
token
=
$
(
this
).
parent
().
find
(
'
[data-parameter="token"]
'
);
var
token_secret
=
$
(
this
).
parent
().
find
(
'
[data-parameter="token_secret"]
'
);
$
.
post
(
OC
.
filePath
(
'
files_external
'
,
'
ajax
'
,
'
oauth1.php
'
),
{
step
:
1
,
app_key
:
app_key
,
app_secret
:
app_secret
,
callback
:
location
.
protocol
+
'
//
'
+
location
.
host
+
location
.
pathname
},
function
(
result
)
{
if
(
result
&&
result
.
status
==
'
success
'
)
{
$
(
configured
).
val
(
'
false
'
);
$
(
token
).
val
(
result
.
data
.
request_token
);
$
(
token_secret
).
val
(
result
.
data
.
request_token_secret
);
OCA
.
External
.
Settings
.
mountConfig
.
saveStorageConfig
(
tr
,
function
()
{
window
.
location
=
result
.
data
.
url
;
});
}
else
{
OC
.
dialogs
.
alert
(
result
.
data
.
message
,
t
(
'
files_external
'
,
'
Error configuring OAuth1
'
));
}
});
}
else
{
OC
.
dialogs
.
alert
(
t
(
'
files_external
'
,
'
Please provide a valid app key and secret.
'
),
t
(
'
files_external
'
,
'
Error configuring OAuth1
'
)
);
}
});
});
apps/files_external/js/oauth2.js
0 → 100644
View file @
494c1d74
$
(
document
).
ready
(
function
()
{
OCA
.
External
.
Settings
.
mountConfig
.
whenSelectAuthMechanism
(
function
(
$tr
,
authMechanism
,
scheme
)
{
if
(
authMechanism
===
'
oauth2::oauth2
'
)
{
var
config
=
$tr
.
find
(
'
.configuration
'
);
config
.
append
(
$
(
document
.
createElement
(
'
input
'
))
.
addClass
(
'
button auth-param
'
)
.
attr
(
'
type
'
,
'
button
'
)
.
attr
(
'
value
'
,
t
(
'
files_external
'
,
'
Grant access
'
))
.
attr
(
'
name
'
,
'
oauth2_grant
'
)
);
var
configured
=
$tr
.
find
(
'
[data-parameter="configured"]
'
);
if
(
$
(
configured
).
val
()
==
'
true
'
)
{
$tr
.
find
(
'
.configuration input
'
).
attr
(
'
disabled
'
,
'
disabled
'
);
$tr
.
find
(
'
.configuration
'
).
append
(
$
(
'
<span/>
'
).
attr
(
'
id
'
,
'
access
'
)
.
text
(
t
(
'
files_external
'
,
'
Access granted
'
)));
}
else
{
var
client_id
=
$tr
.
find
(
'
.configuration [data-parameter="client_id"]
'
).
val
();
var
client_secret
=
$tr
.
find
(
'
.configuration [data-parameter="client_secret"]
'
)
.
val
();
if
(
client_id
!=
''
&&
client_secret
!=
''
)
{
var
params
=
{};
window
.
location
.
href
.
replace
(
/
[
?&
]
+
([^
=&
]
+
)
=
([^
&
]
*
)
/gi
,
function
(
m
,
key
,
value
)
{
params
[
key
]
=
value
;
});
if
(
params
[
'
code
'
]
!==
undefined
)
{
var
token
=
$tr
.
find
(
'
.configuration [data-parameter="token"]
'
);
var
statusSpan
=
$tr
.
find
(
'
.status span
'
);
statusSpan
.
removeClass
();
statusSpan
.
addClass
(
'
waiting
'
);
$
.
post
(
OC
.
filePath
(
'
files_external
'
,
'
ajax
'
,
'
oauth2.php
'
),
{
step
:
2
,
client_id
:
client_id
,
client_secret
:
client_secret
,
redirect
:
location
.
protocol
+
'
//
'
+
location
.
host
+
location
.
pathname
,
code
:
params
[
'
code
'
],
},
function
(
result
)
{
if
(
result
&&
result
.
status
==
'
success
'
)
{
$
(
token
).
val
(
result
.
data
.
token
);
$
(
configured
).
val
(
'
true
'
);
OCA
.
External
.
Settings
.
mountConfig
.
saveStorageConfig
(
$tr
,
function
(
status
)
{
if
(
status
)
{
$tr
.
find
(
'
.configuration input
'
).
attr
(
'
disabled
'
,
'
disabled
'
);
$tr
.
find
(
'
.configuration
'
).
append
(
$
(
'
<span/>
'
)
.
attr
(
'
id
'
,
'
access
'
)
.
text
(
t
(
'
files_external
'
,
'
Access granted
'
)));
}
});
}
else
{
OC
.
dialogs
.
alert
(
result
.
data
.
message
,
t
(
'
files_external
'
,
'
Error configuring OAuth2
'
)
);
}
}
);
}
}
}
}
});
$
(
'
#externalStorage
'
).
on
(
'
click
'
,
'
[name="oauth2_grant"]
'
,
function
(
event
)
{
event
.
preventDefault
();
var
tr
=
$
(
this
).
parent
().
parent
();
var
configured
=
$
(
this
).
parent
().
find
(
'
[data-parameter="configured"]
'
);
var
client_id
=
$
(
this
).
parent
().
find
(
'
[data-parameter="client_id"]
'
).
val
();
var
client_secret
=
$
(
this
).
parent
().
find
(
'
[data-parameter="client_secret"]
'
).
val
();
if
(
client_id
!=
''
&&
client_secret
!=
''
)
{
var
token
=
$
(
this
).
parent
().
find
(
'
[data-parameter="token"]
'
);
$
.
post
(
OC
.
filePath
(
'
files_external
'
,
'
ajax
'
,
'
oauth2.php
'
),
{
step
:
1
,
client_id
:
client_id
,
client_secret
:
client_secret
,
redirect
:
location
.
protocol
+
'
//
'
+
location
.
host
+
location
.
pathname
,
},
function
(
result
)
{
if
(
result
&&
result
.
status
==
'
success
'
)
{
$
(
configured
).
val
(
'
false
'
);
$
(
token
).
val
(
'
false
'
);
OCA
.
External
.
Settings
.
mountConfig
.
saveStorageConfig
(
tr
,
function
(
status
)
{
window
.
location
=
result
.
data
.
url
;
});
}
else
{
OC
.
dialogs
.
alert
(
result
.
data
.
message
,
t
(
'
files_external
'
,
'
Error configuring OAuth2
'
)
);
}
}
);
}
});
});
apps/files_external/js/settings.js
View file @
494c1d74
...
...
@@ -550,7 +550,7 @@ var MountConfigListView = function($el, options) {
/**