cleanup / abuse system fix / prepping for a release
[mir.git] / source / mircoders / servlet / ServletModuleUsers.java
index 5c2d9f8..4d29ed4 100755 (executable)
 
 package mircoders.servlet;
 
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import mir.entity.adapter.EntityAdapterEngine;
 import mir.entity.adapter.EntityAdapterModel;
-import mir.entity.adapter.EntityIteratorAdapter;
 import mir.log.LoggerWrapper;
 import mir.servlet.ServletModule;
 import mir.servlet.ServletModuleExc;
 import mir.servlet.ServletModuleFailure;
 import mir.servlet.ServletModuleUserExc;
-import mir.util.CachingRewindableIterator;
 import mir.util.HTTPRequestParser;
 import mir.util.URLBuilder;
 import mircoders.entity.EntityUsers;
@@ -54,14 +44,13 @@ import mircoders.global.MirGlobal;
 import mircoders.module.ModuleUsers;
 import mircoders.storage.DatabaseUsers;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+
 /**
  *
- * <p>Title: </p>
- * <p>Description: </p>
- * <p>Copyright: Copyright (c) 2003</p>
- * <p>Company: </p>
- * @author not attributable
- * @version 1.0
+ *
  */
 public class ServletModuleUsers extends ServletModule
 {
@@ -74,9 +63,8 @@ public class ServletModuleUsers extends ServletModule
     logger = new LoggerWrapper("ServletModule.Users");
 
     try {
-      model = MirGlobal.localizer().dataModel().adapterModel();
       definition = "user";
-      usersModule = new ModuleUsers(DatabaseUsers.getInstance());
+      usersModule = new ModuleUsers();
       mainModule = usersModule;
     }
     catch (Throwable e) {
@@ -146,8 +134,7 @@ public class ServletModuleUsers extends ServletModule
 
       return newPassword;
     }
-    else
-      return null;
+               return null;
   }
 
   public void insert(HttpServletRequest aRequest, HttpServletResponse aResponse)
@@ -170,7 +157,7 @@ public class ServletModuleUsers extends ServletModule
       logAdminUsage(aRequest, id, "object added");
 
       if (requestParser.hasParameter("returnurl"))
-        redirect(aResponse, requestParser.getParameter("returnurl"));
+        ServletHelper.redirect(aResponse, requestParser.getParameter("returnurl"));
       else
         list(aRequest, aResponse);
     }
@@ -202,7 +189,7 @@ public class ServletModuleUsers extends ServletModule
       logAdminUsage(aRequest, id, "object modified");
 
       if (requestParser.hasParameter("returnurl"))
-        redirect(aResponse, requestParser.getParameter("returnurl"));
+        ServletHelper.redirect(aResponse, requestParser.getParameter("returnurl"));
       else
         list(aRequest, aResponse);
     }
@@ -221,7 +208,7 @@ public class ServletModuleUsers extends ServletModule
 
       String newPassword=validatePassword(ServletHelper.getUser(aRequest), requestParser);
       if (newPassword!=null) {
-        user.setValueForProperty("password", MirGlobal.localizer().adminInterface().makePasswordDigest(newPassword));
+        user.setFieldValue("password", MirGlobal.localizer().adminInterface().makePasswordDigest(newPassword));
         user.update();
 
         logAdminUsage(aRequest, id, "password changed");
@@ -231,9 +218,9 @@ public class ServletModuleUsers extends ServletModule
       }
 
       if (requestParser.hasParameter("returnurl"))
-        redirect(aResponse, requestParser.getParameter("returnurl"));
+        ServletHelper.redirect(aResponse, requestParser.getParameter("returnurl"));
       else
