Files
VisualSapfor/src/_VisualDVM/Passes/All/CheckAccount.java

82 lines
3.5 KiB
Java
Raw Normal View History

2024-10-14 12:14:01 +03:00
package _VisualDVM.Passes.All;
2025-02-18 16:21:20 +03:00
import Common.Utils.Utils_;
import Common.Visual.UI;
2025-02-18 16:21:20 +03:00
import _VisualDVM.ComponentsServer.UserAccount.UserAccount;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Account.AccountRole;
2024-10-14 12:14:01 +03:00
import _VisualDVM.Passes.PassCode;
2025-02-18 16:21:20 +03:00
import _VisualDVM.Passes.Server.ComponentsServerPass;
import _VisualDVM.Repository.Server.ServerCode;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.Serializable;
2025-02-18 16:21:20 +03:00
public class CheckAccount extends ComponentsServerPass<UserAccount> {
2023-09-17 22:13:42 +03:00
@Override
public String getIconPath() {
return "/icons/Registry.png";
}
@Override
2025-02-18 16:21:20 +03:00
protected boolean isSafe() {
return false;
}
File keyFile;
void confirmEmail() throws Exception{
ConfirmEmail confirmEmailPass = (ConfirmEmail) Global.mainModule.getPass(PassCode.ConfirmEmail);;
if (confirmEmailPass.Do(
new UserAccount(Global.normalProperties.Name, Global.normalProperties.Email))
) {
2025-02-18 16:21:20 +03:00
UserAccount userAccount = confirmEmailPass.target;
//подтвердили почту. теперь проверяем ее роль на сервере. если на сервере нет акка будет создан
if (SendRequest(ServerCode.GetUserAccountByEmail, "",userAccount)){
2025-02-18 16:21:20 +03:00
target = (UserAccount) request.server_response.object;
FileUtils.writeStringToFile(keyFile, target.security_key);
}
}
2023-09-17 22:13:42 +03:00
}
@Override
2025-02-18 16:21:20 +03:00
protected boolean canStart(Object... args) throws Exception {
target =null;
keyFile = new File(Global.KeyDirectory, "key");
Global.normalProperties.Role = AccountRole.Undefined;
Global.normalProperties.Update();
2025-02-18 16:21:20 +03:00
//--
//1. Ищем ключ.
if (keyFile.exists()) {
//ключ есть. проверить его актуальность.
String key = FileUtils.readFileToString(keyFile);
System.out.println("ключ найден.");
if (SendRequest(ServerCode.GetUserAccountByKey,key)){
if (request.server_response.object!=null){
2025-02-18 16:21:20 +03:00
//ключ актуальный.
System.out.println("ключ совпал");
2025-02-18 16:21:20 +03:00
target = (UserAccount) request.server_response.object;
}else {
System.out.println("ключ не совпал!");
2025-02-18 16:21:20 +03:00
//ключ неактуальный. регистрируемся по новой.
UI.Error("Текущий ключ неверен. Он будет удален.");
2025-02-18 16:21:20 +03:00
Utils_.forceDeleteWithCheck(keyFile);
confirmEmail();
}
}
}else {
System.out.println("ключ не найден!");
2025-02-18 16:21:20 +03:00
confirmEmail();
2024-02-16 21:44:13 +03:00
}
2025-02-18 16:21:20 +03:00
return target!=null;
}
@Override
2025-02-18 16:21:20 +03:00
protected void body() throws Exception {
Global.normalProperties.SynchronizeAccount(target);
2023-09-17 22:13:42 +03:00
}
@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();
2023-09-17 22:13:42 +03:00
}
setControlsVisible(false); //если проверка успешна, кнопку больше не показывать.
2023-09-17 22:13:42 +03:00
}
}