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