implemented otp login

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-07-08 20:27:34 +02:00
parent 7a5bb50ee2
commit 92c6b154ea
11 changed files with 99 additions and 34 deletions

View File

@@ -1,6 +1,11 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.core.api;
import java.util.Map;
public interface Translator {
public String translate(String language, String text);
public default String translate(String language, String text){
return translate(language, text, Map.of());
}
public String translate(String language, String text, Map<String,String> fills);
}

View File

@@ -1,15 +1,18 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.core.model;
import de.srsoftware.umbrella.core.UmbrellaException;
import static de.srsoftware.tools.Optionals.allSet;
import static java.net.HttpURLConnection.HTTP_BAD_REQUEST;
import static java.text.MessageFormat.format;
public class EmailAddress {
private final String email;
public EmailAddress(String addr){
public EmailAddress(String addr) throws UmbrellaException {
var parts = addr.split("@");
if (parts.length != 2 || !allSet(parts[0],parts[1])) throw new IllegalArgumentException(format("{0} is not a valid email address!",addr));
if (parts.length != 2 || !allSet(parts[0],parts[1])) throw new UmbrellaException(HTTP_BAD_REQUEST,"\"{0}\" is not a valid email address",addr);
email = addr;
}

View File

@@ -79,7 +79,7 @@ public class UmbrellaUser implements Mappable {
map.put(ID,id);
map.put(LOGIN, name()); // this is still used by old umbrella modules
map.put(NAME, name());
map.put(EMAIL,email().toString());
map.put(EMAIL,email() instanceof EmailAddress ea ? ea.toString() : null);
map.put(THEME,theme);
map.put(LANGUAGE,lang);
return map;