/** * @return id of deleted document. id is unique only for this document. */ public long getId() { return this.deletedDoc.getId(); }
@Override public List<Long> getDeletedDocumentIds(String batchId) { XWikiContext context = this.xcontextProvider.get(); XWiki xwiki = context.getWiki(); List<Long> result = new ArrayList<>(); try { XWikiDeletedDocument[] deletedDocuments = xwiki.getRecycleBinStore().getAllDeletedDocuments(batchId, false, context, true); for (XWikiDeletedDocument deletedDocument : deletedDocuments) { result.add(deletedDocument.getId()); } } catch (Exception e) { logger.error("Failed to get deleted document IDs for batch [{}]", batchId); } return result; }
protected boolean canRestoreDeletedDocument(XWikiDeletedDocument deletedDocument, DocumentReference userReference) { boolean result = false; XWikiContext context = this.xcontextProvider.get(); // Remember the context user. DocumentReference currentUserReference = context.getUserReference(); try { // Reuse the DeletedDocument API to check rights. DeletedDocument deletedDocumentApi = new DeletedDocument(deletedDocument, context); // Note: DeletedDocument API works with the current context user. context.setUserReference(userReference); result = deletedDocumentApi.canUndelete(); } catch (Exception e) { logger.error("Failed to check restore rights on deleted document [{}] for user [{}]", deletedDocument.getId(), userReference, e); } finally { // Restore the context user; context.setUserReference(currentUserReference); } return result; }
protected boolean canPermanentlyDeleteDocument(XWikiDeletedDocument deletedDocument, DocumentReference userReference) { boolean result = false; XWikiContext context = this.xcontextProvider.get(); XWiki xwiki = context.getWiki(); // Remember the context user. DocumentReference currentUserReference = context.getUserReference(); try { // Reuse the DeletedDocument API to check rights. DeletedDocument deletedDocumentApi = new DeletedDocument(deletedDocument, context); // Note: DeletedDocument API works with the current context user. context.setUserReference(userReference); result = deletedDocumentApi.canDelete(); } catch (Exception e) { logger.error("Failed to check delete rights on deleted document [{}] for user [{}]", deletedDocument.getId(), userReference, e); } finally { // Restore the context user; context.setUserReference(currentUserReference); } return result; }
} else { xwiki.restoreFromRecycleBin(deletedDocument.getId(), "Restored from recycle bin", context);