kanban bugfixes & improvements
This commit is contained in:
@@ -218,13 +218,21 @@ public class TaskModule extends BaseHandler implements TaskService {
|
||||
} catch (NumberFormatException e) {
|
||||
throw invalidFieldException(USER_ID,"long");
|
||||
}
|
||||
if (!(json.get(key) instanceof Number number)) throw invalidFieldException(PERMISSION,"int");
|
||||
var permission = Permission.of(number.intValue());
|
||||
var permission = switch (json.get(key)){
|
||||
case Number code -> Permission.of(code.intValue());
|
||||
case String name -> Permission.valueOf(name);
|
||||
default -> throw invalidFieldException(PERMISSION,"int / String");
|
||||
};
|
||||
if (permission == OWNER) { // if a new person is about to become the task owner
|
||||
for (var member : members.values()){ // alter the previous owners to editors
|
||||
if (member.permission() == OWNER) members.put(member.user().id(),new Member(member.user(),EDIT));
|
||||
}
|
||||
}
|
||||
if (permission == ASSIGNEE) { // if a new person is about to become the task owner
|
||||
for (var member : members.values()){ // alter the previous owners to editors
|
||||
if (member.permission() == ASSIGNEE) members.put(member.user().id(),new Member(member.user(),EDIT));
|
||||
}
|
||||
}
|
||||
members.put(userId,new Member(users.loadUser(userId),permission));
|
||||
task.dirty(MEMBERS);
|
||||
}
|
||||
@@ -253,8 +261,6 @@ public class TaskModule extends BaseHandler implements TaskService {
|
||||
projects.loadMembers(List.of(project));
|
||||
var member = project.members().get(user.id());
|
||||
if (member == null || member.permission() == READ_ONLY) throw forbidden("You are not allowed to create new tasks in this project");
|
||||
Task task = Task.of(json);
|
||||
task = taskDb.save(task);
|
||||
for (var key : memberData.keySet()){
|
||||
long userId = Long.parseLong(key);
|
||||
if (!(memberData.get(key) instanceof JSONObject nested)) throw invalidFieldException("members."+userId,"JSON");
|
||||
@@ -264,7 +270,14 @@ public class TaskModule extends BaseHandler implements TaskService {
|
||||
String username = nested.has(USER) && nested.get(USER) instanceof JSONObject userData && userData.get(NAME) instanceof String n ? n : key;
|
||||
throw new UmbrellaException(HTTP_BAD_REQUEST,"User {0} is no member of the leading project and cannot be assigned to this task",username);
|
||||
}
|
||||
taskDb.setMember(task.id(),userId,Permission.of(code.intValue()));
|
||||
}
|
||||
|
||||
Task task = Task.of(json);
|
||||
task = taskDb.save(task);
|
||||
for (var key : memberData.keySet()){
|
||||
long userId = Long.parseLong(key);
|
||||
var code = memberData.getJSONObject(key).getJSONObject(PERMISSION).getInt(CODE);
|
||||
taskDb.setMember(task.id(),userId,Permission.of(code));
|
||||
}
|
||||
return sendContent(ex,task);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user