You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2006/04/12 22:42:02 UTC

svn commit: r393602 - in /incubator/roller/branches/roller-newbackend/sandbox: atomadminprotocol/src/org/roller/presentation/atomadminapi/ atomprotocol/src/org/roller/presentation/atomapi/

Author: agilliland
Date: Wed Apr 12 13:42:00 2006
New Revision: 393602

URL: http://svn.apache.org/viewcvs?rev=393602&view=rev
Log:
cleaning up backend calls in Atom and AtomAdmin sandbox code.

NOTE: this hasn't been fully checked, so we still need to build it and test it to verify these changes.


Modified:
    incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/Handler.java
    incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerMemberHandler.java
    incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerUserHandler.java
    incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerWeblogHandler.java
    incubator/roller/branches/roller-newbackend/sandbox/atomprotocol/src/org/roller/presentation/atomapi/RollerAtomHandler.java

Modified: incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/Handler.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/Handler.java?rev=393602&r1=393601&r2=393602&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/Handler.java (original)
+++ incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/Handler.java Wed Apr 12 13:42:00 2006
@@ -139,7 +139,6 @@
                 UserData user = getRoller().getUserManager().getUser(auth.getUserId());
                 if (user != null && user.hasRole("admin") && user.getEnabled().booleanValue()) {
                     // success!
-                    getRoller().setUser(user);
                     username = auth.getUserId();
                 } else {
                     logger.warn("WARN: Is not global admin user: " + user.getUserName());

Modified: incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerMemberHandler.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerMemberHandler.java?rev=393602&r1=393601&r2=393602&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerMemberHandler.java (original)
+++ incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerMemberHandler.java Wed Apr 12 13:42:00 2006
@@ -269,15 +269,12 @@
         try {
             UserManager mgr = getRoller().getUserManager();
             
-            // Need system user to create website
-            getRoller().setUser(UserData.SYSTEM_USER);
-            
+            // TODO BACKEND: new transaction method storePermissions(list)?
             for (int i = 0; i < c.getEntries().length; i++) {
                 MemberEntry entry = (MemberEntry)c.getEntries()[i];
                 PermissionsData pd = toPermissionsData(entry);
-                pd.save();
+                mgr.storePermissions(pd);
             }
-            getRoller().commit();
         } catch (RollerException re) {
             throw new InternalException("ERROR: Could not create members", re);
         }
@@ -319,7 +316,7 @@
     
     private void updateMembers(MemberEntrySet c) throws HandlerException {
         try {
-            getRoller().setUser(UserData.SYSTEM_USER);
+            // TODO BACKEND: new transaction method storePermissions(list)?
             for (int i = 0; i < c.getEntries().length; i++) {
                 MemberEntry entry = (MemberEntry)c.getEntries()[i];
                 PermissionsData pd = getPermissionsData(entry);
@@ -328,7 +325,6 @@
                 }
                 updatePermissionsData(pd, entry);
             }
-            getRoller().commit();
         } catch (RollerException re) {
             throw new InternalException("ERROR: Could not update members", re);
         }
@@ -347,7 +343,9 @@
             WebsiteData wd = getRoller().getUserManager().getWebsiteByHandle(entry.getHandle());
             CacheManager.invalidate(wd);
             
-            pd.save();
+            UserManager mgr = getRoller().getUserManager();
+            mgr.storePermissions(pd);
+            
         } catch (RollerException re) {
             throw new InternalException("ERROR: Could not update permissions data", re);
         }
@@ -365,7 +363,6 @@
         }
         
         try {
-            getRoller().setUser(UserData.SYSTEM_USER);
             PermissionsData pd = getPermissionsData(handle, username);
             PermissionsData[] pds;
             if (pd == null) {
@@ -373,8 +370,8 @@
             }
             pds = new PermissionsData[] { pd };
             
-            pd.remove();
-            getRoller().commit();
+            UserManager mgr = getRoller().getUserManager();
+            mgr.removePermissions(pd);
             
             UserData ud = getRoller().getUserManager().getUser(username);
             CacheManager.invalidate(ud);

Modified: incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerUserHandler.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerUserHandler.java?rev=393602&r1=393601&r2=393602&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerUserHandler.java (original)
+++ incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerUserHandler.java Wed Apr 12 13:42:00 2006
@@ -171,15 +171,12 @@
         try {
             UserManager mgr = getRoller().getUserManager();
             
-            // Need system user to create website
-            getRoller().setUser(UserData.SYSTEM_USER);
-            
+            // TODO BACKEND: new transaction method addUsers(list)?
             for (int i = 0; i < c.getEntries().length; i++) {
                 UserEntry entry = (UserEntry)c.getEntries()[i];
                 UserData user = toUserData(entry);
                 mgr.addUser(user);
             }
-            getRoller().commit();
         } catch (RollerException re) {
             throw new InternalException("ERROR: Could not create users: " + c, re);
         }
@@ -189,9 +186,7 @@
         try {
             UserManager mgr = getRoller().getUserManager();
             
-            // Need system user to create user
-            getRoller().setUser(UserData.SYSTEM_USER);
-            
+            // TODO BACKEND: new transaction method storeUsers(list)?
             for (int i = 0; i < c.getEntries().length; i++) {
                 UserEntry entry = (UserEntry)c.getEntries()[i];
                 UserData ud = mgr.getUser(entry.getName());
@@ -199,9 +194,9 @@
                     throw new NotFoundException("ERROR: Uknown user: " + entry.getName());
                 }
                 updateUserData(ud, entry);
-                ud.save();
+                
+                mgr.storeUser(ud);
             }
-            getRoller().commit();
         } catch (RollerException re) {
             throw new InternalException("ERROR: Could not update users: " + c, re);
         }
