From a5abfa33ec661e32c73d905c735fa8fd2caa6c5d Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Mon, 21 Jul 2025 10:34:06 +0200 Subject: [PATCH] finished implementation of setting user permissions in projects --- .../java/de/srsoftware/umbrella/project/ProjectModule.java | 1 + .../main/java/de/srsoftware/umbrella/project/SqliteDb.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java b/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java index a07b955..1fcc4af 100644 --- a/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java +++ b/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java @@ -177,6 +177,7 @@ public class ProjectModule extends BaseHandler implements ProjectService { if (!(json.get(key) instanceof Number number)) throw invalidFieldException(PERMISSION,"int"); var permission = Permission.of(number.intValue()); members.put(userId,new Member(users.loadUser(userId),permission)); + project.dirtyFields().add(MEMBERS); } } diff --git a/project/src/main/java/de/srsoftware/umbrella/project/SqliteDb.java b/project/src/main/java/de/srsoftware/umbrella/project/SqliteDb.java index 6c962e0..9ebbbe1 100644 --- a/project/src/main/java/de/srsoftware/umbrella/project/SqliteDb.java +++ b/project/src/main/java/de/srsoftware/umbrella/project/SqliteDb.java @@ -207,8 +207,9 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255) } else { // Update try { if (prj.dirtyFields().contains(MEMBERS)){ - // TODO: - LOG.log(ERROR,"Updating/Adding project members not implemented!"); + var query = replaceInto(TABLE_PROJECT_USERS,PROJECT_ID,USER_ID,PERMISSIONS); + for (var member : prj.members().entrySet()) query.values(prj.id(),member.getKey(),member.getValue().permission().code()); + query.execute(db).close(); prj.dirtyFields().remove(MEMBERS); } if (prj.isDirty()){