From 7e902857b49ac9fc0bc9dae04adf93720667ee22 Mon Sep 17 00:00:00 2001
From: "Barbara B. Frosik" <bfrosik@aps.anl.gov>
Date: Tue, 30 Jun 2015 21:48:55 +0000
Subject: [PATCH] Fixing bug. The PolicyProperty could not be deleted

---
 .../controllers/CrudEntityController.java     | 99 +++++++++----------
 .../controllers/PolicyPropertyController.java | 12 +--
 .../controllers/UserInfoController.java       |  7 ++
 .../model/beans/PolicyPropertyFacade.java     | 10 +-
 .../dm/portal/model/entities/UserInfo.java    | 11 +++
 .../private/userInfoEditPanelGrid.xhtml       |  4 +-
 6 files changed, 80 insertions(+), 63 deletions(-)

diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java
index aa9b5d95..f4e64d3e 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java
@@ -9,7 +9,6 @@ import gov.anl.aps.dm.portal.utilities.SessionUtility;
 import java.io.Serializable;
 
 import java.util.List;
-import java.util.Map;
 import javax.annotation.PostConstruct;
 import javax.faces.model.DataModel;
 import javax.faces.model.ListDataModel;
@@ -27,13 +26,13 @@ public abstract class CrudEntityController<EntityType extends CloneableEntity, F
 
     private DataModel listDataModel = null;
     private DataTable listDataTable = null;
-    private boolean listDataModelReset = true;
+//    private boolean listDataModelReset = true;
     private List<EntityType> filteredObjectList = null;
 
 
     private DataModel selectDataModel = null;
     private DataTable selectDataTable = null;
-    private boolean selectDataModelReset = false;
+//    private boolean selectDataModelReset = false;
     private List<EntityType> selectedObjectList = null;
 
     
@@ -107,19 +106,19 @@ public abstract class CrudEntityController<EntityType extends CloneableEntity, F
         this.selectDataTable = selectDataTable;
     }
 
-    public boolean isAnyListFilterSet() {
-        if (listDataTable == null) {
-            return false;
-        }
-        Map<String, Object> filterMap = listDataTable.getFilters();
-        for (Object filter : filterMap.values()) {
-            if ((String)filter != null && !((String)filter).isEmpty()) {
-                return true;
-            }
-        }
-        return false;
-    }
-
+//    public boolean isAnyListFilterSet() {
+//        if (listDataTable == null) {
+//            return false;
+//        }
+//        Map<String, Object> filterMap = listDataTable.getFilters();
+//        for (Object filter : filterMap.values()) {
+//            if ((String)filter != null && !((String)filter).isEmpty()) {
+//                return true;
+//            }
+//        }
+//        return false;
+//    }
+//
  
     public String prepareView(EntityType entity) {
         clear();
@@ -141,23 +140,23 @@ public abstract class CrudEntityController<EntityType extends CloneableEntity, F
         return "create?faces-redirect=true";
     }
     
-    public EntityType cloneEntityInstance(EntityType entity) {
-        EntityType clonedEntity;
-        try {
-            clonedEntity = (EntityType) (entity.clone());
-        }
-        catch (CloneNotSupportedException ex) {
-            logger.error("Object cannot be cloned: " + ex);
-            clonedEntity = createEntityInstance();
-        }
-        return clonedEntity;
-    }
-
-    public String prepareClone(EntityType entity) {
-        current = cloneEntityInstance(entity);
-        return "create?faces-redirect=true";
-    }
-
+//    public EntityType cloneEntityInstance(EntityType entity) {
+//        EntityType clonedEntity;
+//        try {
+//            clonedEntity = (EntityType) (entity.clone());
+//        }
+//        catch (CloneNotSupportedException ex) {
+//            logger.error("Object cannot be cloned: " + ex);
+//            clonedEntity = createEntityInstance();
+//        }
+//        return clonedEntity;
+//    }
+//
+//    public String prepareClone(EntityType entity) {
+//        current = cloneEntityInstance(entity);
+//        return "create?faces-redirect=true";
+//    }
+//
     protected void prepareEntityInsert(EntityType entity) throws DmPortalException {
     }
 
@@ -304,7 +303,7 @@ public abstract class CrudEntityController<EntityType extends CloneableEntity, F
     public void resetListDataModel() {
         listDataModel = null;
         listDataTable = null;
-        listDataModelReset = true;
+//        listDataModelReset = true;
         filteredObjectList = null;
         current = null;
     }
@@ -313,7 +312,7 @@ public abstract class CrudEntityController<EntityType extends CloneableEntity, F
         selectDataModel = null;
         selectDataTable = null;
         selectedObjectList = null;
-        selectDataModelReset = true;
+ //       selectDataModelReset = true;
     }
 
     public List<EntityType> getAvailableItems() {
@@ -342,20 +341,20 @@ public abstract class CrudEntityController<EntityType extends CloneableEntity, F
     }
 
 
