Revision 8178
Added by ben leinfelder over 10 years ago
Eml210SAXHandler.java | ||
---|---|---|
1421 | 1421 |
} |
1422 | 1422 |
} |
1423 | 1423 |
|
1424 |
// check both the previous and current data permissions |
|
1425 |
// see: https://projects.ecoinformatics.org/ecoinfo/issues/5647 |
|
1424 | 1426 |
PermissionController controller = new PermissionController(previousDocid); |
1425 |
|
|
1427 |
PermissionController currentController = new PermissionController(dataDocid); |
|
1428 |
|
|
1426 | 1429 |
if (AccessionNumber.accNumberUsed(docid) |
1427 |
&& !controller.hasPermission(user, groups, "WRITE")) { |
|
1428 |
throw new SAXException(UPDATEACCESSERROR); |
|
1430 |
&& |
|
1431 |
!(controller.hasPermission(user, groups, "WRITE") |
|
1432 |
|| currentController.hasPermission(user, groups, "WRITE") |
|
1433 |
) |
|
1434 |
) { |
|
1435 |
throw new SAXException(UPDATEACCESSERROR + " id: " + dataDocid); |
|
1429 | 1436 |
} |
1430 | 1437 |
} catch (SQLException sqle) { |
1431 | 1438 |
throw new SAXException( |
... | ... | |
1953 | 1960 |
} |
1954 | 1961 |
String previousDocid = |
1955 | 1962 |
docid + PropertyService.getProperty("document.accNumSeparator") + previousRevision; |
1956 |
|
|
1957 |
PermissionController controller = new PermissionController(previousDocid); |
|
1958 |
if (controller.hasPermission(user, groups,AccessControlInterface.ALLSTRING)) { |
|
1963 |
|
|
1964 |
// check EITHER previous or current id for access rules |
|
1965 |
// see: https://projects.ecoinformatics.org/ecoinfo/issues/5647 |
|
1966 |
PermissionController previousController = new PermissionController(previousDocid); |
|
1967 |
PermissionController currentController = new PermissionController(accessionNumber); |
|
1968 |
if (previousController.hasPermission(user, groups, AccessControlInterface.ALLSTRING) |
|
1969 |
|| currentController.hasPermission(user, groups, AccessControlInterface.ALLSTRING) |
|
1970 |
) { |
|
1959 | 1971 |
onlineDataFileIdInTopAccessVector.add(guid); |
1960 | 1972 |
} else { |
1961 | 1973 |
throw new SAXException(UPDATEACCESSERROR); |
Also available in: Unified diff
check both previous and current data revisions when updating packages. https://projects.ecoinformatics.org/ecoinfo/issues/5647