From 874d4f1335dfecc63de4af8409a7151c411cf7db Mon Sep 17 00:00:00 2001 From: Binal Date: Tue, 6 Oct 2020 13:39:09 -0700 Subject: [PATCH 1/3] Merge from onprc19.1 r.63271 --- .../sequenceanalysis/pipeline/IlluminaImportTask.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/IlluminaImportTask.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/IlluminaImportTask.java index 98d0a2fe4..9ac561c2a 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/IlluminaImportTask.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/IlluminaImportTask.java @@ -253,7 +253,14 @@ public RecordedActionSet run() throws PipelineJobException getJob().getLogger().info("Updated readset: " + readsetId); getJob().getLogger().debug("creating readdata"); - Table.insert(getJob().getUser(), readDataTable, rd); + if (rd.getFileId1() == null) + { + getJob().getLogger().warn("no files associated with ReadData, skipping import"); + } + else + { + Table.insert(getJob().getUser(), readDataTable, rd); + } } catch (OptimisticConflictException e) { From dd407c27d29978caff03d63f25104683a2a4df0d Mon Sep 17 00:00:00 2001 From: Binal Date: Thu, 8 Oct 2020 00:20:23 -0700 Subject: [PATCH 2/3] Merge from onprc19.1 r.65678 to 65757 --- .../web/OpenLdapSync/panel/LdapSettingsPanel.js | 4 ++++ .../openldapsync/OpenLdapSyncController.java | 14 ++++++++++++++ .../org/labkey/openldapsync/ldap/LdapEntry.java | 14 ++++++++++++++ .../org/labkey/openldapsync/ldap/LdapSettings.java | 11 +++++++++++ .../labkey/openldapsync/ldap/LdapSyncRunner.java | 11 +++++++++++ 5 files changed, 54 insertions(+) diff --git a/OpenLdapSync/resources/web/OpenLdapSync/panel/LdapSettingsPanel.js b/OpenLdapSync/resources/web/OpenLdapSync/panel/LdapSettingsPanel.js index dce782776..b3ca14d26 100644 --- a/OpenLdapSync/resources/web/OpenLdapSync/panel/LdapSettingsPanel.js +++ b/OpenLdapSync/resources/web/OpenLdapSync/panel/LdapSettingsPanel.js @@ -644,6 +644,10 @@ Ext4.define('OpenLdapSync.panel.LdapSettingsPanel', { helpPopup: 'This should hold the value that uniquely identifies this record on the LDAP server. Usually this would be the login, but it could also be the distinguishing name or objectId', itemId: 'uidFieldMapping', name: 'uidFieldMapping' + },{ + displayName: 'IM', + itemId: 'imFieldMapping', + name: 'imFieldMapping' }]; diff --git a/OpenLdapSync/src/org/labkey/openldapsync/OpenLdapSyncController.java b/OpenLdapSync/src/org/labkey/openldapsync/OpenLdapSyncController.java index 1c9f066e6..a4ba13b03 100644 --- a/OpenLdapSync/src/org/labkey/openldapsync/OpenLdapSyncController.java +++ b/OpenLdapSync/src/org/labkey/openldapsync/OpenLdapSyncController.java @@ -165,6 +165,7 @@ public static class LdapForm { private String _uidFieldMapping; private String _firstNameFieldMapping; private String _lastNameFieldMapping; + private String _imFieldMapping; private String _userDeleteBehavior; private String _groupDeleteBehavior; @@ -399,6 +400,16 @@ public void setLastNameFieldMapping(String lastNameFieldMapping) _lastNameFieldMapping = lastNameFieldMapping; } + public String getImFieldMapping() + { + return _imFieldMapping; + } + + public void setImFieldMapping(String imFieldMapping) + { + _imFieldMapping = imFieldMapping; + } + public String getUserInfoChangedBehavior() { return _userInfoChangedBehavior; @@ -629,6 +640,9 @@ public ApiResponse execute(LdapForm form, BindException errors) if (form.getLastNameFieldMapping() != null) props.put(LdapSettings.LASTNAME_FIELD_PROP, form.getLastNameFieldMapping()); + if (form.getImFieldMapping() != null) + props.put(LdapSettings.IM_FIELD_PROP, form.getImFieldMapping()); + if (form.getEmailFieldMapping() != null) props.put(LdapSettings.EMAIL_FIELD_PROP, form.getEmailFieldMapping()); diff --git a/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapEntry.java b/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapEntry.java index 986282896..12a0c2a0d 100644 --- a/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapEntry.java +++ b/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapEntry.java @@ -113,6 +113,20 @@ public String getUID() return getAttribute(_settings.getUIDMapping()); } + public String getIM() throws LdapInvalidAttributeValueException + { + try + { + Attribute a = _entry.get(_settings.getIMMapping()); + return a == null ? null : a.getString(); + } + catch (LdapInvalidAttributeValueException e) + { + //not sure what's best here + } + return null; + } + protected String getAttribute(String alias) { try diff --git a/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapSettings.java b/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapSettings.java index 73cbd0f1f..535fc59d9 100644 --- a/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapSettings.java +++ b/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapSettings.java @@ -38,6 +38,8 @@ public class LdapSettings public static final String PHONE_FIELD_PROP = "phoneNumberFieldMapping"; public static final String FIRSTNAME_FIELD_PROP = "firstNameFieldMapping"; public static final String LASTNAME_FIELD_PROP = "lastNameFieldMapping"; + public static final String IM_FIELD_PROP = "imFieldMapping"; + public static final String LABKEY_EMAIL_PROP = "labkeyAdminEmail"; @@ -70,6 +72,7 @@ public class LdapSettings public static final String DEFAULT_LAST_NAME_VAL = "sn"; public static final String DEFAULT_FIRST_NAME_VAL = "givenName"; public static final String DEFAULT_PHONE_VAL = "telephoneNumber"; + public static final String DEFAULT_IM_VAL = "im"; public static final String DEFAULT_UID_VAL = "userPrincipalName"; public static final String DEFAULT_USERCLASS_VAL = "user"; public static final String DEFAULT_GROUPCLASS_VAL = "group"; @@ -183,6 +186,9 @@ else if (key.equals(USE_SSL_PROP) && StringUtils.trimToNull(map.get(key)) != nul if (isMissingOrEmpty(ret, FIRSTNAME_FIELD_PROP)) ret.put(FIRSTNAME_FIELD_PROP, DEFAULT_FIRST_NAME_VAL); + if (!ret.containsKey(IM_FIELD_PROP)) + ret.put(IM_FIELD_PROP, DEFAULT_IM_VAL); + if (isMissingOrEmpty(ret, PHONE_FIELD_PROP)) ret.put(PHONE_FIELD_PROP, DEFAULT_PHONE_VAL); @@ -417,6 +423,11 @@ public String getPhoneMapping() return (String)_settings.get(PHONE_FIELD_PROP); } + public String getIMMapping() + { + return (String)_settings.get(IM_FIELD_PROP); + } + public String getUIDMapping() { return (String)_settings.get(UID_FIELD_PROP); diff --git a/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapSyncRunner.java b/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapSyncRunner.java index e20d27c00..f1728323b 100644 --- a/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapSyncRunner.java +++ b/OpenLdapSync/src/org/labkey/openldapsync/ldap/LdapSyncRunner.java @@ -612,6 +612,10 @@ private User createUser(LdapEntry ldapEntry) throws LdapException if (phone != null) newUser.setPhone(phone); + String im = ldapEntry.getIM(); + if (im != null) + newUser.setIM(im); + UserManager.updateUser(_settings.getLabKeyAdminUser(), newUser); return newUser; @@ -664,6 +668,13 @@ private void syncUserAttributes(LdapEntry ldapEntry, User existing) throws LdapE existing.setEmail(email); } + String im = ldapEntry.getIM(); + if (im != null && !im.equals(existing.getIM())) + { + changed = true; + existing.setIM(im); + } + if (changed) { log("Updating user settings: " + existing.getEmail()); From 9464f1f288f24b99feae79dfdc8b8c28bf9fab60 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Tue, 27 Oct 2020 18:55:48 -0700 Subject: [PATCH 3/3] Remove conditional that didn't survive a different merge pathway --- .../sequenceanalysis/pipeline/IlluminaImportTask.java | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/IlluminaImportTask.java b/SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/IlluminaImportTask.java index 9ac561c2a..98d0a2fe4 100644 --- a/SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/IlluminaImportTask.java +++ b/SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/IlluminaImportTask.java @@ -253,14 +253,7 @@ public RecordedActionSet run() throws PipelineJobException getJob().getLogger().info("Updated readset: " + readsetId); getJob().getLogger().debug("creating readdata"); - if (rd.getFileId1() == null) - { - getJob().getLogger().warn("no files associated with ReadData, skipping import"); - } - else - { - Table.insert(getJob().getUser(), readDataTable, rd); - } + Table.insert(getJob().getUser(), readDataTable, rd); } catch (OptimisticConflictException e) {