Project

General

Profile

« Previous | Next » 

Revision 8178

check both previous and current data revisions when updating packages. https://projects.ecoinformatics.org/ecoinfo/issues/5647

View differences:

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