@@ -229,7 +224,6 @@
     
     private EntrySet deleteEntry() throws HandlerException {
         try {
-            getRoller().setUser(UserData.SYSTEM_USER);
             UserManager mgr = getRoller().getUserManager();
             UserData ud = mgr.getUser(getUri().getEntryId());
             
@@ -242,8 +236,8 @@
             }
             
             UserData[] uds = new UserData[] { ud };
-            ud.remove();
-            getRoller().commit();
+            mgr.removeUser(ud);
+            
             CacheManager.invalidate(ud);
             
             EntrySet es = toUserEntrySet(uds);

Modified: incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerWeblogHandler.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerWeblogHandler.java?rev=393602&r1=393601&r2=393602&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerWeblogHandler.java (original)
+++ incubator/roller/branches/roller-newbackend/sandbox/atomadminprotocol/src/org/roller/presentation/atomadminapi/RollerWeblogHandler.java Wed Apr 12 13:42:00 2006
@@ -181,17 +181,13 @@
             
             //TODO: group blogging check?
             
-            // Need system user to create website
-            getRoller().setUser(UserData.SYSTEM_USER);
             HashMap pages = null; //getRollerContext().readThemeMacros(form.getTheme());
             
             for (int i = 0; i < c.getEntries().length; i++) {
                 WeblogEntry entry = (WeblogEntry)c.getEntries()[i];
                 UserData user = mgr.getUser(entry.getCreatingUser());
                 WebsiteData wd = mgr.createWebsite(user, pages, entry.getHandle(), entry.getName(), entry.getDescription(), entry.getEmailAddress(), DEFAULT_THEME, entry.getLocale(), entry.getTimezone());
-                wd.save();
             }
-            getRoller().commit();
         } catch (RollerException re) {
             throw new InternalException("ERROR: Could not create weblogs: " + c, re);
         }
@@ -203,10 +199,9 @@
             
             //TODO: group blogging check?
             
-            // Need system user to create website
-            getRoller().setUser(UserData.SYSTEM_USER);
             HashMap pages = null;
             
+            // TODO BACKEND: new transaction method storeWeblogs(list)?
             for (int i = 0; i < c.getEntries().length; i++) {
                 WeblogEntry entry = (WeblogEntry)c.getEntries()[i];
                 WebsiteData wd = mgr.getWebsiteByHandle(entry.getHandle());
@@ -215,7 +210,6 @@
                 }
                 updateWebsiteData(wd, entry);
             }
-            getRoller().commit();
         } catch (RollerException re) {
             throw new InternalException("ERROR: Could not update weblogs: " + c, re);
         }
