details:   /erp/devel/pi/rev/35b0350f4e58
changeset: 10356:35b0350f4e58
user:      Stefan Hühner <stefan.huehner <at> openbravo.com>
date:      Thu Feb 03 12:26:30 2011 +0100
summary:   Use new-style password references even if definition is still 
old-style.
Automatically use new domaintype & UIDefinition when one of the old-style
encryption properties is set on a column.

diffstat:

 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinitionController.java
 |  17 +++++++-
 src/org/openbravo/base/model/Column.hbm.xml                                    
                           |   7 +-
 src/org/openbravo/base/model/Column.java                                       
                           |  11 ++++-
 src/org/openbravo/base/model/Property.java                                     
                           |  22 ++++++++++
 4 files changed, 52 insertions(+), 5 deletions(-)

diffs (142 lines):

diff -r 9d26e80ed49c -r 35b0350f4e58 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinitionController.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinitionController.java
 Thu Feb 03 12:25:05 2011 +0100
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinitionController.java
 Thu Feb 03 12:26:30 2011 +0100
@@ -55,6 +55,9 @@
   public static String INPUTFORMAT_QUALIFIER = "Edition";
   public static String NORMALFORMAT_QUALIFIER = "Inform";
 
+  private static final String EncryptedStringReferenceID = 
"16EC6DF4A59747749FDF256B7FBBB058";
+  private static final String HashedStringReferenecID = 
"C5C21C28B39E4683A91779F16C112E40";
+
   public static UIDefinitionController getInstance() {
     return instance;
   }
@@ -141,12 +144,24 @@
       final OBQuery<Column> columnQry = 
OBDal.getInstance().createQuery(Column.class, "");
       columnQry.setFilterOnActive(false);
       for (Column column : columnQry.list()) {
-        final String referenceId;
+        String referenceId;
         if (column.getReferenceSearchKey() != null) {
           referenceId = (String) DalUtil.getId(column.getReferenceSearchKey());
         } else {
           referenceId = (String) DalUtil.getId(column.getReference());
         }
+
+        // if one of the old hardcoded pwd-column -> move to new-style 
reference
+        // Companion-code in org.openbravo.base.mode.Property (for for 
domaintype)
+        String colReferenceId = (String) DalUtil.getId(column.getReference());
+        if (column.isDisplayEncription() && colReferenceId != 
EncryptedStringReferenceID
+            && colReferenceId != HashedStringReferenecID) {
+          if (column.isDeencryptable()) {
+            referenceId = EncryptedStringReferenceID;
+          } else {
+            referenceId = HashedStringReferenecID;
+          }
+        }
         localUIDefinitionsByColumn.put(column.getId(), 
localCachedDefinitions.get(referenceId));
       }
 
diff -r 9d26e80ed49c -r 35b0350f4e58 src/org/openbravo/base/model/Column.hbm.xml
--- a/src/org/openbravo/base/model/Column.hbm.xml       Thu Feb 03 12:25:05 
2011 +0100
+++ b/src/org/openbravo/base/model/Column.hbm.xml       Thu Feb 03 12:26:30 
2011 +0100
@@ -12,7 +12,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2008-2010 Openbravo SLU 
+ * All portions are Copyright (C) 2008-2011 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -38,7 +38,8 @@
                <property name="updatable" 
type="org.openbravo.base.session.OBYesNoType" column="isupdateable"/>
                <property name="identifier" 
type="org.openbravo.base.session.OBYesNoType" column="isidentifier"/>
                <property name="mandatory" 
type="org.openbravo.base.session.OBYesNoType" column="ismandatory"/>
-    <property name="encrypted" type="org.openbravo.base.session.OBYesNoType" 
column="isencrypted"/>
+               <property name="encrypted" 
type="org.openbravo.base.session.OBYesNoType" column="isencrypted"/>
+               <property name="decryptable" 
type="org.openbravo.base.session.OBYesNoType" column="isdesencryptable"/>
                <property name="valueMin"/>
                <property name="valueMax"/>
                <property name="developmentStatus"/>
@@ -58,4 +59,4 @@
                <property name="updated"/>
                
        </class>
-</hibernate-mapping>
\ No newline at end of file
+</hibernate-mapping>
diff -r 9d26e80ed49c -r 35b0350f4e58 src/org/openbravo/base/model/Column.java
--- a/src/org/openbravo/base/model/Column.java  Thu Feb 03 12:25:05 2011 +0100
+++ b/src/org/openbravo/base/model/Column.java  Thu Feb 03 12:26:30 2011 +0100
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2008-2010 Openbravo SLU 
+ * All portions are Copyright (C) 2008-2011 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -56,6 +56,7 @@
   private boolean parent;
   private boolean mandatory;
   private boolean encrypted;
+  private boolean decryptable;
   private boolean updatable;
   private boolean identifier;
   private String valueMin;
@@ -427,4 +428,12 @@
   public void setEncrypted(boolean encrypted) {
     this.encrypted = encrypted;
   }
+
+  public boolean isDecryptable() {
+    return decryptable;
+  }
+
+  public void setDecryptable(boolean decryptable) {
+    this.decryptable = decryptable;
+  }
 }
diff -r 9d26e80ed49c -r 35b0350f4e58 src/org/openbravo/base/model/Property.java
--- a/src/org/openbravo/base/model/Property.java        Thu Feb 03 12:25:05 
2011 +0100
+++ b/src/org/openbravo/base/model/Property.java        Thu Feb 03 12:26:30 
2011 +0100
@@ -31,7 +31,10 @@
 import org.openbravo.base.model.domaintype.DateDomainType;
 import org.openbravo.base.model.domaintype.DatetimeDomainType;
 import org.openbravo.base.model.domaintype.DomainType;
+import org.openbravo.base.model.domaintype.EncryptedStringDomainType;
+import org.openbravo.base.model.domaintype.HashedStringDomainType;
 import org.openbravo.base.model.domaintype.PrimitiveDomainType;
+import org.openbravo.base.model.domaintype.StringDomainType;
 import org.openbravo.base.util.Check;
 import org.openbravo.base.validation.PropertyValidator;
 import org.openbravo.base.validation.ValidationException;
@@ -116,7 +119,26 @@
     setColumnName(fromColumn.getColumnName());
     setNameOfColumn(fromColumn.getName());
     setColumnId(fromColumn.getId());
+
     setDomainType(fromColumn.getDomainType());
+
+    // if one of the old hardcoded pwd-column -> move to new-style reference
+    // Companion-code in UIDefinitionController (for for UIDefinition)
+    boolean encryptOptionUsed = fromColumn.isEncrypted() || 
fromColumn.isDecryptable();
+    if (encryptOptionUsed && domainType instanceof StringDomainType) {
+      if (fromColumn.isDecryptable()) {
+        final EncryptedStringDomainType newDomainType = new 
EncryptedStringDomainType();
+        newDomainType.setReference(domainType.getReference());
+        newDomainType.setModelProvider(domainType.getModelProvider());
+        this.domainType = newDomainType;
+      } else {
+        final HashedStringDomainType newDomainType = new 
HashedStringDomainType();
+        newDomainType.setReference(domainType.getReference());
+        newDomainType.setModelProvider(domainType.getModelProvider());
+        this.domainType = newDomainType;
+      }
+    }
+
     setEncrypted(fromColumn.isEncrypted());
 
     setDefaultValue(fromColumn.getDefaultValue());

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to