@Override public void grantTemporaryOwnership( TrackedEntityInstance entityInstance, Program program, User user, String reason ) { if ( canSkipOwnershipCheck( user, program ) || entityInstance == null ) { return; } if ( user != null && program.isProtected() ) { programTempOwnershipAuditService .addProgramTempOwnershipAudit( new ProgramTempOwnershipAudit( program, entityInstance, reason, user.getUsername() ) ); temporaryTrackerOwnershipCache.put( tempAccessKey( entityInstance.getUid(), program.getUid(), user.getUsername() ), true ); } }