public static void removeDocumentLocksByUser(String documentId) { try { PessimisticLockService lockService = KRADServiceLocatorWeb.getPessimisticLockService(); List<PessimisticLock> pessimisticLocks = lockService.getPessimisticLocksForDocument(documentId); lockService.releaseAllLocksForUser(pessimisticLocks, getAuthenticatedPerson()); } catch (Exception e) { LOG.error("Exception encountered trying to delete document locks:" + e ); } }
public static String createDocumentLock(String documentId) { PessimisticLockService lockService = KRADServiceLocatorWeb.getPessimisticLockService(); PessimisticLock lock = lockService.generateNewLock(documentId); Long lockLong = lock.getId(); return lockLong.toString(); }
protected void releaseLocks(Document document, String methodToCall) { // first check if the method to call is listed as required lock clearing if (document.getLockClearingMethodNames().contains(methodToCall)) { // find all locks for the current user and remove them getPessimisticLockService().releaseAllLocksForUser(document.getPessimisticLocks(), GlobalVariables.getUserSession().getPerson()); } }
public static Boolean isDocumentLocked(String documentId) { List<PessimisticLock> pessimisticLocks = KRADServiceLocatorWeb.getPessimisticLockService().getPessimisticLocksForDocument(documentId); if (pessimisticLocks.isEmpty()) { return false; } else { return true; } }
/** * This method will verify that the form is representing a {@link PessimisticLock} object and delete it if possible * * @param mapping * @param form * @param request * @param response * @return ActionForward * @throws Exception */ public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { KualiDocumentFormBase kualiDocumentFormBase = (KualiDocumentFormBase) form; if (isFormRepresentingLockObject(kualiDocumentFormBase)) { String idValue = request.getParameter(KRADPropertyConstants.ID); getPessimisticLockService().delete(idValue); return returnToSender(request, mapping, kualiDocumentFormBase); } throw buildAuthorizationException(KRADConstants.DELETE_METHOD, kualiDocumentFormBase.getDocument()); }
@SuppressWarnings("unchecked") protected void populateAuthorizationFields(KualiDocumentFormBase formBase){ super.populateAuthorizationFields(formBase); Document document = formBase.getDocument(); Map editMode = new HashMap(); if (formBase.isFormDocumentInitialized()) { Person user = GlobalVariables.getUserSession().getPerson(); TransactionalDocumentPresentationController documentPresentationController = (TransactionalDocumentPresentationController) getDocumentHelperService().getDocumentPresentationController(document); TransactionalDocumentAuthorizer documentAuthorizer = (TransactionalDocumentAuthorizer) KNSServiceLocator .getDocumentHelperService().getDocumentAuthorizer(document); Set<String> editModes = documentAuthorizer.getEditModes(document, user, documentPresentationController.getEditModes(document)); editMode = this.convertSetToMap(editModes); if (getDataDictionaryService().getDataDictionary().getDocumentEntry(document.getClass().getName()).getUsePessimisticLocking()) { editMode = getPessimisticLockService().establishLocks(document, editMode, user); } } formBase.setEditingMode(editMode); } }
@SuppressWarnings("unchecked") protected void populateAuthorizationFields(KualiDocumentFormBase formBase) { if (formBase.isFormDocumentInitialized()) { Document document = formBase.getDocument(); Person user = GlobalVariables.getUserSession().getPerson(); DocumentPresentationController documentPresentationController = KNSServiceLocator .getDocumentHelperService().getDocumentPresentationController(document); DocumentAuthorizer documentAuthorizer = getDocumentHelperService().getDocumentAuthorizer(document); Set<String> documentActions = documentPresentationController.getDocumentActions(document); documentActions = documentAuthorizer.getDocumentActions(document, user, documentActions); if (getDataDictionaryService().getDataDictionary().getDocumentEntry(document.getClass().getName()).getUsePessimisticLocking()) { documentActions = getPessimisticLockService().getDocumentActions(document, user, documentActions); } //DocumentActionFlags flags = new DocumentActionFlags(); formBase.setDocumentActions(convertSetToMap(documentActions)); } }
public static String getDocumentLockOwner(String documentId) { List<PessimisticLock> pessimisticLocks = KRADServiceLocatorWeb.getPessimisticLockService().getPessimisticLocksForDocument(documentId); if (pessimisticLocks.isEmpty()) { return "NoLockOnDoc"; } else { if (pessimisticLocks.size() == (1)) { PessimisticLock lock = pessimisticLocks.get(0); return lock.getOwnedByUser().getPrincipalName(); } else { return "MoreThanOneLockOnDoc"; } } } }