package _VisualDVM.Passes.All; import Common.Utils.Utils_; import _VisualDVM.ComponentsServer.UserAccount.UserAccount; import _VisualDVM.Global; import _VisualDVM.Passes.PassCode; import _VisualDVM.Passes.Server.ComponentsServerPass; import _VisualDVM.Repository.Server.ServerCode; import org.apache.commons.io.FileUtils; import java.io.File; public class CheckAccount extends ComponentsServerPass { @Override public String getIconPath() { return "/icons/Registry.png"; } @Override protected boolean isSafe() { return false; } File keyFile; void confirmEmail() throws Exception{ ConfirmEmail confirmEmailPass = (ConfirmEmail) Global.mainModule.getPass(PassCode.ConfirmEmail);; if (confirmEmailPass.Do()){ UserAccount userAccount = confirmEmailPass.target; //подтвердили почту. теперь проверяем ее роль на сервере. если на сервере нет акка будет создан if (SendRequest(ServerCode.GetUserAccountByEmail, null,userAccount)){ target = (UserAccount) request.server_response.object; FileUtils.writeStringToFile(keyFile, target.security_key); } } } @Override protected boolean canStart(Object... args) throws Exception { target =null; keyFile = new File(Global.KeyDirectory, "key"); //-- //1. Ищем ключ. if (keyFile.exists()) { //ключ есть. проверить его актуальность. if (SendRequest(ServerCode.GetUserAccountByKey, FileUtils.readFileToString(keyFile))){ if (request.server_response!=null){ //ключ актуальный. target = (UserAccount) request.server_response.object; }else { //ключ неактуальный. регистрируемся по новой. Utils_.forceDeleteWithCheck(keyFile); confirmEmail(); } } }else { confirmEmail(); } return target!=null; } @Override protected void body() throws Exception { Global.normalProperties.SynchronizeAccount(target); } @Override protected void showDone() throws Exception { if (Global.mainModule.getUI().hasMainWindow()) { Global.mainModule.getUI().getMainWindow().getCallbackWindow().ShowAccount(); if (Global.componentsServer.db.bugReports.getUI().getCurrent() != null) Global.mainModule.getUI().getMainWindow().getCallbackWindow().ShowCurrentBugReport(); } setControlsVisible(false); //если проверка успешна, кнопку больше не показывать. } }