Changeset 4396
- Timestamp:
- 01/29/14 16:17:56 (10 years ago)
- Location:
- DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/AnnotationDao.java
r4264 r4396 226 226 public int deleteAnnotationPrincipalPermissions(Number annotationID); 227 227 228 public int deleteAnnotationPrincipalPermission(Number annotationID, Number userID); 229 228 230 /* 229 231 * HELPERS -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/DBIntegrityServiceImlp.java
r4301 r4396 378 378 @Override 379 379 public int updateAnnotationPrincipalPermission(Number annotationID, Number userID, Permission permission) { 380 if (permission != null) { 380 381 return annotationDao.updateAnnotationPrincipalPermission(annotationID, userID, permission); 382 } 383 else { 384 return annotationDao.deleteAnnotationPrincipalPermission(annotationID, userID); 385 } 381 386 } 382 387 -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcAnnotationDao.java
r4281 r4396 47 47 public class JdbcAnnotationDao extends JdbcResourceDao implements AnnotationDao { 48 48 49 private 50 49 private final Logger loggerAnnotationDao = LoggerFactory.getLogger(JdbcAnnotationDao.class); 50 51 51 public JdbcAnnotationDao(DataSource dataSource) { 52 52 setDataSource(dataSource); … … 97 97 public Permission getPermission(Number annotationID, Number userID) { 98 98 if (annotationID == null) { 99 loggerAnnotationDao.debug("annotationID: " +nullArgument);100 return null; 101 } 102 99 loggerAnnotationDao.debug("annotationID: " + nullArgument); 100 return null; 101 } 102 103 103 if (userID == null) { 104 loggerAnnotationDao.debug("userID: " +nullArgument);105 return null; 106 } 107 104 loggerAnnotationDao.debug("userID: " + nullArgument); 105 return null; 106 } 107 108 108 StringBuilder sql = new StringBuilder("SELECT "); 109 109 sql.append(permission).append(" FROM ").append(permissionsTableName).append(" WHERE "). … … 129 129 public List<Number> getAnnotationIDsForUserWithPermission(Number userID, String[] permissionStrings) { 130 130 if (permissionStrings == null) { 131 loggerAnnotationDao.debug("premissionStrings: " +nullArgument);132 return null; 133 } 134 135 136 loggerAnnotationDao.debug("userID: " +nullArgument);131 loggerAnnotationDao.debug("premissionStrings: " + nullArgument); 132 return null; 133 } 134 135 if (userID == null) { 136 loggerAnnotationDao.debug("userID: " + nullArgument); 137 137 return null; 138 138 } … … 173 173 174 174 if (annotationIDs == null) { 175 loggerAnnotationDao.debug("annotationIDs: " +nullArgument);175 loggerAnnotationDao.debug("annotationIDs: " + nullArgument); 176 176 return null; 177 177 } else { … … 184 184 sql.append(" AND ").append(annotation_id).append(" IN ").append(values); 185 185 186 186 187 187 if (after != null) { 188 188 sql.append(" AND ").append(last_modified).append(" > :after"); … … 201 201 return getSimpleJdbcTemplate().query(sql.toString(), internalIDRowMapper, params); 202 202 } 203 203 204 204 ///////////////////////////////////////// 205 206 @Override 207 public List<Number> getAllAnnotationIDs(){ 205 @Override 206 public List<Number> getAllAnnotationIDs() { 208 207 StringBuilder sql = new StringBuilder("SELECT "); 209 208 sql.append(annotation_id).append(" , ").append(last_modified).append(" FROM ").append(annotationTableName).append(" ORDER BY ").append(last_modified).append(" DESC"); 210 return getSimpleJdbcTemplate().query(sql.toString(), internalIDRowMapper); 209 return getSimpleJdbcTemplate().query(sql.toString(), internalIDRowMapper); 211 210 } 212 211 … … 215 214 public List<Number> retrieveAnnotationList(List<Number> targetIDs) { 216 215 if (targetIDs == null) { 217 loggerAnnotationDao.debug("targetIDs: "+nullArgument);216 loggerAnnotationDao.debug("targetIDs: " + nullArgument); 218 217 return null; 219 218 } … … 231 230 public AnnotationInfo getAnnotationInfoWithoutTargets(Number annotationID) { 232 231 if (annotationID == null) { 233 loggerAnnotationDao.debug("annotationID: " +nullArgument);232 loggerAnnotationDao.debug("annotationID: " + nullArgument); 234 233 return null; 235 234 } … … 269 268 public List<String> getAnnotationREFs(List<Number> annotationIDs) { 270 269 if (annotationIDs == null) { 271 loggerAnnotationDao.debug("annotationIDs: "+nullArgument);270 loggerAnnotationDao.debug("annotationIDs: " + nullArgument); 272 271 return null; 273 272 } … … 292 291 public Annotation getAnnotationWithoutTargetsAndPermissions(Number annotationID) { 293 292 if (annotationID == null) { 294 loggerAnnotationDao.debug("annotationID: " +nullArgument);293 loggerAnnotationDao.debug("annotationID: " + nullArgument); 295 294 return null; 296 295 } … … 327 326 } 328 327 }; 329 330 @Override 331 public Number getOwner(Number annotationID){332 if (annotationID == null) { 333 loggerAnnotationDao.debug("annotationID: " +nullArgument);328 329 @Override 330 public Number getOwner(Number annotationID) { 331 if (annotationID == null) { 332 loggerAnnotationDao.debug("annotationID: " + nullArgument); 334 333 return null; 335 334 } … … 341 340 return (respond.isEmpty() ? null : respond.get(0)); 342 341 } 343 342 344 343 ///////////////////////////// 345 344 @Override … … 415 414 416 415 if (annotationID == null) { 417 loggerAnnotationDao.debug("annotationID: " +nullArgument);418 return 0; 419 } 420 416 loggerAnnotationDao.debug("annotationID: " + nullArgument); 417 return 0; 418 } 419 421 420 if (userID == null) { 422 loggerAnnotationDao.debug("userID: " +nullArgument);423 return 0; 424 } 425 426 427 loggerAnnotationDao.debug("permission: " +nullArgument);428 return 0; 429 } 430 421 loggerAnnotationDao.debug("userID: " + nullArgument); 422 return 0; 423 } 424 425 if (permission == null) { 426 loggerAnnotationDao.debug("permission: " + nullArgument); 427 return 0; 428 } 429 431 430 Map<String, Object> params = new HashMap<String, Object>(); 432 431 … … 443 442 return getSimpleJdbcTemplate().update(sql.toString(), params); 444 443 } else { 445 StringBuilder sql = new StringBuilder("DELETE FROM ");446 sql.append(permissionsTableName).append(" WHERE ").append(annotation_id).append("= :annotationID").444 StringBuilder sql = new StringBuilder("DELETE FROM "); 445 sql.append(permissionsTableName).append(" WHERE ").append(annotation_id).append("= :annotationID"). 447 446 append(" AND ").append(principal_id).append("= :principalID"); 448 return (getSimpleJdbcTemplate().update(sql.toString(), params));447 return (getSimpleJdbcTemplate().update(sql.toString(), params)); 449 448 } 450 449 … … 456 455 457 456 String[] body = retrieveBodyComponents(annotation.getBody()); 458 457 459 458 if (annotation == null) { 460 loggerAnnotationDao.debug("annotation: " +nullArgument);459 loggerAnnotationDao.debug("annotation: " + nullArgument); 461 460 return 0; 462 461 } … … 482 481 @Override 483 482 public int addAnnotationTarget(Number annotationID, Number targetID) { 484 485 if (annotationID == null) { 486 loggerAnnotationDao.debug("annotationID: " +nullArgument);487 return 0; 488 } 489 483 484 if (annotationID == null) { 485 loggerAnnotationDao.debug("annotationID: " + nullArgument); 486 return 0; 487 } 488 490 489 if (targetID == null) { 491 loggerAnnotationDao.debug("targetID: " +nullArgument);492 return 0; 493 } 494 490 loggerAnnotationDao.debug("targetID: " + nullArgument); 491 return 0; 492 } 493 495 494 Map<String, Object> paramsAnnotationsTargets = new HashMap<String, Object>(); 496 495 paramsAnnotationsTargets.put("annotationId", annotationID); … … 504 503 @Override 505 504 public int addAnnotationPrincipalPermission(Number annotationID, Number userID, Permission permission) { 506 507 508 loggerAnnotationDao.debug("annotationID: " +nullArgument);509 return 0; 510 } 511 505 506 if (annotationID == null) { 507 loggerAnnotationDao.debug("annotationID: " + nullArgument); 508 return 0; 509 } 510 512 511 if (userID == null) { 513 loggerAnnotationDao.debug("userID: " +nullArgument);514 return 0; 515 } 516 517 518 loggerAnnotationDao.debug("permission: " +nullArgument);519 return 0; 520 } 521 522 512 loggerAnnotationDao.debug("userID: " + nullArgument); 513 return 0; 514 } 515 516 if (permission == null) { 517 loggerAnnotationDao.debug("permission: " + nullArgument); 518 return 0; 519 } 520 521 523 522 Map<String, Object> paramsPermissions = new HashMap<String, Object>(); 524 523 paramsPermissions.put("annotationId", annotationID); … … 543 542 return (getSimpleJdbcTemplate().update(sqlAnnotation.toString(), annotationID)); 544 543 } else { 545 loggerAnnotationDao.debug("annotationID: " +nullArgument);544 loggerAnnotationDao.debug("annotationID: " + nullArgument); 546 545 return 0; 547 546 } … … 555 554 return getSimpleJdbcTemplate().update(sqlTargetTargets.toString(), annotationID); // # removed "annotations_target_Targets" rows 556 555 } else { 557 loggerAnnotationDao.debug("annotationID: " +nullArgument);556 loggerAnnotationDao.debug("annotationID: " + nullArgument); 558 557 return 0; 559 558 } … … 568 567 return getSimpleJdbcTemplate().update(sqlPermissions.toString(), annotationID); // removed "permission" rows 569 568 } else { 570 loggerAnnotationDao.debug("annotationID: "+nullArgument); 569 loggerAnnotationDao.debug("annotationID: " + nullArgument); 570 return 0; 571 } 572 573 } 574 575 ////////////////////////////////////////////////////// 576 @Override 577 public int deleteAnnotationPrincipalPermission(Number annotationID, Number userID) { 578 if (annotationID != null) { 579 if (userID != null) { 580 Map<String, Number> params = new HashMap(); 581 params.put("annotationId", annotationID); 582 params.put("userId", userID); 583 StringBuilder sqlPermissions = new StringBuilder("DELETE FROM "); 584 sqlPermissions.append(permissionsTableName).append(" WHERE ").append(annotation_id).append(" = :annotationId AND "). 585 append(principal_id).append(" = :userId"); 586 return getSimpleJdbcTemplate().update(sqlPermissions.toString(), params); 587 } else { 588 loggerAnnotationDao.debug("userID: " + nullArgument); 589 return 0; 590 } 591 } else { 592 loggerAnnotationDao.debug("annotationID: " + nullArgument); 571 593 return 0; 572 594 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcResourceDao.java
r4281 r4396 141 141 String externalID = stringURItoExternalID(uri); 142 142 try { 143 return getInternalID(UUID.fromString(externalID)); 143 UUID externalUUID = UUID.fromString(externalID); 144 return getInternalID(externalUUID); 144 145 } catch (IllegalArgumentException e) { 145 _logger.debug( "Got a non valid external ID (not an UUID) " + externalID + " from uri " + uri);146 _logger.debug(externalID + " is not a valid <uuid>. Therefore, I expect that it is a temporary idendifier of a new resource that is not yet in the database and return null."); 146 147 return null; 147 148 } … … 237 238 @Override 238 239 public String stringURItoExternalID(String stringURI) { 239 return stringURI.substring(_serviceURI.length()); 240 if (stringURI.length() > _serviceURI.length()) { 241 return stringURI.substring(_serviceURI.length()); 242 } else { 243 logger.debug(stringURI + " does not have the form <service url>/<isentifier>, therefore I return the input value."); 244 return stringURI; 245 } 240 246 } 241 247 -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/rest/AnnotationResource.java
r4301 r4396 512 512 } 513 513 } 514 515 @DELETE 516 @Produces(MediaType.TEXT_PLAIN) 517 @Path("{annotationId: " + BackendConstants.regExpIdentifier + "}/user/{userId}/delete") 518 public String deleteUsersPermission(@PathParam("annotationId") String annotationId, @PathParam("userId") String userId) throws IOException { 519 dbIntegrityService.setServiceURI(uriInfo.getBaseUri().toString()); 520 int deletedRows = 0; 521 try { 522 final Number annotationID = dbIntegrityService.getAnnotationInternalIdentifier(UUID.fromString(annotationId)); 523 String remoteUser = httpServletRequest.getRemoteUser(); 524 Number remoteUserID = dbIntegrityService.getUserInternalIDFromRemoteID(remoteUser); 525 if (remoteUserID != null) { 526 if (annotationID != null) { 527 if (isOwner(remoteUserID, annotationID)) { 528 Number userID = dbIntegrityService.getUserInternalIdentifier(UUID.fromString(userId)); 529 if (userID != null) { 530 deletedRows = dbIntegrityService.updateAnnotationPrincipalPermission(annotationID, userID, null); 531 532 } else { 533 loggerServer.debug(httpServletResponse.SC_NOT_FOUND + ": the user external identifier " + userId + " is not found the the databse."); 534 httpServletResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The user external identifier " + userId + " is not found the the databse."); 535 536 } 537 } else { 538 loggerServer.debug(httpServletResponse.SC_UNAUTHORIZED + "The logged-in user cannot change the access rights on this annotation because (s)he is not its owner."); 539 httpServletResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED, "The logged-in user cannot change the access rights on this annotation because (s)he is not its owner."); 540 541 } 542 } else { 543 loggerServer.debug(HttpServletResponse.SC_NOT_FOUND + ": The annotation with the given id " + annotationId + " is not found in the database"); 544 httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND, "The annotation with the given id " + annotationId + " is not found in the database."); 545 546 } 547 } else { 548 loggerServer.debug(httpServletResponse.SC_NOT_FOUND + ": the logged-in user is not found in the database"); 549 httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND, "The logged-in user is not found in the database."); 550 551 } 552 } catch (IllegalArgumentException e) { 553 loggerServer.debug(HttpServletResponse.SC_BAD_REQUEST + ": Illegal argument UUID " + annotationId); 554 httpServletResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "Illegal argument UUID " + annotationId); 555 556 } 557 return (deletedRows + " is deleted."); 558 } 514 559 ///////////////////////////////////////// 515 560
Note: See TracChangeset
for help on using the changeset viewer.