-        redirect(aResponse, "");
+        ServletHelper.redirect(aResponse, "");
     }
     catch (Throwable e) {
       throw new ServletModuleFailure(e);
@@ -254,28 +241,17 @@ public class ServletModuleUsers extends ServletModule
        HttpServletResponse aResponse,
        int anOffset) throws ServletModuleExc {
 
-// ML: to be deleted, support for 3 extra vars to be added
-
-    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
     URLBuilder urlBuilder = new URLBuilder();
-    EntityAdapterModel model;
-    int count;
 
     try {
       Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)});
-      model = MirGlobal.localizer().dataModel().adapterModel();
 
-      Object userList =
-          new CachingRewindableIterator(
-            new EntityIteratorAdapter( "", "login", nrEntitiesPerListPage,
-               MirGlobal.localizer().dataModel().adapterModel(), "user", nrEntitiesPerListPage, anOffset)
-      );
+      List list =
+         EntityAdapterEngine.retrieveAdapterList(model, definition, "", "login", nrEntitiesPerListPage, anOffset);
 
       responseData.put("nexturl", null);
       responseData.put("prevurl", null);
 
-      count=mainModule.getSize("");
-
       urlBuilder.setValue("module", "Users");
       urlBuilder.setValue("do", "list");
 
@@ -283,7 +259,7 @@ public class ServletModuleUsers extends ServletModule
       responseData.put("offset" , new Integer(anOffset).toString());
       responseData.put("thisurl" , urlBuilder.getQuery());
 
-      if (count>=anOffset+nrEntitiesPerListPage) {
+      if (list.size()>=nrEntitiesPerListPage) {
         urlBuilder.setValue("offset", (anOffset + nrEntitiesPerListPage));
         responseData.put("nexturl" , urlBuilder.getQuery());
       }
@@ -293,14 +269,13 @@ public class ServletModuleUsers extends ServletModule
         responseData.put("prevurl" , urlBuilder.getQuery());
       }
 
-      responseData.put("users", userList);
+      responseData.put("users", list);
       responseData.put("mayDeleteUsers", new Boolean(MirGlobal.accessControl().user().mayDeleteUsers(ServletHelper.getUser(aRequest))));
       responseData.put("mayAddUsers", new Boolean(MirGlobal.accessControl().user().mayAddUsers(ServletHelper.getUser(aRequest))));
       responseData.put("mayEditUsers", new Boolean(MirGlobal.accessControl().user().mayEditUsers(ServletHelper.getUser(aRequest))));
 
       responseData.put("from" , Integer.toString(anOffset+1));
-      responseData.put("count", Integer.toString(count));
-      responseData.put("to", Integer.toString(Math.min(anOffset+nrEntitiesPerListPage, count)));
+      responseData.put("to", Integer.toString(anOffset+list.size()));
       responseData.put("offset" , Integer.toString(anOffset));
 
       ServletHelper.generateResponse(aResponse.getWriter(), responseData, listGenerator);
@@ -316,7 +291,7 @@ public class ServletModuleUsers extends ServletModule
       HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
       Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)});
       EntityAdapterModel model = MirGlobal.localizer().dataModel().adapterModel();
-      Map user;
+      Object user;
       URLBuilder urlBuilder = new URLBuilder();
 
       urlBuilder.setValue("module", "Users");
@@ -332,15 +307,15 @@ public class ServletModuleUsers extends ServletModule
         user = model.makeEntityAdapter("user", mainModule.getById(anId));
       }
       else {
-        List fields = DatabaseUsers.getInstance().getFields();
+        List fields = DatabaseUsers.getInstance().getFieldNames();
         responseData.put("new", Boolean.TRUE);
-        user = new HashMap();
+        Map emptyUser = new HashMap();
         Iterator i = fields.iterator();
         while (i.hasNext()) {
-          user.put(i.next(), null);
+          emptyUser.put(i.next(), null);
         }
 
-        MirGlobal.localizer().adminInterface().initializeArticle(user);
+        user = emptyUser;
       }
       responseData.put("user", user);
       responseData.put("passwordonly", new Boolean(anOnlyPassword));