bugfixes:

- improved compatibility with OrcID
- allwed to alter password for user without email address (admin)

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-09-22 16:25:56 +02:00
parent 97c395fb38
commit 60c9a956aa
2 changed files with 4 additions and 3 deletions

View File

@@ -278,7 +278,7 @@ public class UserModule extends BaseHandler implements UserService {
var code = params.getString(CODE); var code = params.getString(CODE);
var state = stateMap.remove(params.getString(STATE)); var state = stateMap.remove(params.getString(STATE));
if (state == null) return sendContent(ex,HTTP_BAD_REQUEST,"no state submitted"); if (state == null) return sendContent(ex,HTTP_BAD_REQUEST,"no state submitted");
var redirect = url(ex).replaceAll("/api/.*",""); var redirect = url(ex).replaceAll("/api/.*","/oidc_callback");
var location = state.config.getString(TOKEN_ENDPOINT); var location = state.config.getString(TOKEN_ENDPOINT);
try { try {

View File

@@ -446,14 +446,15 @@ CREATE TABLE IF NOT EXISTS {0} (
public UmbrellaUser save(DbUser user) throws UmbrellaException { public UmbrellaUser save(DbUser user) throws UmbrellaException {
try { try {
Long id = user.id(); Long id = user.id();
var email = user.email() == null ? null : user.email().toString();
if (id<1){ if (id<1){
insertInto(TABLE_USERS,LOGIN, PASS, THEME, EMAIL) insertInto(TABLE_USERS,LOGIN, PASS, THEME, EMAIL)
.values(user.name(), user.hashedPassword(), user.theme(), user.email().toString()) .values(user.name(), user.hashedPassword(), user.theme(), email)
.execute(db) .execute(db)
.close(); .close();
} else { } else {
replaceInto(TABLE_USERS, ID, LOGIN, PASS, THEME, EMAIL, LAST_LOGOFF) replaceInto(TABLE_USERS, ID, LOGIN, PASS, THEME, EMAIL, LAST_LOGOFF)
.values(id, user.name(), user.hashedPassword(), user.theme(), user.email().toString(), user.lastLogoff()) .values(id, user.name(), user.hashedPassword(), user.theme(), email, user.lastLogoff())
.execute(db) .execute(db)
.close(); .close();
} }