|
|
|
@ -194,6 +194,7 @@ public class ProjectModule extends BaseHandler implements ProjectService { |
|
|
|
var project = loadMembers(projects.load(projectId)); |
|
|
|
var project = loadMembers(projects.load(projectId)); |
|
|
|
if (!project.hasMember(user)) throw forbidden("You are not a member of {0}",project.name()); |
|
|
|
if (!project.hasMember(user)) throw forbidden("You are not a member of {0}",project.name()); |
|
|
|
var json = json(ex); |
|
|
|
var json = json(ex); |
|
|
|
|
|
|
|
if (json.has(DROP_MEMBER) && json.get(DROP_MEMBER) instanceof Number id) dropMember(project,id.longValue()); |
|
|
|
if (json.has(MEMBERS) && json.get(MEMBERS) instanceof JSONObject memberJson) patchMembers(project,memberJson); |
|
|
|
if (json.has(MEMBERS) && json.get(MEMBERS) instanceof JSONObject memberJson) patchMembers(project,memberJson); |
|
|
|
if (json.has(NEW_MEMBER) && json.get(NEW_MEMBER) instanceof Number num) addMember(project,num.longValue()); |
|
|
|
if (json.has(NEW_MEMBER) && json.get(NEW_MEMBER) instanceof Number num) addMember(project,num.longValue()); |
|
|
|
|
|
|
|
|
|
|
|
@ -201,6 +202,11 @@ public class ProjectModule extends BaseHandler implements ProjectService { |
|
|
|
return sendContent(ex,project.toMap()); |
|
|
|
return sendContent(ex,project.toMap()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void dropMember(Project project, long userId) { |
|
|
|
|
|
|
|
if (project.members().get(userId).permission() == OWNER) throw forbidden("You may not remove the owner of the project"); |
|
|
|
|
|
|
|
projects.dropMember(project.id(),userId); |
|
|
|
|
|
|
|
project.members().remove(userId); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean postProject(HttpExchange ex, UmbrellaUser user) throws IOException, UmbrellaException { |
|
|
|
private boolean postProject(HttpExchange ex, UmbrellaUser user) throws IOException, UmbrellaException { |
|
|
|
|