From 7d827a4a7e9bc672a07353faf4a10c5a2a316a7e Mon Sep 17 00:00:00 2001 From: NMerz Date: Sun, 15 Nov 2020 10:38:43 -0500 Subject: [PATCH] Handle unshares with PUT --- Lambdas/Lists/List/src/ListGetter.java | 7 +++++-- Lambdas/Lists/ListShare/src/ListSharer.java | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Lambdas/Lists/List/src/ListGetter.java b/Lambdas/Lists/List/src/ListGetter.java index de3fe5f..982a948 100644 --- a/Lambdas/Lists/List/src/ListGetter.java +++ b/Lambdas/Lists/List/src/ListGetter.java @@ -43,13 +43,16 @@ public class ListGetter implements CallHandler{ int sharees = 0; boolean verifiedAccess = false; while ((sharees < 2 && accessResults.next()) || !verifiedAccess) { + int permissionLevel = accessResults.getInt("permissionLevel"); if (accessResults.getString("userID").equals(cognitoID)) { verifiedAccess = true; - if (!ListPermissions.hasPermission(accessResults.getInt("permissionLevel"), "Read")) { + if (!ListPermissions.hasPermission(permissionLevel, "Read")) { throw new AccessControlException("User " + cognitoID + " does not have permission to read list " + id); } } - sharees++; + if (permissionLevel > 0) { + sharees++; + } } boolean shared = false; if (sharees > 1) { diff --git a/Lambdas/Lists/ListShare/src/ListSharer.java b/Lambdas/Lists/ListShare/src/ListSharer.java index 2d55631..f55d337 100644 --- a/Lambdas/Lists/ListShare/src/ListSharer.java +++ b/Lambdas/Lists/ListShare/src/ListSharer.java @@ -22,7 +22,8 @@ public class ListSharer implements CallHandler { } final private String CHECK_ACCESS = "SELECT * from ListSharee WHERE listID = ? AND userID = ?;"; - final private String SHARE_LIST = "INSERT INTO ListSharee(listID, userID, permissionLevel) VALUES(?, ?, ?) ON DUPLICATE KEY UPDATE permissionLevel = ?;"; + final private String SHARE_LIST = "INSERT INTO ListSharee(listID, userID, permissionLevel, uiPosition) VALUES(?, ?, ?, ?) ON DUPLICATE KEY UPDATE permissionLevel = ?;"; + public Object conductAction(Map bodyMap, HashMap queryString, String cognitoID) throws SQLException { PreparedStatement checkAccess = connection.prepareStatement(CHECK_ACCESS);