-    public boolean isListDataModelReset() {
-        if (listDataModelReset) {
-            listDataModelReset = false;
-            return true;
-        }
-        return false;
-    }
-
-    public boolean isSelectDataModelReset() {
-        if (selectDataModelReset) {
-            selectDataModelReset = false;
-            return true;
-        }
-        return false;
-    }
+//    public boolean isListDataModelReset() {
+//        if (listDataModelReset) {
+//            listDataModelReset = false;
+//            return true;
+//        }
+//        return false;
+//    }
+//
+//    public boolean isSelectDataModelReset() {
+//        if (selectDataModelReset) {
+//            selectDataModelReset = false;
+//            return true;
+//        }
+//        return false;
+//    }
 
 }
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java
index 5360a764..5712fe97 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java
@@ -172,12 +172,12 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert
         return "/views/policyType/view?faces-redirect=true";
     }
     
-    @Override
-    public String destroy() {
-        String view = super.destroy();
-        clear();
-        return view;
-    }
+//    @Override
+//    public String destroy() {
+//        String view = super.destroy();
+//        clear();
+//        return view;
+//    }
     
     public PolicyType getPolicyType() {
         return policyType;
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java
index 0272414e..cd52d501 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java
@@ -216,6 +216,13 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF
     public List<UserInfo> getAvailableItems() {
         return super.getAvailableItems();
     }
+    
+    @Override
+    public String prepareCreate() {
+        current = createEntityInstance();
+        current.setIsDmUser(true);
+        return "create?faces-redirect=true";
+    }
 
     @Override
     public String prepareEdit(UserInfo user) {
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/PolicyPropertyFacade.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/PolicyPropertyFacade.java
index 6c054c23..86ed4daa 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/PolicyPropertyFacade.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/PolicyPropertyFacade.java
@@ -28,11 +28,11 @@ public class PolicyPropertyFacade extends AbstractFacade<PolicyProperty>
         return em;
     }
     
-    @Override
-    public void remove(PolicyProperty entity) {
-        Object o = em.merge(entity);
-        em.remove(o);
-    }
+//    @Override
+//    public void remove(PolicyProperty entity) {
+//        Object o = em.merge(entity);
+//        em.remove(o);
+//    }
 
 
     public PolicyPropertyFacade() {
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java
index 57f5ad1e..bbad17b1 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java
@@ -89,6 +89,9 @@ public class UserInfo extends CloneableEntity
     @Size(max = 256)
     @Column(name = "password")
     private String password;
+    @NotNull
+    @Column(name = "is_dm_user")
+    private boolean isDmUser;
     @ManyToMany(mappedBy = "userInfoList")
     private List<RoleType> roleTypeList;
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "userInfo")
@@ -190,6 +193,14 @@ public class UserInfo extends CloneableEntity
         this.password = password;
     }
 
+    public boolean isIsDmUser() {
+        return isDmUser;
+    }
+
+    public void setIsDmUser(boolean isDmUser) {
+        this.isDmUser = isDmUser;
+    }
+
     @XmlTransient
     public List<RoleType> getRoleTypeList() {
         return roleTypeList;
diff --git a/src/java/DmWebPortal/web/views/userInfo/private/userInfoEditPanelGrid.xhtml b/src/java/DmWebPortal/web/views/userInfo/private/userInfoEditPanelGrid.xhtml
index ac51c316..2fb6d2d1 100644
--- a/src/java/DmWebPortal/web/views/userInfo/private/userInfoEditPanelGrid.xhtml
+++ b/src/java/DmWebPortal/web/views/userInfo/private/userInfoEditPanelGrid.xhtml
@@ -33,8 +33,8 @@
         <h:outputLabel for="email" value="Email" styleClass="entityDataLabel"/>
         <h:inputText id="email" value="#{userInfoObject.email}" title="Email" styleClass="entityDataText"/>
 
-        <h:outputLabel for="password" value="Password" styleClass="entityDataLabel"/>
-        <p:password id="password" value="#{userInfoController.passwordEntry}" title="Password" feedback="true" styleClass="entityDataText"/>
+        <h:outputLabel for="password" value="Password" styleClass="entityDataLabel" rendered="#{userInfoObject.isDmUser}"/>
+        <p:password id="password" rendered="#{userInfoObject.isDmUser}" value="#{userInfoController.passwordEntry}" title="Password" feedback="true" styleClass="entityDataText"/>
         
         <h:outputLabel for="globusUsername" value="Globus Username" styleClass="entityDataEmphasizedLabel"/>
         <h:inputText id="globusUsername" value="#{userInfoObject.globusUsername}" title="Globus Username" styleClass="entityDataEmphasizedText"/>
-- 
GitLab