You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2005/08/31 20:46:50 UTC
svn commit: r265546 - in /incubator/roller/branches/roller_2.0: ./
nbproject/ src/org/roller/pojos/ src/org/roller/presentation/tags/menu/
src/org/roller/presentation/website/actions/ tools/buildtime/tomcat-4.1.24/
tools/buildtime/tomcat-5.0.28/ web/WE...
Author: snoopdave
Date: Wed Aug 31 11:46:21 2005
New Revision: 265546
URL: http://svn.apache.org/viewcvs?rev=265546&view=rev
Log:
Global admins can now edit any weblog
Added:
incubator/roller/branches/roller_2.0/tools/buildtime/tomcat-5.0.28/
incubator/roller/branches/roller_2.0/tools/buildtime/tomcat-5.0.28/jsp-api.jar (with props)
incubator/roller/branches/roller_2.0/tools/buildtime/tomcat-5.0.28/servlet-api.jar (with props)
Removed:
incubator/roller/branches/roller_2.0/tools/buildtime/tomcat-4.1.24/
Modified:
incubator/roller/branches/roller_2.0/build.sh
incubator/roller/branches/roller_2.0/nbproject/project.xml
incubator/roller/branches/roller_2.0/properties.xmlf
incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteData.java
incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteObject.java
incubator/roller/branches/roller_2.0/src/org/roller/presentation/tags/menu/BaseRollerMenu.java
incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserAdminAction.java
incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties
incubator/roller/branches/roller_2.0/web/website/UserAdmin.jsp
Modified: incubator/roller/branches/roller_2.0/build.sh
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/build.sh?rev=265546&r1=265545&r2=265546&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/build.sh (original)
+++ incubator/roller/branches/roller_2.0/build.sh Wed Aug 31 11:46:21 2005
@@ -13,4 +13,4 @@
rocp=${rocp}:./tools/buildtime/ant-1.6.2/jakarta-oro-2.0.8.jar
rocp=${rocp}:./tools/buildtime/junit-3.8.1.jar
-${JAVA_HOME}/bin/java -Djava.home=${JAVA_HOME} -classpath ${rocp} org.apache.tools.ant.Main $1 $2 $3 $4 $5
+${JAVA_HOME}/bin/java -Xmx300m -Djava.home=${JAVA_HOME} -classpath ${rocp} org.apache.tools.ant.Main $1 $2 $3 $4 $5
Modified: incubator/roller/branches/roller_2.0/nbproject/project.xml
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/nbproject/project.xml?rev=265546&r1=265545&r2=265546&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/nbproject/project.xml (original)
+++ incubator/roller/branches/roller_2.0/nbproject/project.xml Wed Aug 31 11:46:21 2005
@@ -145,7 +145,7 @@
<package-root>sandbox/standalone/src</package-root>
<package-root>tests</package-root>
<package-root>contrib/plugins/src</package-root>
- <classpath mode="compile">tools/hibernate-2.1/lib/jdom.jar:tools/buildtime/junit-3.8.1.jar:tools/lib/activation.jar:tools/lib/commons-betwixt-1.0-beta-1.jar:tools/lib/commons-codec-1.1.jar:tools/lib/commons-httpclient-2.0.2.jar:tools/lib/concurrent-1.3.2.jar:tools/lib/ekitapplet.jar:tools/lib/jazzy-core.jar:tools/lib/log4j-1.2.4.jar:tools/lib/lucene-1.4.3.jar:tools/lib/mail.jar:tools/lib/mm.mysql-2.0.14-bin.jar:tools/lib/rome-0.6.jar:tools/lib/rome-fetcher-0.6.jar:tools/lib/taglibs-string.jar:tools/lib/velocity-1.4.jar:tools/lib/velocity-dep-1.4.jar:tools/lib/velocity-tools-1.1.jar:tools/lib/xmlrpc-1.2-b1.jar:tools/struts-1.2.4/lib/antlr.jar:tools/struts-1.2.4/lib/commons-beanutils.jar:tools/struts-1.2.4/lib/commons-collections.jar:tools/struts-1.2.4/lib/commons-digester.jar:tools/struts-1.2.4/lib/commons-fileupload.jar:tools/struts-1.2.4/lib/commons-lang-2.0.jar:tools/struts-1.2.4/lib/commons-logging.jar:tools/struts-1.2.4/lib/commons-validator.jar:tools/struts-1.2.4/lib/jakarta-oro.jar:tools/struts-1.2.4/lib/struts-el.jar:tools/struts-1.2.4/lib/struts.jar:tools/hibernate-2.1/hibernate2.jar:tools/hibernate-2.1/lib/c3p0-0.8.4.5.jar:tools/hibernate-2.1/lib/cglib-full-2.0.1.jar:tools/hibernate-2.1/lib/dom4j-1.4.jar:tools/hibernate-2.1/lib/ehcache-0.7.jar:tools/hibernate-2.1/lib/jta.jar:tools/hibernate-2.1/lib/odmg-3.0.jar:tools/hibernate-2.1/lib/proxool-0.8.3.jar:tools/hibernate-2.1/lib/xalan-2.4.0.jar:tools/buildtime/tomcat-4.1.24/servlet-api.jar:tools/buildtime/tomcat-4.1.24/jasper-runtime.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner-servlet.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner-struts.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner.jar:tools/buildtime/mockrunner-0.35/lib/nekohtml.jar:tools/standard-1.0.3/lib/jaxen-full.jar:tools/standard-1.0.3/lib/jstl.jar:tools/standard-1.0.3/lib/standard.jar</classpath>
+ <classpath mode="compile">tools/hibernate-2.1/lib/jdom.jar:tools/buildtime/junit-3.8.1.jar:tools/lib/activation.jar:tools/lib/commons-betwixt-1.0-beta-1.jar:tools/lib/commons-codec-1.1.jar:tools/lib/commons-httpclient-2.0.2.jar:tools/lib/concurrent-1.3.2.jar:tools/lib/ekitapplet.jar:tools/lib/jazzy-core.jar:tools/lib/log4j-1.2.4.jar:tools/lib/lucene-1.4.3.jar:tools/lib/mail.jar:tools/lib/mm.mysql-2.0.14-bin.jar:tools/lib/rome-0.6.jar:tools/lib/rome-fetcher-0.6.jar:tools/lib/taglibs-string.jar:tools/lib/velocity-1.4.jar:tools/lib/velocity-dep-1.4.jar:tools/lib/velocity-tools-1.1.jar:tools/lib/xmlrpc-1.2-b1.jar:tools/struts-1.2.4/lib/antlr.jar:tools/struts-1.2.4/lib/commons-beanutils.jar:tools/struts-1.2.4/lib/commons-collections.jar:tools/struts-1.2.4/lib/commons-digester.jar:tools/struts-1.2.4/lib/commons-fileupload.jar:tools/struts-1.2.4/lib/commons-lang-2.0.jar:tools/struts-1.2.4/lib/commons-logging.jar:tools/struts-1.2.4/lib/commons-validator.jar:tools/struts-1.2.4/lib/jakarta-oro.jar:tools/struts-1.2.4/lib/struts-el.jar:tools/struts-1.2.4/lib/struts.jar:tools/hibernate-2.1/hibernate2.jar:tools/hibernate-2.1/lib/c3p0-0.8.4.5.jar:tools/hibernate-2.1/lib/cglib-full-2.0.1.jar:tools/hibernate-2.1/lib/dom4j-1.4.jar:tools/hibernate-2.1/lib/ehcache-0.7.jar:tools/hibernate-2.1/lib/jta.jar:tools/hibernate-2.1/lib/odmg-3.0.jar:tools/hibernate-2.1/lib/proxool-0.8.3.jar:tools/hibernate-2.1/lib/xalan-2.4.0.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner-servlet.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner-struts.jar:tools/buildtime/mockrunner-0.35/lib/mockrunner.jar:tools/buildtime/mockrunner-0.35/lib/nekohtml.jar:tools/standard-1.0.3/lib/jaxen-full.jar:tools/standard-1.0.3/lib/jstl.jar:tools/standard-1.0.3/lib/standard.jar:tools/buildtime/tomcat-5.0.28/servlet-api.jar:tools/buildtime/tomcat-5.0.28/jsp-api.jar</classpath>
<source-level>1.4</source-level>
</compilation-unit>
</java-data>
Modified: incubator/roller/branches/roller_2.0/properties.xmlf
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/properties.xmlf?rev=265546&r1=265545&r2=265546&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/properties.xmlf (original)
+++ incubator/roller/branches/roller_2.0/properties.xmlf Wed Aug 31 11:46:21 2005
@@ -17,7 +17,7 @@
<property name="tools.hibernate" value="${ro.tools}/hibernate-2.1" />
<property name="tools.jstl" value="${ro.tools}/standard-1.0.3" />
<property name="tools.xdoclet" value="${ro.tools}/buildtime/xdoclet-1.2" />
-<property name="tools.tomcat" value="${ro.tools}/buildtime/tomcat-4.1.24" />
+<property name="tools.tomcat" value="${ro.tools}/buildtime/tomcat-5.0.28" />
<!--
If you would like Ant to copy all the jar files that Resin needs
@@ -74,6 +74,7 @@
<fileset id="servlet.jars" dir="${tools.tomcat}">
<include name="servlet-api.jar"/>
+ <include name="jsp-api.jar"/>
</fileset>
<fileset id="mail.jars" dir="${ro.tools}/lib">
@@ -161,11 +162,10 @@
<include name="*.jar"/>
</fileset>
</path>
+ <fileset refid="servlet.jars"/>
<path location="${ro.tools}/buildtime/ant-1.6.2/ant.jar"/>
<path location="${ro.tools}/buildtime/strutstest-2.0.0.jar"/>
<path location="${ro.tools}/buildtime/hsqldb.jar"/>
- <path location="${ro.tools}/buildtime/tomcat-4.1.24/servlet-api.jar"/>
- <path location="${ro.tools}/buildtime/tomcat-4.1.24/jasper-runtime.jar"/>
<path location="${ro.tools}/lib/mm.mysql-2.0.14-bin.jar"/>
</path>
Modified: incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteData.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteData.java?rev=265546&r1=265545&r2=265546&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteData.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteData.java Wed Aug 31 11:46:21 2005
@@ -961,6 +961,7 @@
*/
public boolean hasUserPermissions(UserData user, short mask)
{
+ // look for user in website's permissions
PermissionsData userPerms = null;
Iterator iter = getPermissions().iterator();
while (iter.hasNext())
@@ -972,6 +973,7 @@
break;
}
}
+ // if we found one, does it satisfy the mask?
if (userPerms != null && !userPerms.isPending())
{
if (userPerms != null && (userPerms.getPermissionMask() & mask) == mask)
@@ -979,6 +981,8 @@
return true;
}
}
+ // otherwise, check to see if user is a global admin
+ if (user != null && user.hasRole("admin")) return true;
return false;
}
Modified: incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteObject.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteObject.java?rev=265546&r1=265545&r2=265546&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteObject.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/pojos/WebsiteObject.java Wed Aug 31 11:46:21 2005
@@ -19,7 +19,7 @@
return true;
}
if (getWebsite().hasUserPermissions(
- roller.getUser(), (short)(PermissionsData.AUTHOR)))
+ roller.getUser(), PermissionsData.AUTHOR))
{
return true;
}
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/tags/menu/BaseRollerMenu.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/tags/menu/BaseRollerMenu.java?rev=265546&r1=265545&r2=265546&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/tags/menu/BaseRollerMenu.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/tags/menu/BaseRollerMenu.java Wed Aug 31 11:46:21 2005
@@ -114,9 +114,11 @@
return false;
}
}
- RollerSession rollerSession = RollerSession.getRollerSession(req);
+ RollerSession rses = RollerSession.getRollerSession(req);
RollerRequest rreq = RollerRequest.getRollerRequest(req);
boolean ret = true;
+
+ if (rses != null && rses.isGlobalAdminUser()) return true;
// next, make sure that users role permits it
if (mRoles != null && mRoles.size() > 0)
@@ -126,10 +128,7 @@
while (roles.hasNext())
{
String role = (String)roles.next();
- if ( req.isUserInRole(role) || role.equals("any")
- || (role.equals("admin")
- && rollerSession != null
- && rollerSession.isGlobalAdminUser()))
+ if (req.isUserInRole(role) || role.equals("any"))
{
ret = true;
break;
@@ -141,7 +140,7 @@
if (ret && mPerms != null && mPerms.size() > 0)
{
UserData user = null;
- if (rollerSession != null) user = rollerSession.getAuthenticatedUser();
+ if (rses != null) user = rses.getAuthenticatedUser();
WebsiteData website = rreq.getWebsite();
BasePageModel pageModel = (BasePageModel)req.getAttribute("model");
@@ -153,8 +152,8 @@
PermissionsData permsData = null;
if (user != null && website != null)
{
- permsData =
- RollerFactory.getRoller().getUserManager().getPermissions(website, user);
+ permsData = RollerFactory.getRoller()
+ .getUserManager().getPermissions(website, user);
}
ret = false;
Iterator perms = mPerms.iterator();
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserAdminAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserAdminAction.java?rev=265546&r1=265545&r2=265546&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserAdminAction.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/website/actions/UserAdminAction.java Wed Aug 31 11:46:21 2005
@@ -3,6 +3,7 @@
import java.io.IOException;
import java.text.MessageFormat;
+import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
@@ -18,6 +19,7 @@
import org.apache.struts.action.ActionMessages;
import org.roller.RollerException;
import org.roller.model.IndexManager;
+import org.roller.model.Roller;
import org.roller.model.RollerFactory;
import org.roller.model.UserManager;
import org.roller.pojos.UserData;
@@ -59,17 +61,16 @@
ActionMessages msgs = new ActionMessages();
try
{
+ UserData user = null;
RollerRequest rreq = RollerRequest.getRollerRequest(request);
RollerSession rollerSession = RollerSession.getRollerSession(request);
if (rollerSession.isGlobalAdminUser() )
{
UserAdminForm userForm = (UserAdminForm)actionForm;
- request.setAttribute("model",
- new UserAdminPageModel(request, response, mapping, userForm));
UserManager mgr = RollerFactory.getRoller().getUserManager();
if (userForm != null && userForm.getUserName() != null)
{
- UserData user = mgr.getUser(userForm.getUserName(), null);
+ user = mgr.getUser(userForm.getUserName(), null);
if (user != null)
{
userForm.copyFrom(user, request.getLocale());
@@ -84,6 +85,8 @@
userForm.setUserName("");
}
}
+ request.setAttribute("model", new UserAdminPageModel(
+ request, response, mapping, userForm, user));
}
else
{
@@ -291,14 +294,23 @@
public class UserAdminPageModel extends BasePageModel
{
private UserAdminForm userAdminForm = null;
+ private List permissions = new ArrayList();
+
public UserAdminPageModel(
HttpServletRequest request,
HttpServletResponse response,
ActionMapping mapping,
- UserAdminForm form)
+ UserAdminForm form,
+ UserData user) throws RollerException
{
super("dummy", request, response, mapping);
userAdminForm = form;
+
+ if (user != null)
+ {
+ Roller roller = RollerFactory.getRoller();
+ permissions = roller.getUserManager().getAllPermissions(user);
+ }
}
public String getTitle()
{
@@ -309,6 +321,14 @@
return MessageFormat.format(
bundle.getString("userAdmin.title.editUser"),
new String[] { userAdminForm.getUserName() } );
+ }
+ public List getPermissions()
+ {
+ return permissions;
+ }
+ public void setPermissions(List permissions)
+ {
+ this.permissions = permissions;
}
}
}
Added: incubator/roller/branches/roller_2.0/tools/buildtime/tomcat-5.0.28/jsp-api.jar
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/tools/buildtime/tomcat-5.0.28/jsp-api.jar?rev=265546&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_2.0/tools/buildtime/tomcat-5.0.28/jsp-api.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/branches/roller_2.0/tools/buildtime/tomcat-5.0.28/servlet-api.jar
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/tools/buildtime/tomcat-5.0.28/servlet-api.jar?rev=265546&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/branches/roller_2.0/tools/buildtime/tomcat-5.0.28/servlet-api.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties?rev=265546&r1=265545&r2=265546&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties (original)
+++ incubator/roller/branches/roller_2.0/web/WEB-INF/classes/ApplicationResources.properties Wed Aug 31 11:46:21 2005
@@ -1050,7 +1050,14 @@
userAdmin.saved=User settings have been saved
userAdmin.title=User Administration
userAdmin.userAdmin=Administrator
-userAdmin.warning=NOTE: This operation cannot be undone !!
+userAdmin.warning=NOTE: This operation cannot be undone!!
+
+userAdmin.userWeblogs=Users Weblogs
+userAdmin.userMemberOf=User is a member of the following weblog(s)
+userAdmin.userHasNoWeblogs=User is a member of no weblogs.
+userAdmin.newEntry=New Entry
+userAdmin.editEntries=Edit Entries
+userAdmin.manage=Manage
userAdmin.tip.fullName=User's full name (with no HTML).
userAdmin.tip.userName=A short one word username for the user account.\
Modified: incubator/roller/branches/roller_2.0/web/website/UserAdmin.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/website/UserAdmin.jsp?rev=265546&r1=265545&r2=265546&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/UserAdmin.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/website/UserAdmin.jsp Wed Aug 31 11:46:21 2005
@@ -140,6 +140,62 @@
</table>
<br />
+
+ <h3><fmt:message key="userAdmin.userWeblogs" /></h3>
+
+ <c:choose>
+ <c:when test="${!empty model.permissions}">
+
+ <p><fmt:message key="userAdmin.userMemberOf" /></p>
+ <table class="rollertable" style="width: 80%">
+ <c:forEach var="perms" items="${model.permissions}">
+ <tr>
+ <td width="%30">
+ <a href='<c:out value="${model.baseURL}" />/page/<c:out value="${perms.website.handle}" />'>
+ <c:out value="${perms.website.name}" /> [<c:out value="${perms.website.handle}" />]
+ </a>
+ </td>
+ <td width="%15">
+ <c:url value="/editor/weblog.do" var="newEntry">
+ <c:param name="method" value="create" />
+ <c:param name="weblog" value="${perms.website.handle}" />
+ </c:url>
+ <img src='<c:url value="/images/New16.gif"/>' />
+ <a href='<c:out value="${newEntry}" />'>
+ <fmt:message key="userAdmin.newEntry" /></a>
+ </td>
+ <td width="%15">
+ <c:url value="/editor/weblogQuery.do" var="editEntries">
+ <c:param name="method" value="query" />
+ <c:param name="weblog" value="${perms.website.handle}" />
+ </c:url>
+ <img src='<c:url value="/images/Edit16.png"/>' />
+ <a href='<c:out value="${editEntries}" />'>
+ <fmt:message key="userAdmin.editEntries" /></a>
+ </td>
+ <td width="%15">
+ <c:url value="/editor/website.do" var="manageWeblog">
+ <c:param name="method" value="edit" />
+ <c:param name="weblog" value="${perms.website.handle}" />
+ </c:url>
+ <img src='<c:url value="/images/Edit16.png"/>' />
+ <a href='<c:out value="${manageWeblog}" />'>
+ <fmt:message key="userAdmin.manage" /></a>
+ </td>
+ </tr>
+ </c:forEach>
+ </table>
+
+ </c:when>
+
+ <c:otherwise>
+ <fmt:message key="userAdmin.userHasNoWeblogs" />
+ </c:otherwise>
+
+ </c:choose>
+
+ <br />
+ <br />
<div class="control">
<input type="submit" value='<fmt:message key="userAdmin.save" />'/></input>