@@ -239,7 +233,9 @@
         }
         
         try {
-            wd.save();
+            UserManager mgr = getRoller().getUserManager();
+            mgr.storeWebsite(wd);
+            
             CacheManager.invalidate(wd);
         } catch (RollerException re) {
             throw new InternalException("ERROR: Could not update website data", re);
@@ -250,9 +246,6 @@
         try {
             UserManager mgr = getRoller().getUserManager();
             
-            // Need system user to create website
-            getRoller().setUser(UserData.SYSTEM_USER);
-            
             WebsiteData wd = mgr.getWebsiteByHandle(getUri().getEntryId());
             if (wd == null) {
                 throw new NotFoundException("ERROR: Uknown weblog handle: " + getUri().getEntryId());
@@ -261,8 +254,7 @@
             WebsiteData[] wds = new WebsiteData[] { wd };
             EntrySet es = toWeblogEntrySet(wds);
             
-            wd.remove();
-            getRoller().commit();
+            mgr.removeWebsite(wd);
             
             CacheManager.invalidate(wd);
             

Modified: incubator/roller/branches/roller-newbackend/sandbox/atomprotocol/src/org/roller/presentation/atomapi/RollerAtomHandler.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/sandbox/atomprotocol/src/org/roller/presentation/atomapi/RollerAtomHandler.java?rev=393602&r1=393601&r2=393602&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/sandbox/atomprotocol/src/org/roller/presentation/atomapi/RollerAtomHandler.java (original)
+++ incubator/roller/branches/roller-newbackend/sandbox/atomprotocol/src/org/roller/presentation/atomapi/RollerAtomHandler.java Wed Apr 12 13:42:00 2006
@@ -52,6 +52,7 @@
 import javax.activation.FileTypeMap;
 import org.roller.RollerException;
 import org.roller.config.RollerConfig;
+import org.roller.model.WeblogManager;
 import org.roller.presentation.cache.CacheManager;
 
 /**
@@ -82,7 +83,7 @@
     private HttpServletRequest mRequest;
     private Roller             mRoller;
     private RollerContext      mRollerContext;
-    private String             mUsername;
+    private UserData           user;
     private int                mMaxEntries = 20;
     //private MessageDigest    md5Helper = null;
     //private MD5Encoder       md5Encoder = new MD5Encoder();
@@ -104,12 +105,11 @@
         
         // TODO: decide what to do about authentication, is WSSE going to fly?
         //mUsername = authenticateWSSE(request);
-        mUsername = authenticateBASIC(request);
+        String mUsername = authenticateBASIC(request);
         
         if (mUsername != null) {
             try {
-                UserData user = mRoller.getUserManager().getUser(mUsername);
-                mRoller.setUser(user);
+                this.user = mRoller.getUserManager().getUser(mUsername);
             } catch (Exception e) {
                 mLogger.error("ERROR: setting user", e);
             }
@@ -120,7 +120,7 @@
      * Return weblogHandle of authenticated user or null if there is none.
      */
     public String getAuthenticatedUsername() {
-        return mUsername;
+        return this.user.getUserName();
     }
     
     //---------------------------------------------------------------- introspection
@@ -133,7 +133,6 @@
         if (pathInfo.length == 0) {
             String absUrl = mRollerContext.getAbsoluteContextUrl(mRequest);
             AtomService service = new AtomService();
-            UserData user = mRoller.getUserManager().getUser(mUsername);
             List perms = mRoller.getUserManager().getAllPermissions(user);
             if (perms != null) {
                 for (Iterator iter=perms.iterator(); iter.hasNext();) {
@@ -298,13 +297,12 @@
         // authenticated client posted a weblog entry
         String handle = pathInfo[0];
         WebsiteData website = mRoller.getUserManager().getWebsiteByHandle(handle);
-        UserData creator = mRoller.getUserManager().getUser(mUsername);
         if (canEdit(website)) {
             // Save it and commit it
+            WeblogManager mgr = mRoller.getWeblogManager();
             WeblogEntryData rollerEntry = createRollerEntry(website, entry);
-            rollerEntry.setCreator(creator);
-            rollerEntry.save();
-            mRoller.commit();
+            rollerEntry.setCreator(this.user);
+            mgr.storeWeblogEntry(rollerEntry);
             
             // Throttle one entry per second
             // (MySQL timestamp has 1 sec resolution, damnit)
@@ -346,6 +344,8 @@
             WeblogEntryData rollerEntry =
                     mRoller.getWeblogManager().retrieveWeblogEntry(pathInfo[2]);
             if (canEdit(rollerEntry)) {
+                WeblogManager mgr = mRoller.getWeblogManager();
+                
                 WeblogEntryData rawUpdate = createRollerEntry(rollerEntry.getWebsite(), entry);
                 rollerEntry.setPubTime(rawUpdate.getPubTime());
                 rollerEntry.setUpdateTime(rawUpdate.getUpdateTime());
@@ -353,8 +353,8 @@
                 rollerEntry.setStatus(rawUpdate.getStatus());
                 rollerEntry.setCategory(rawUpdate.getCategory());
                 rollerEntry.setTitle(rawUpdate.getTitle());
-                rollerEntry.save();
-                mRoller.commit();
+                
+                mgr.storeWeblogEntry(rollerEntry);
                 
                 CacheManager.invalidate(rollerEntry.getWebsite());
                 if (rollerEntry.isPublished()) {
@@ -376,8 +376,8 @@
             WeblogEntryData rollerEntry =
                     mRoller.getWeblogManager().retrieveWeblogEntry(pathInfo[2]);
             if (canEdit(rollerEntry)) {
-                rollerEntry.remove();
-                mRoller.commit();
+                WeblogManager mgr = mRoller.getWeblogManager();
+                mgr.removeWeblogEntry(rollerEntry);
                 return;
             }
             throw new Exception("ERROR not authorized to delete entry");
@@ -555,7 +555,7 @@
      */
     private boolean canEdit(WeblogEntryData entry) {
         try {
-            return entry.canSave();
+            return entry.hasWritePermissions(this.user);
         } catch (Exception e) {
             mLogger.error("ERROR: checking website.canSave()");
         }
@@ -567,8 +567,7 @@
      */
     private boolean canEdit(WebsiteData website) {
         try {
-            UserData user = mRoller.getUser();
-            return website.hasUserPermissions(user, PermissionsData.AUTHOR);
+            return website.hasUserPermissions(this.user, PermissionsData.AUTHOR);
         } catch (Exception e) {
             mLogger.error("ERROR: checking website.hasUserPermissions()");
         }
@@ -671,9 +670,6 @@
                                         RollerConfig.getProperty("passwds.encryption.algorithm"));
                                 }
                                 valid = user.getPassword().equals(password);
-                                if (valid) {
-                                    RollerFactory.getRoller().setUser(user);
-                                }
                             }
                         }
                     }