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/13 22:54:04 UTC
svn commit: r393931 - in
/incubator/roller/branches/roller-newbackend/src/org/roller:
business/hibernate/HibernateUserManagerImpl.java model/UserManager.java
Author: agilliland
Date: Thu Apr 13 13:54:02 2006
New Revision: 393931
URL: http://svn.apache.org/viewcvs?rev=393931&view=rev
Log:
adding new methods for bulk user/weblog/permissions operations.
Modified:
incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java
incubator/roller/branches/roller-newbackend/src/org/roller/model/UserManager.java
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java?rev=393931&r1=393930&r2=393931&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateUserManagerImpl.java Thu Apr 13 13:54:02 2006
@@ -4,6 +4,7 @@
package org.roller.business.hibernate;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
@@ -59,7 +60,7 @@
}
- /**
+ /**
* @see org.roller.model.UserManager#storeWebsite(org.roller.pojos.WebsiteData)
*/
public void storeWebsite(WebsiteData data) throws RollerException {
@@ -67,6 +68,11 @@
}
+ public void storeWebsites(Collection weblogs) throws RollerException {
+ this.strategy.storeAndCommit(weblogs);
+ }
+
+
public void removeWebsite(String id) throws RollerException {
try {
@@ -82,11 +88,11 @@
// commit changes
this.strategy.getSession().getTransaction().commit();
- } catch (Exception ex) {
+ } catch (Throwable ex) {
try {
this.strategy.getSession().getTransaction().rollback();
- } catch(HibernateException he) {
+ } catch(Throwable he) {
log.error("Error doing rollback", he);
}
@@ -109,11 +115,11 @@
// commit changes
this.strategy.getSession().getTransaction().commit();
- } catch (Exception ex) {
+ } catch (Throwable ex) {
try {
this.strategy.getSession().getTransaction().rollback();
- } catch(HibernateException he) {
+ } catch(Throwable he) {
log.error("Error doing rollback", he);
}
@@ -217,6 +223,14 @@
}
+ /**
+ * Store a collection of users in a single transaction.
+ */
+ public void storeUsers(Collection users) throws RollerException {
+ this.strategy.storeAndCommit(users);
+ }
+
+
public void removeUser(UserData user) throws RollerException {
this.strategy.removeAndCommit(user);
}
@@ -232,6 +246,11 @@
}
+ public void storePermissions(Collection permissions) throws RollerException {
+ this.strategy.storeAndCommit(permissions);
+ }
+
+
public void removePermissions(PermissionsData perms) throws RollerException {
this.strategy.removeAndCommit(perms);
}
@@ -250,23 +269,28 @@
}
- /**
- * Add a new Roller user.
- *
- * TODO BACKEND: do we really need this method? probably better if roles are added
- * elsewhere and then we just use storeUser().
- */
public void addUser(UserData ud) throws RollerException {
- if(getUser(ud.getUserName()) != null ||
- getUser(ud.getUserName().toLowerCase()) != null) {
- throw new RollerException("error.add.user.userNameInUse");
- }
+ if(ud == null)
+ throw new RollerException("cannot add null user");
+
+ // simplification, just add user to a collection and reuse the method
+ Collection userList = new ArrayList();
+ userList.add(ud);
+
+ this.addUsers(userList);
+ }
+
+
+ public void addUsers(Collection users) throws RollerException {
+
+ if(users == null || users.size() < 1)
+ throw new RollerException("no users to add");
// TODO BACKEND: we must do this in a better fashion, like getUserCnt()?
boolean adminUser = false;
- List users = this.getUsers();
- if (users.size() == 0) {
+ List existingUsers = this.getUsers();
+ if(existingUsers.size() == 0) {
// Make first user an admin
adminUser = true;
}
@@ -275,25 +299,31 @@
// begin transaction
this.strategy.getSession().beginTransaction();
- // add user
- this.strategy.store(ud);
-
- // and roles
- RoleData editorRole = new RoleData(null, ud, "editor");
- this.strategy.store(editorRole);
-
- if (adminUser) {
- RoleData adminRole = new RoleData(null, ud, "admin");
- this.strategy.store(adminRole);
+ UserData newUser = null;
+ Iterator items = users.iterator();
+ while(items.hasNext()) {
+ newUser = (UserData) items.next();
+
+ if(getUser(newUser.getUserName()) != null ||
+ getUser(newUser.getUserName().toLowerCase()) != null) {
+ throw new RollerException("error.add.user.userNameInUse");
+ }
+
+ newUser.grantRole("editor");
+ if(adminUser) {
+ newUser.grantRole("admin");
+ }
+
+ this.strategy.store(newUser);
}
// commit changes
this.strategy.getSession().getTransaction().commit();
- } catch (HibernateException ex) {
+ } catch (Throwable ex) {
try {
this.strategy.getSession().getTransaction().rollback();
- } catch(HibernateException he) {
+ } catch(Throwable he) {
log.error("Error doing rollback", he);
}
@@ -301,91 +331,33 @@
throw new RollerException(ex);
}
-
}
- public void createWebsite(WebsiteData newWebsite) throws RollerException {
-
- UserManager umgr = RollerFactory.getRoller().getUserManager();
- WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
+ public void addWebsites(Collection weblogs) throws RollerException {
try {
// begin transaction
this.strategy.getSession().beginTransaction();
- // store the new weblog
- this.strategy.store(newWebsite);
-
- // grant weblog creator ADMIN permissions
- PermissionsData perms = new PermissionsData();
- perms.setUser(newWebsite.getCreator());
- perms.setWebsite(newWebsite);
- perms.setPending(false);
- perms.setPermissionMask(PermissionsData.ADMIN);
- this.strategy.store(perms);
-
- // add default categories
- WeblogCategoryData rootCat = wmgr.createWeblogCategory(
- newWebsite, // newWebsite
- null, // parent
- "root", // name
- "root", // description
- null ); // image
- this.strategy.store(rootCat);
-
- String cats = RollerConfig.getProperty("newuser.categories");
- if (cats != null) {
- String[] splitcats = cats.split(",");
- for (int i=0; i<splitcats.length; i++) {
- WeblogCategoryData c = wmgr.createWeblogCategory(
- newWebsite, // newWebsite
- rootCat, // parent
- splitcats[i], // name
- splitcats[i], // description
- null ); // image
- this.strategy.store(c);
- }
- }
- newWebsite.setBloggerCategory(rootCat);
- newWebsite.setDefaultCategory(rootCat);
- this.strategy.store(newWebsite);
-
- // add default bookmarks
- BookmarkManager bmgr = RollerFactory.getRoller().getBookmarkManager();
- FolderData root = bmgr.createFolder(
- null, "root", "root", newWebsite);
- this.strategy.store(root);
-
- Integer zero = new Integer(0);
- String blogroll = RollerConfig.getProperty("newuser.blogroll");
- if (blogroll != null) {
- String[] splitroll = blogroll.split(",");
- for (int i=0; i<splitroll.length; i++) {
- String[] rollitems = splitroll[i].split("\\|");
- if (rollitems != null && rollitems.length > 1) {
- BookmarkData b = bmgr.createBookmark(
- root, // parent
- rollitems[0], // name
- "", // description
- rollitems[1].trim(), // url
- null, // feedurl
- zero, // weight
- zero, // priority
- null); // image
- this.strategy.store(b);
- }
- }
+ // store the new weblogs
+ WebsiteData newWeblog = null;
+ Iterator items = weblogs.iterator();
+ while(items.hasNext()) {
+ newWeblog = (WebsiteData) items.next();
+
+ this.strategy.store(newWeblog);
+ this.addWeblogContents(newWeblog);
}
// commit changes
this.strategy.getSession().getTransaction().commit();
- } catch (HibernateException ex) {
-
+ } catch (Throwable ex) {
+
try {
this.strategy.getSession().getTransaction().rollback();
- } catch(HibernateException he) {
+ } catch(Throwable he) {
log.error("Error doing rollback", he);
}
@@ -393,6 +365,85 @@
throw new RollerException(ex);
}
+ }
+
+
+ public void createWebsite(WebsiteData newWeblog) throws RollerException {
+
+ // simplification, just use addWebsites(collection)
+ Collection newWeblogs = new ArrayList();
+ newWeblogs.add(newWeblog);
+
+ this.addWebsites(newWeblogs);
+ }
+
+
+ private void addWeblogContents(WebsiteData newWeblog) throws Exception {
+
+ UserManager umgr = RollerFactory.getRoller().getUserManager();
+ WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
+
+ // grant weblog creator ADMIN permissions
+ PermissionsData perms = new PermissionsData();
+ perms.setUser(newWeblog.getCreator());
+ perms.setWebsite(newWeblog);
+ perms.setPending(false);
+ perms.setPermissionMask(PermissionsData.ADMIN);
+ this.strategy.store(perms);
+
+ // add default categories
+ WeblogCategoryData rootCat = wmgr.createWeblogCategory(
+ newWeblog, // newWeblog
+ null, // parent
+ "root", // name
+ "root", // description
+ null ); // image
+ this.strategy.store(rootCat);
+
+ String cats = RollerConfig.getProperty("newuser.categories");
+ if (cats != null) {
+ String[] splitcats = cats.split(",");
+ for (int i=0; i<splitcats.length; i++) {
+ WeblogCategoryData c = wmgr.createWeblogCategory(
+ newWeblog, // newWeblog
+ rootCat, // parent
+ splitcats[i], // name
+ splitcats[i], // description
+ null ); // image
+ this.strategy.store(c);
+ }
+ }
+ newWeblog.setBloggerCategory(rootCat);
+ newWeblog.setDefaultCategory(rootCat);
+ this.strategy.store(newWeblog);
+
+ // add default bookmarks
+ BookmarkManager bmgr = RollerFactory.getRoller().getBookmarkManager();
+ FolderData root = bmgr.createFolder(
+ null, "root", "root", newWeblog);
+ this.strategy.store(root);
+
+ Integer zero = new Integer(0);
+ String blogroll = RollerConfig.getProperty("newuser.blogroll");
+ if (blogroll != null) {
+ String[] splitroll = blogroll.split(",");
+ for (int i=0; i<splitroll.length; i++) {
+ String[] rollitems = splitroll[i].split("\\|");
+ if (rollitems != null && rollitems.length > 1) {
+ BookmarkData b = bmgr.createBookmark(
+ root, // parent
+ rollitems[0], // name
+ "", // description
+ rollitems[1].trim(), // url
+ null, // feedurl
+ zero, // weight
+ zero, // priority
+ null); // image
+ this.strategy.store(b);
+ }
+ }
+ }
+
}
Modified: incubator/roller/branches/roller-newbackend/src/org/roller/model/UserManager.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/model/UserManager.java?rev=393931&r1=393930&r2=393931&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/model/UserManager.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/model/UserManager.java Thu Apr 13 13:54:02 2006
@@ -2,6 +2,7 @@
package org.roller.model;
import java.io.Serializable;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.roller.RollerException;
@@ -28,11 +29,23 @@
/**
- * Store user.
+ * Add a collection of users in a single transaction.
+ */
+ public void addUsers(Collection users) throws RollerException;
+
+
+ /**
+ * Store a single user.
*/
public void storeUser(UserData data) throws RollerException;
+ /**
+ * Store a set of users in a single transaction.
+ */
+ public void storeUsers(Collection users) throws RollerException;
+
+
public void removeUser(UserData user) throws RollerException;
@@ -116,11 +129,23 @@
/**
- * Store website
+ * Add a collection of weblogs in a single transaction.
+ */
+ public void addWebsites(Collection websites) throws RollerException;
+
+
+ /**
+ * Store a single weblog.
*/
public void storeWebsite(WebsiteData data) throws RollerException;
+ /**
+ * Store a collection of weblogs in a single transaction.
+ */
+ public void storeWebsites(Collection weblogs) throws RollerException;
+
+
public void removeWebsite(WebsiteData website) throws RollerException;
@@ -155,6 +180,12 @@
public void storePermissions(PermissionsData perms) throws RollerException;
+
+
+ /**
+ * Store a collection of permissions in a single transaction.
+ */
+ public void storePermissions(Collection permissions) throws RollerException;
public void removePermissions(PermissionsData perms) throws RollerException;