Web: Files : Settings : Added OAuth login for services
This commit is contained in:
parent
cdf21f36da
commit
a76b6fa439
@ -134,10 +134,40 @@ class ConnectClouds extends React.Component {
|
||||
}
|
||||
}
|
||||
|
||||
showOAuthModal = (token, serviceData) => {
|
||||
this.setState({
|
||||
showAccountSettingDialog: true,
|
||||
selectedServiceData: {
|
||||
title: serviceData.title,
|
||||
provider_key: serviceData.title,
|
||||
link: serviceData.link,
|
||||
token,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
getOAuthToken = (modal, serviceData) => {
|
||||
let t = setInterval(() => {
|
||||
try {
|
||||
if (modal.json) {
|
||||
clearInterval(t);
|
||||
const token = modal.json.response;
|
||||
modal.close();
|
||||
this.showOAuthModal(token, serviceData);
|
||||
}
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
}, 1000);
|
||||
};
|
||||
|
||||
onShowService = (e) => {
|
||||
const selectedServiceData = e.currentTarget.dataset;
|
||||
const showAccountSettingDialog = !e.currentTarget.dataset.link;
|
||||
!showAccountSettingDialog && openConnectWindow(selectedServiceData.title);
|
||||
!showAccountSettingDialog &&
|
||||
openConnectWindow(selectedServiceData.title).then((modal) =>
|
||||
this.getOAuthToken(modal, selectedServiceData)
|
||||
);
|
||||
|
||||
this.setState({
|
||||
showThirdPartyDialog: !this.state.showThirdPartyDialog,
|
||||
|
@ -45,7 +45,7 @@ const StyledConnectedDialog = styled.div`
|
||||
|
||||
const ConnectedDialog = (props) => {
|
||||
const { onClose, visible, t, item } = props;
|
||||
const { corporate, title, link, auth_key, provider_id, provider_key } = item;
|
||||
const { corporate, title, link, token, provider_id, provider_key } = item;
|
||||
|
||||
const [urlValue, setUrlValue] = useState("");
|
||||
const [loginValue, setLoginValue] = useState("");
|
||||
@ -64,7 +64,7 @@ const ConnectedDialog = (props) => {
|
||||
urlValue,
|
||||
loginValue,
|
||||
passwordValue,
|
||||
auth_key,
|
||||
token,
|
||||
isCorporate,
|
||||
customerTitle,
|
||||
provider_key,
|
||||
|
@ -1382,6 +1382,20 @@ const convertServiceName = (serviceName) => {
|
||||
export function openConnectWindow(serviceName) {
|
||||
const service = convertServiceName(serviceName);
|
||||
return api.files.openConnectWindow(service).then((link) => {
|
||||
window.open(link, "", "width=1020,height=600");
|
||||
return oAuthPopup(link);
|
||||
});
|
||||
}
|
||||
|
||||
export function oAuthPopup(url) {
|
||||
let newWindow;
|
||||
|
||||
try {
|
||||
let params =
|
||||
"height=600,width=1020,resizable=0,status=0,toolbar=0,menubar=0,location=1";
|
||||
newWindow = window.open(url, "Authorization", params);
|
||||
} catch (err) {
|
||||
newWindow = window.open(url, "Authorization");
|
||||
}
|
||||
|
||||
return newWindow;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user