2025-02-18 16:21:20 +03:00
|
|
|
|
package _VisualDVM.Passes.All;
|
|
|
|
|
|
import Common.Utils.Utils_;
|
|
|
|
|
|
import Common.Visual.UI;
|
|
|
|
|
|
import _VisualDVM.ComponentsServer.UserAccount.UI.UserAccountDialog;
|
|
|
|
|
|
import _VisualDVM.ComponentsServer.UserAccount.UserAccount;
|
|
|
|
|
|
import _VisualDVM.Global;
|
|
|
|
|
|
import _VisualDVM.Passes.Server.ComponentsServerPass;
|
|
|
|
|
|
import _VisualDVM.Repository.EmailMessage;
|
|
|
|
|
|
import _VisualDVM.Repository.Server.ServerCode;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.*;
|
|
|
|
|
|
public class ConfirmEmail extends ComponentsServerPass<UserAccount> {
|
|
|
|
|
|
String password;
|
|
|
|
|
|
UserAccountDialog f = new UserAccountDialog() {
|
|
|
|
|
|
{
|
|
|
|
|
|
fields.cbRole.setEnabled(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
public static int getRandomIntegerBetweenRange(int min, int max) {
|
|
|
|
|
|
return (int) ((Math.random() * ((max - min) + 1)) + min);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected boolean isSafe() {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected boolean canStart(Object... args) throws Exception {
|
2025-02-18 18:13:50 +03:00
|
|
|
|
target = (UserAccount) args[0]; // объект для заполнения полей.не более.
|
2025-02-18 16:21:20 +03:00
|
|
|
|
password = null;
|
|
|
|
|
|
if (f.ShowDialog("Регистрация", target)) {
|
|
|
|
|
|
if (!Utils_.validateEmail(target.email, Log)) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
password = String.valueOf(getRandomIntegerBetweenRange(1111, 9999));
|
|
|
|
|
|
return SendRequest(ServerCode.Email,
|
|
|
|
|
|
target.email,
|
|
|
|
|
|
new EmailMessage("Код подтверждения визуализатора для: " + Utils_.Brackets(target.name), password));
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected boolean validate() {
|
|
|
|
|
|
String attempt = null;
|
|
|
|
|
|
do {
|
|
|
|
|
|
attempt = JOptionPane.showInputDialog(null,
|
|
|
|
|
|
new String[]{"Введите код активации, полученный по почте"},
|
|
|
|
|
|
"Подтверждение адреса почты",
|
|
|
|
|
|
JOptionPane.INFORMATION_MESSAGE);
|
|
|
|
|
|
if (attempt != null) {
|
|
|
|
|
|
if (attempt.equals(password)) {
|
|
|
|
|
|
UI.Info("Почта успешно подтверждена!");
|
|
|
|
|
|
return true;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
UI.Error("Неверный код активации.\nПовторите попытку.");
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
UI.Info("Подтверждение почты отменено");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
} while (true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|