@Override public Map<String, Object> provideMetadata(PrimaryEntity entity) { if (entity instanceof Patient) { Family f = this.familyRepository.getFamilyForPatient((Patient) entity); if (f != null) { return Collections.singletonMap("family", f.getId()); } } return Collections.emptyMap(); } }
@Override public void onEvent(Event event, Object source, Object data) { String patientId = ((PatientRightsUpdatedEvent) event).getPatientId(); this.logger.debug("Updating familypermissions for patient [{}]", patientId); Patient patient = this.patientRepository.get(patientId); if (patient == null) { return; } Family family = this.familyRepository.getFamilyForPatient(patient); if (family == null) { return; } this.familyRepository.updateFamilyPermissions(family); } }
Family family = this.familyRepository.getFamilyForPatient(patient); if (family == null) { continue;
Family family = this.familyRepository.getFamilyForPatient(patient); if (family == null) { continue;
@Override public Family getFamilyForPatient(String patientId) { Patient patient = this.patientRepository.get(patientId); if (patient == null) { return null; } if (!this.authorizationService.hasAccess( this.userManager.getCurrentUser(), Right.VIEW, patient.getDocument())) { return null; } Family family = this.familyRepository.getFamilyForPatient(patient); if (family == null) { return null; } if (!currentUserHasAccessRight(family, Right.VIEW)) { return null; } return family; }
@Override public Family getFamilyForPatient(String patientId) { Patient patient = this.patientRepository.get(patientId); if (patient == null) { return null; } if (!this.authorizationService.hasAccess( this.userManager.getCurrentUser(), Right.VIEW, patient.getDocumentReference())) { return null; } Family family = this.familyRepository.getFamilyForPatient(patient); if (family == null) { return null; } if (!currentUserHasAccessRight(family, Right.VIEW)) { return null; } return family; }
@Override public boolean removeMember(String patientId) { User currentUser = this.userManager.getCurrentUser(); Patient patient = this.patientRepository.get(patientId); if (patient == null) { return false; } if (!this.authorizationService.hasAccess(currentUser, Right.EDIT, patient.getDocumentReference())) { return false; } Family family = this.familyRepository.getFamilyForPatient(patient); if (family == null || !currentUserHasAccessRight(family, Right.EDIT)) { return false; } try { this.familyRepository.removeMember(family, patient, currentUser); } catch (PTException ex) { return false; } return true; }
@Override public boolean removeMember(String patientId) { User currentUser = this.userManager.getCurrentUser(); Patient patient = this.patientRepository.get(patientId); if (patient == null) { return false; } if (!this.authorizationService.hasAccess(currentUser, Right.EDIT, patient.getDocument())) { return false; } Family family = this.familyRepository.getFamilyForPatient(patient); if (family == null || !currentUserHasAccessRight(family, Right.EDIT)) { return false; } try { this.familyRepository.removeMember(family, patient, currentUser); } catch (PTException ex) { return false; } return true; }
Family family = this.familyRepository.getFamilyForPatient(patient); if (family == null) { return null;
Family family = this.familyRepository.getFamilyForPatient(patient); if (family == null) { return null;