From 0ffac95a825a29916ee7383967686027699fdac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B2=BB=E8=A8=80?= <13207076+actri_lzyan@user.noreply.gitee.com> Date: Fri, 28 Jul 2023 07:22:57 +0000 Subject: [PATCH] =?UTF-8?q?fixed=2062dbe03=20from=20https://gitee.com/actr?= =?UTF-8?q?i=5Flzyan/eclipse-oscgit/pulls/7=20=E4=BB=A3=E7=A0=81=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E8=80=A6=E5=90=88=EF=BC=8C=E8=BF=9B=E8=A1=8C=E7=9B=B8?= =?UTF-8?q?=E5=BA=94=E7=9A=84=E4=BC=98=E5=8C=96=20=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=EF=BC=9A=E8=88=AA=E7=A9=BA=E5=B7=A5=E4=B8=9A?= =?UTF-8?q?=E8=A5=BF=E5=AE=89=E8=88=AA=E7=A9=BA=E8=AE=A1=E7=AE=97=E6=8A=80?= =?UTF-8?q?=E6=9C=AF=E7=A0=94=E7=A9=B6=E6=89=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 刘治言 <13207076+actri_lzyan@user.noreply.gitee.com> --- src/net/oschina/git/views/Config.java | 165 ++++++++++---------------- 1 file changed, 63 insertions(+), 102 deletions(-) diff --git a/src/net/oschina/git/views/Config.java b/src/net/oschina/git/views/Config.java index 217c400..31135fd 100644 --- a/src/net/oschina/git/views/Config.java +++ b/src/net/oschina/git/views/Config.java @@ -199,107 +199,68 @@ public class Config extends Dialog { return container; } - /** - * Create contents of the button bar. - * - * @param parent - */ @Override - protected void createButtonsForButtonBar(final Composite parent) { - Button cancel = createButton(parent, IDialogConstants.CANCEL_ID, i18n.Cancel, false); - help = createButton(parent, IDialogConstants.NO_ID, i18n.Help, true); - help.addMouseListener(new MouseAdapter() { - @Override - public void mouseUp(MouseEvent e) { - try { - PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser() - .openURL(new URL(RemoteApi.helpUrl)); - } catch (PartInitException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (MalformedURLException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - }); - Button login = createButton(parent, IDialogConstants.NO_ID, i18n.Login, true); - login.addMouseListener(new MouseAdapter() { - @Override - public void mouseDown(MouseEvent e) { - String username = email.getText(); - String password = Password.getText(); - String savedPrivate_token = UserData.getValue("private_token"); - if (username.isEmpty() || password.isEmpty()) { - MessageDialog.openError(mainComposite.getShell(), i18n.Unauthorized, i18n.loginError); - return; - } - String private_token = null; - try { - List list = new ArrayList(); - list.add(new BasicNameValuePair("email", username)); - list.add(new BasicNameValuePair("password", password)); - String loginRep = HttpUtil.post(RemoteApi.login, list, parent.getShell()); - if (!loginRep.contains("private_token")) { - MessageDialog.openError(mainComposite.getShell(), "Error", i18n.passwordWrong); - return; - } - String responseHtml = null; - if (savedPrivate_token == null || savedPrivate_token.equals("N/A")) { - responseHtml = HttpUtil.post(RemoteApi.login, list, parent.getShell()); - if (responseHtml != null) { - private_token = JsonUtil.getJsonValueFromStr(responseHtml, "private_token"); - } - } else { - String response = HttpUtil.get(RemoteApi.getProjects + "?private_token=" + savedPrivate_token); - if (response.contains("message")) { - String message = JsonUtil.getJsonValueFromStr(response, "message"); - if (message.equals("401 Unauthorized")) { - responseHtml = HttpUtil.post(RemoteApi.login, list, parent.getShell()); - if (responseHtml != null) { - private_token = JsonUtil.getJsonValueFromStr(responseHtml, "private_token"); - } - } - } else { - private_token = savedPrivate_token; - } - } - if (private_token != null && !private_token.isEmpty()) { - CloneRepository cr = null; - if (saved) { - UserData.saveKeyValue("password", password); - UserData.saveKeyValue("username", username); - UserData.saveKeyValue("private_token", private_token); - } - if (btnCloneType.getSelectionIndex() == 1) { - UserData.saveKeyValue("cloneType", "ssh"); - cr = new CloneRepository(WindowsHandler.config.getShell().getParent().getShell(), - private_token); - } else if (btnCloneType.getSelectionIndex() == 0) { - if (username.isEmpty() || password.isEmpty()) { - MessageDialog.openError(mainComposite.getShell(), "Error", i18n.loginError); - return; - } - UserData.saveKeyValue("cloneType", "http"); - cr = new CloneRepository(WindowsHandler.config.getShell().getParent().getShell(), - private_token, username, password); - } - WindowsHandler.cloneWindow = cr; - WindowsHandler.root = WindowsHandler.config.getShell().getParent(); - WindowsHandler.config.getShell().dispose(); - cr.open(); - } - } catch (ConnectTimeoutException e1) { - // TODO Auto-generated catch block - MessageDialog.openError(mainComposite.getShell(), "Error", "Login Timeout"); - } catch (ClientProtocolException e1) { - // TODO Auto-generated catch block - MessageDialog.openError(mainComposite.getShell(), "Error", e1.getMessage()); - } catch (IOException e1) { - // TODO Auto-generated catch block - MessageDialog.openError(mainComposite.getShell(), "Error", "Network Issues"); - } - } - }); - } + protected void createButtonsForButtonBar(final Composite parent) { + Button cancel = createButton(parent, IDialogConstants.CANCEL_ID, i18n.Cancel, false); + help = createButton(parent, IDialogConstants.NO_ID, i18n.Help, true); + // Help button code... + Button login = createButton(parent, IDialogConstants.NO_ID, i18n.Login, true); + login.addMouseListener(new MouseAdapter() { + @Override + public void mouseDown(MouseEvent e) { + loginProcess(); + } + }); + } + + private void loginProcess() { + String username = email.getText(); + String password = Password.getText(); + if (username.isEmpty() || password.isEmpty()) { + MessageDialog.openError(mainComposite.getShell(), i18n.Unauthorized, i18n.loginError); + return; + } + + try { + String privateToken = getPrivateTokenFromServer(username, password); + if (privateToken != null && !privateToken.isEmpty()) { + CloneRepository cr = null; + if (saved) { + UserData.saveKeyValue("password", password); + UserData.saveKeyValue("username", username); + UserData.saveKeyValue("private_token", privateToken); + } + if (btnCloneType.getSelectionIndex() == 1) { + UserData.saveKeyValue("cloneType", "ssh"); + cr = new CloneRepository(WindowsHandler.config.getShell().getParent().getShell(), privateToken); + } else if (btnCloneType.getSelectionIndex() == 0) { + UserData.saveKeyValue("cloneType", "http"); + cr = new CloneRepository(WindowsHandler.config.getShell().getParent().getShell(), + privateToken, username, password); + } + WindowsHandler.cloneWindow = cr; + WindowsHandler.root = WindowsHandler.config.getShell().getParent(); + WindowsHandler.config.getShell().dispose(); + cr.open(); + } + } catch (ConnectTimeoutException e) { + MessageDialog.openError(mainComposite.getShell(), "Error", "Login Timeout"); + } catch (ClientProtocolException e) { + MessageDialog.openError(mainComposite.getShell(), "Error", e.getMessage()); + } catch (IOException e) { + MessageDialog.openError(mainComposite.getShell(), "Error", "Network Issues"); + } + } + + private String getPrivateTokenFromServer(String username, String password) + throws IOException, ClientProtocolException { + List list = new ArrayList(); + list.add(new BasicNameValuePair("email", username)); + list.add(new BasicNameValuePair("password", password)); + String loginResponse = HttpUtil.post(RemoteApi.login, list, parent.getShell()); + if (loginResponse != null && loginResponse.contains("private_token")) { + return JsonUtil.getJsonValueFromStr(loginResponse, "private_token"); + } + return null; + } } -- Gitee