Author: gmazza
Date: Tue Aug 27 19:43:38 2013
New Revision: 1517951
URL: http://svn.apache.org/r1517951
Log:
Fixing members list (showing pending members, removing deleted members, show
proper error message if user already invited) and functionality for limited
blogger (no error messages due to no mail service on document submission,
allows limited to delete his own drafts and pending docs, remove inaccessible
comments and entries tabs), some better named functions in UserManager &
WeblogPermission.orm.xml.
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/UserManager.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/ajax/UserDataServlet.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAdd.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java
roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogPermission.orm.xml
roller/trunk/app/src/main/resources/org/apache/roller/weblogger/ui/struts2/editor/editor-menu.xml
roller/trunk/app/src/main/resources/struts.xml
roller/trunk/app/src/main/webapp/WEB-INF/jsps/core/MainMenu.jsp
roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/EntryAdd.jsp
roller/trunk/app/src/main/webapp/WEB-INF/tiles.xml
roller/trunk/app/src/main/webapp/themes/frontpage/_header.vm
roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/PermissionTest.java
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/UserManager.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/UserManager.java?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/UserManager.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/UserManager.java
Tue Aug 27 19:43:38 2013
@@ -116,7 +116,6 @@ public interface UserManager {
* to users created within a certain date range, and the results can be
* confined to a certain offset & length for paging abilities.
*
- * @param weblog Confine results to users with permission to a certain
weblog.
* @param enabled True for enabled only, False for disabled only (or null
for all)
* @param startDate Restrict to those created after startDate (or null for
all)
* @param endDate Restrict to those created before startDate (or null for
all)
@@ -187,8 +186,8 @@ public interface UserManager {
/**
- * Get user atribute value
- * @param user User
+ * Get user attribute value
+ * @param userName User
* @param attribute Atribute name
* @return List of user attributes
*/
@@ -197,7 +196,7 @@ public interface UserManager {
/**
* Set user atribute value
- * @param user User
+ * @param userName User
* @param attribute Atribute name
* @param value Atribute value
* @throws org.apache.roller.weblogger.WebloggerException
@@ -251,7 +250,6 @@ public interface UserManager {
* (changes state of permission record to pending = true)
* @param weblog Weblog to grant permissions in
* @param user User to grant permissions to
- * @param actions Actions to be granted
*/
void confirmWeblogPermission(Weblog weblog, User user)
throws WebloggerException;
@@ -262,7 +260,6 @@ public interface UserManager {
* (removes permission record)
* @param weblog Weblog to grant permissions in
* @param user User to grant permissions to
- * @param actions Actions to be granted
*/
void declineWeblogPermission(Weblog weblog, User user)
throws WebloggerException;
@@ -289,31 +286,41 @@ public interface UserManager {
/**
* Get all of user's pending weblog permissions.
*/
- List<WeblogPermission> getWeblogPermissionsPending(User user)
+ List<WeblogPermission> getPendingWeblogPermissions(User user)
throws WebloggerException;
-
-
+
/**
- * Get all permissions associated with a weblog.
+ * Get all active permissions associated with a weblog.
*/
List<WeblogPermission> getWeblogPermissions(Weblog weblog)
throws WebloggerException;
-
-
+
/**
* Get all pending permissions associated with a weblog.
*/
- List<WeblogPermission> getWeblogPermissionsPending(Weblog weblog)
+ List<WeblogPermission> getPendingWeblogPermissions(Weblog weblog)
throws WebloggerException;
-
-
+
+ /**
+ * Get all permissions (pending or actual) for a weblog.
+ */
+ List<WeblogPermission> getWeblogPermissionsIncludingPending(Weblog weblog)
+ throws WebloggerException;
+
+
/**
* Get user's permission within a weblog or null if none.
*/
WeblogPermission getWeblogPermission(Weblog weblog, User user)
- throws WebloggerException;
-
-
+ throws WebloggerException;
+
+ /**
+ * Get user's permission (pending or actual) for a weblog
+ */
+ WeblogPermission getWeblogPermissionIncludingPending(Weblog weblog, User
user)
+ throws WebloggerException;
+
+
//--------------------------------------------------------------- role CRUD
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
Tue Aug 27 19:43:38 2013
@@ -569,7 +569,18 @@ public class JPAUserManagerImpl implemen
public WeblogPermission getWeblogPermission(Weblog weblog, User user)
throws WebloggerException {
- Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogId&NotPending");
+ Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogId");
+ q.setParameter(1, user.getUserName());
+ q.setParameter(2, weblog.getHandle());
+ try {
+ return (WeblogPermission)q.getSingleResult();
+ } catch (NoResultException ignored) {
+ return null;
+ }
+ }
+
+ public WeblogPermission getWeblogPermissionIncludingPending(Weblog weblog,
User user) throws WebloggerException {
+ Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogIdIncludingPending");
q.setParameter(1, user.getUserName());
q.setParameter(2, weblog.getHandle());
try {
@@ -579,11 +590,10 @@ public class JPAUserManagerImpl implemen
}
}
-
public void grantWeblogPermission(Weblog weblog, User user, List<String>
actions) throws WebloggerException {
// first, see if user already has a permission for the specified object
- Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogId");
+ Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogIdIncludingPending");
q.setParameter(1, user.getUserName());
q.setParameter(2, weblog.getHandle());
WeblogPermission existingPerm = null;
@@ -606,7 +616,7 @@ public class JPAUserManagerImpl implemen
public void grantWeblogPermissionPending(Weblog weblog, User user,
List<String> actions) throws WebloggerException {
// first, see if user already has a permission for the specified object
- Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogId");
+ Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogIdIncludingPending");
q.setParameter(1, user.getUserName());
q.setParameter(2, weblog.getHandle());
WeblogPermission existingPerm = null;
@@ -630,7 +640,7 @@ public class JPAUserManagerImpl implemen
public void confirmWeblogPermission(Weblog weblog, User user) throws
WebloggerException {
// get specified permission
- Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogId");
+ Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogIdIncludingPending");
q.setParameter(1, user.getUserName());
q.setParameter(2, weblog.getHandle());
WeblogPermission existingPerm = null;
@@ -649,7 +659,7 @@ public class JPAUserManagerImpl implemen
public void declineWeblogPermission(Weblog weblog, User user) throws
WebloggerException {
// get specified permission
- Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogId");
+ Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogIdIncludingPending");
q.setParameter(1, user.getUserName());
q.setParameter(2, weblog.getHandle());
WeblogPermission existingPerm = null;
@@ -666,7 +676,7 @@ public class JPAUserManagerImpl implemen
public void revokeWeblogPermission(Weblog weblog, User user, List<String>
actions) throws WebloggerException {
// get specified permission
- Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogId");
+ Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&WeblogIdIncludingPending");
q.setParameter(1, user.getUserName());
q.setParameter(2, weblog.getHandle());
WeblogPermission oldperm = null;
@@ -676,7 +686,7 @@ public class JPAUserManagerImpl implemen
throw new WebloggerException("ERROR: permission not found");
}
-// remove actions specified in perm agument
+ // remove actions specified in perm argument
oldperm.removeActions(actions);
if (oldperm.isEmpty()) {
@@ -695,28 +705,30 @@ public class JPAUserManagerImpl implemen
return (List<WeblogPermission>)q.getResultList();
}
-
public List<WeblogPermission> getWeblogPermissions(Weblog weblog) throws
WebloggerException {
Query q = strategy.getNamedQuery("WeblogPermission.getByWeblogId");
q.setParameter(1, weblog.getHandle());
return (List<WeblogPermission>)q.getResultList();
}
-
- public List<WeblogPermission> getWeblogPermissionsPending(User user)
throws WebloggerException {
+ public List<WeblogPermission> getWeblogPermissionsIncludingPending(Weblog
weblog) throws WebloggerException {
+ Query q =
strategy.getNamedQuery("WeblogPermission.getByWeblogIdIncludingPending");
+ q.setParameter(1, weblog.getHandle());
+ return (List<WeblogPermission>)q.getResultList();
+ }
+
+ public List<WeblogPermission> getPendingWeblogPermissions(User user)
throws WebloggerException {
Query q =
strategy.getNamedQuery("WeblogPermission.getByUserName&Pending");
q.setParameter(1, user.getUserName());
return (List<WeblogPermission>)q.getResultList();
}
-
- public List<WeblogPermission> getWeblogPermissionsPending(Weblog weblog)
throws WebloggerException {
+ public List<WeblogPermission> getPendingWeblogPermissions(Weblog weblog)
throws WebloggerException {
Query q =
strategy.getNamedQuery("WeblogPermission.getByWeblogId&Pending");
q.setParameter(1, weblog.getHandle());
return (List<WeblogPermission>)q.getResultList();
}
-
//-------------------------------------------------------------- role CRUD
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/ajax/UserDataServlet.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/ajax/UserDataServlet.java?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/ajax/UserDataServlet.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/ajax/UserDataServlet.java
Tue Aug 27 19:43:38 2013
@@ -57,11 +57,17 @@ public class UserDataServlet extends Htt
Boolean enabledOnly = null;
int offset = 0;
int length = MAX_LENGTH;
- if ("true".equals(request.getParameter("enabled"))) enabledOnly =
Boolean.TRUE;
- if ("false".equals(request.getParameter("enabled"))) enabledOnly =
Boolean.FALSE;
- try { offset = Integer.parseInt(request.getParameter("offset"));
+ if ("true".equals(request.getParameter("enabled"))) {
+ enabledOnly = Boolean.TRUE;
+ }
+ if ("false".equals(request.getParameter("enabled"))) {
+ enabledOnly = Boolean.FALSE;
+ }
+ try {
+ offset = Integer.parseInt(request.getParameter("offset"));
} catch (Exception ignored) {}
- try { length = Integer.parseInt(request.getParameter("length"));
+ try {
+ length = Integer.parseInt(request.getParameter("length"));
} catch (Exception ignored) {}
Weblogger roller = WebloggerFactory.getWeblogger();
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/MainMenu.java
Tue Aug 27 19:43:38 2013
@@ -136,7 +136,7 @@ public class MainMenu extends UIAction {
public List getPendingPermissions() {
try {
UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
- return mgr.getWeblogPermissionsPending(getAuthenticatedUser());
+ return mgr.getPendingWeblogPermissions(getAuthenticatedUser());
} catch(Exception e) {
return Collections.EMPTY_LIST;
}
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAdd.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAdd.java?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAdd.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryAdd.java
Tue Aug 27 19:43:38 2013
@@ -201,7 +201,9 @@ public final class EntryAdd extends Entr
if (entry.isPending()) {
// implies that entry just changed to
pending
- MailUtil.sendPendingEntryNotice(entry);
+ if (MailUtil.isMailConfigured()) {
+ MailUtil.sendPendingEntryNotice(entry);
+ }
addMessage("weblogEdit.submittedForReview");
} else {
addMessage("weblogEdit.changesSaved");
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryEdit.java
Tue Aug 27 19:43:38 2013
@@ -235,7 +235,9 @@ public final class EntryEdit extends Ent
if (entry.isPending()) {
// implies that entry just changed to pending
- MailUtil.sendPendingEntryNotice(entry);
+ if (MailUtil.isMailConfigured()) {
+ MailUtil.sendPendingEntryNotice(entry);
+ }
addMessage("weblogEdit.submittedForReview");
} else {
addMessage("weblogEdit.changesSaved");
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/EntryRemove.java
Tue Aug 27 19:43:38 2013
@@ -25,8 +25,12 @@ import org.apache.roller.weblogger.busin
import org.apache.roller.weblogger.business.WeblogEntryManager;
import org.apache.roller.weblogger.business.search.IndexManager;
import org.apache.roller.weblogger.pojos.WeblogEntry;
+import org.apache.roller.weblogger.pojos.WeblogPermission;
import org.apache.roller.weblogger.util.cache.CacheManager;
+import java.util.Collections;
+import java.util.List;
+
/**
* Remove a weblog entry.
*/
@@ -130,4 +134,9 @@ public class EntryRemove extends EntryBa
this.removeEntry = removeEntry;
}
+ // allow LIMITED users to delete their own draft/pending blog entries
+ public List<String> requiredWeblogPermissionActions() {
+ return Collections.singletonList(WeblogPermission.EDIT_DRAFT);
+ }
+
}
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java
Tue Aug 27 19:43:38 2013
@@ -73,21 +73,21 @@ public class Members extends UIAction im
public String save() {
- log.debug("Attempting to processing weblog permissions updates");
+ log.debug("Attempting to process weblog permissions updates");
int removed = 0;
int changed = 0;
List<WeblogPermission> permsList = new ArrayList<WeblogPermission>();
try {
UserManager userMgr =
WebloggerFactory.getWeblogger().getUserManager();
- List<WeblogPermission> permissions =
userMgr.getWeblogPermissions(getActionWeblog());
+ List<WeblogPermission> permissions =
userMgr.getWeblogPermissionsIncludingPending(getActionWeblog());
// we have to copy the permissions list so that when we remove
permissions
// below we don't get ConcurrentModificationExceptions
for( WeblogPermission perm : permissions ) {
permsList.add(perm);
}
-
+ // one iteration for each line (user) in the members table
for (WeblogPermission perms : permsList) {
String sval = getParameter("perm-" + perms.getUser().getId());
@@ -108,8 +108,8 @@ public class Members extends UIAction im
}
if (!error && !perms.hasAction(sval)) {
- if (sval == null) {
- userMgr.revokeWeblogPermission(
+ if ("-1".equals(sval)) {
+ userMgr.revokeWeblogPermission(
perms.getWeblog(), perms.getUser(),
WeblogPermission.ALL_ACTIONS);
removed++;
} else {
@@ -167,7 +167,7 @@ public class Members extends UIAction im
public List<WeblogPermission> getWeblogPermissions() {
try {
- return
WebloggerFactory.getWeblogger().getUserManager().getWeblogPermissions(getActionWeblog());
+ return
WebloggerFactory.getWeblogger().getUserManager().getWeblogPermissionsIncludingPending(getActionWeblog());
} catch (WebloggerException ex) {
// serious problem, but not much we can do here
log.error("ERROR getting weblog permissions", ex);
Modified:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java
Tue Aug 27 19:43:38 2013
@@ -70,7 +70,7 @@ public class MembersInvite extends UIAct
return SUCCESS;
}
- log.debug("Showing weblog inivitation form");
+ log.debug("Showing weblog invitation form");
return INPUT;
}
@@ -112,8 +112,8 @@ public class MembersInvite extends UIAct
// check for existing permissions or invitation
try {
- WeblogPermission perm =
umgr.getWeblogPermission(getActionWeblog(), user);
-
+ WeblogPermission perm =
umgr.getWeblogPermissionIncludingPending(getActionWeblog(), user);
+
if (perm != null && perm.isPending()) {
addError("inviteMember.error.userAlreadyInvited");
} else if (perm != null) {
Modified:
roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogPermission.orm.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogPermission.orm.xml?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogPermission.orm.xml
(original)
+++
roller/trunk/app/src/main/resources/org/apache/roller/weblogger/pojos/WeblogPermission.orm.xml
Tue Aug 27 19:43:38 2013
@@ -7,35 +7,35 @@
<entity metadata-complete="true" name="WeblogPermission"
class="org.apache.roller.weblogger.pojos.WeblogPermission"
access="PROPERTY">
<discriminator-value>Weblog</discriminator-value>
-
- <named-query name="WeblogPermission.getAll">
- <query>SELECT p FROM WeblogPermission p</query>
- </named-query>
-
+
<named-query name="WeblogPermission.getByUserName">
<query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND
p.pending <> TRUE</query>
</named-query>
-
+
+ <named-query name="WeblogPermission.getByUserName&Pending">
+ <query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND
p.pending = TRUE</query>
+ </named-query>
+
<named-query name="WeblogPermission.getByWeblogId">
<query>SELECT p FROM WeblogPermission p WHERE p.objectId = ?1 AND
p.pending <> TRUE</query>
</named-query>
-
- <named-query name="WeblogPermission.getByUserName&WeblogId">
- <query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND
p.objectId = ?2</query>
+
+ <named-query name="WeblogPermission.getByWeblogId&Pending">
+ <query>SELECT p FROM WeblogPermission p WHERE p.objectId = ?1 AND
p.pending = TRUE</query>
</named-query>
-
- <named-query
name="WeblogPermission.getByUserName&WeblogId&NotPending">
- <query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND
p.objectId = ?2 AND p.pending <> true</query>
+
+ <named-query name="WeblogPermission.getByWeblogIdIncludingPending">
+ <query>SELECT p FROM WeblogPermission p WHERE p.objectId =
?1</query>
</named-query>
-
- <named-query name="WeblogPermission.getByUserName&Pending">
- <query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND
p.pending = TRUE</query>
+
+ <named-query name="WeblogPermission.getByUserName&WeblogId">
+ <query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND
p.objectId = ?2 AND p.pending <> true</query>
</named-query>
-
- <named-query name="WeblogPermission.getByWeblogId&Pending">
- <query>SELECT p FROM WeblogPermission p WHERE p.objectId = ?1 AND
p.pending = true</query>
+
+ <named-query
name="WeblogPermission.getByUserName&WeblogIdIncludingPending">
+ <query>SELECT p FROM WeblogPermission p WHERE p.userName = ?1 AND
p.objectId = ?2</query>
</named-query>
-
+
<attributes>
<transient name="user"/>
<transient name="weblog"/>
Modified:
roller/trunk/app/src/main/resources/org/apache/roller/weblogger/ui/struts2/editor/editor-menu.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/org/apache/roller/weblogger/ui/struts2/editor/editor-menu.xml?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/main/resources/org/apache/roller/weblogger/ui/struts2/editor/editor-menu.xml
(original)
+++
roller/trunk/app/src/main/resources/org/apache/roller/weblogger/ui/struts2/editor/editor-menu.xml
Tue Aug 27 19:43:38 2013
@@ -1,7 +1,7 @@
<!--
Defines the Roller Weblog Editor/Admin UI menu and roles allowed to use each
menu. See also, admin-menu.xml, which defines the Global Admin menu.
-Each menu or menu item is governed by four attrbibutes:
+Each menu or menu item is governed by four attributes:
1) globalPerms: these are the global permissions required to view the item
Possible values:
@@ -9,9 +9,9 @@ Each menu or menu item is governed by fo
- login: allowed to login and save profile
- weblog: is allowed to create and user weblogs
- comment: allowed to comment on weblogs
- Use "any" to indicate that role is not required to view ite
+ Use "any" to indicate that role is not required to view item
- 2) webogPerms: these are the weblog specific permissions required to view
item
+ 2) weblogPerms: these are the weblog specific permissions required to view
item
- post: edit and publish entries, bookmarks
- edit_draft: create and edit draft posts only
- admin: edit and publish entries, edit categories, manage users,
etc.
@@ -34,7 +34,7 @@ Each menu or menu item is governed by fo
<menu-item action="entries"
name="tabbedmenu.weblog.archives"
globalPerms="login"
- weblogPerms="edit_draft" />
+ weblogPerms="post" />
<menu-item action="comments"
name="tabbedmenu.admin.commentManagement"
Modified: roller/trunk/app/src/main/resources/struts.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/struts.xml?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/struts.xml (original)
+++ roller/trunk/app/src/main/resources/struts.xml Tue Aug 27 19:43:38 2013
@@ -223,13 +223,7 @@
<!-- Weblogger Authoring UI -->
<package name="weblogger-authoring" namespace="/roller-ui/authoring"
extends="weblogger">
-
- <action name="entryAdd!*" method="{1}"
- class="org.apache.roller.weblogger.ui.struts2.editor.EntryAdd">
- <result name="input" type="tiles">.EntryAdd</result>
- <result name="success" type="chain">entryEdit</result>
- </action>
-
+
<action name="entryAddWithMediaFile!*" method="{1}"
class="org.apache.roller.weblogger.ui.struts2.editor.EntryAddWithMediaFile">
<result name="success" type="chain">entryAdd</result>
@@ -275,11 +269,17 @@
</action>
-->
- <action name="mediaFileImageDim!*" method="{1}"
+ <action name="mediaFileImageDim!*" method="{1}"
class="org.apache.roller.weblogger.ui.struts2.editor.MediaFileImageDim">
<result name="success"
type="tiles">.MediaFileImageDimension</result>
</action>
+ <action name="entryAdd!*" method="{1}"
+ class="org.apache.roller.weblogger.ui.struts2.editor.EntryAdd">
+ <result name="input" type="tiles">.EntryAdd</result>
+ <result name="success" type="chain">entryEdit</result>
+ </action>
+
<action name="entryEdit!*" method="{1}"
class="org.apache.roller.weblogger.ui.struts2.editor.EntryEdit">
<result name="input" type="tiles">.EntryEdit</result>
Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/core/MainMenu.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/core/MainMenu.jsp?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/core/MainMenu.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/core/MainMenu.jsp Tue Aug 27
19:43:38 2013
@@ -111,23 +111,27 @@
<s:a href="%{newEntry}"><s:text
name="yourWebsites.newEntry" /></s:a>
<br />
- <%-- Show Entries link with count, TODO: show N/M where
N is draft, M is published --%>
- <s:url action="entries"
namespace="/roller-ui/authoring" id="editEntries">
- <s:param name="weblog" value="#perms.weblog.handle"
/>
- </s:url>
- <img src='<s:url value="/images/table_multiple.png"/>'
/>
- <s:a href="%{editEntries}"><s:text
name="yourWebsites.editEntries" /> (<s:property
value="#perms.weblog.entryCount" />)</s:a>
- <br />
+ <%-- Show Entries link with count for users above
LIMITED permission --%>
+ <s:if test='!(#perms.hasAction("edit_draft"))'>
+ <s:url action="entries"
namespace="/roller-ui/authoring" id="editEntries">
+ <s:param name="weblog"
value="#perms.weblog.handle" />
+ </s:url>
+ <img src='<s:url
value="/images/table_multiple.png"/>' />
+ <s:a href="%{editEntries}"><s:text
name="yourWebsites.editEntries" /> (<s:property
value="#perms.weblog.entryCount" />)</s:a>
+ <br />
+ </s:if>
- <%-- Show Comments link with count, TODO: show N/M
where N is pending, M is approved --%>
- <s:url action="comments"
namespace="/roller-ui/authoring" id="manageComments">
- <s:param name="weblog" value="#perms.weblog.handle"
/>
- </s:url>
- <img src='<s:url value="/images/page_white_edit.png"/>'
/>
- <s:a href="%{manageComments}"><s:text
name="yourWebsites.manageComments" /> (<s:property
value="#perms.weblog.commentCount" />)</s:a>
- <br />
-
- <%-- Only adming get access to theme and config
settings --%>
+ <%-- Show Comments link with count for users above
LIMITED permission --%>
+ <s:if test='!(#perms.hasAction("edit_draft"))'>
+ <s:url action="comments"
namespace="/roller-ui/authoring" id="manageComments">
+ <s:param name="weblog"
value="#perms.weblog.handle" />
+ </s:url>
+ <img src='<s:url
value="/images/page_white_edit.png"/>' />
+ <s:a href="%{manageComments}"><s:text
name="yourWebsites.manageComments" /> (<s:property
value="#perms.weblog.commentCount" />)</s:a>
+ <br />
+ </s:if>
+
+ <%-- Only admins get access to theme and config
settings --%>
<s:if test='#perms.hasAction("admin")'>
<%-- And only show theme option if custom themes
are enabled --%>
Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/EntryAdd.jsp
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/EntryAdd.jsp?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/EntryAdd.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/editor/EntryAdd.jsp Tue Aug
27 19:43:38 2013
@@ -28,7 +28,7 @@
<script type="text/javascript" src="<s:url
value="/roller-ui/scripts/jquery-1.4.2.min.js" />"></script>
<!-- Combo-handled YUI JS files: TODO add to roller-ui/yui or remove??
-<link rel="stylesheet" type="text/css"
href="http://yui.yahooapis.com/combo?2.8.0r4/build/autocomplete/assets/skins/sam/autocomplete.css">
+<link rel="stylesheet" type="text/css"
href="http://yui.yahooapis.com/combo?2.8.0r4/build/autocomplete/assets/skins/sam/autocomplete.css">
<script type="text/javascript"
src="http://yui.yahooapis.com/combo?2.8.0r4/build/animation/animation-min.js&2.8.0r4/build/connection/connection-min.js&2.8.0r4/build/datasource/datasource-min.js&2.8.0r4/build/autocomplete/autocomplete-min.js"></script>
-->
<style>
Modified: roller/trunk/app/src/main/webapp/WEB-INF/tiles.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/tiles.xml?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/tiles.xml (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/tiles.xml Tue Aug 27 19:43:38 2013
@@ -217,13 +217,6 @@
<!-- weblog editor pages (and associates) -->
- <definition name=".EntryAdd" extends=".tiles-tabbedpage" >
- <put-attribute name="head" value="/WEB-INF/jsps/tiles/head-ajax.jsp" />
- <put-attribute name="content"
value="/WEB-INF/jsps/editor/EntryAdd.jsp" />
- <put-attribute name="sidebar"
value="/WEB-INF/jsps/editor/EntrySidebar.jsp" />
- <put-attribute name="styles"
value="/WEB-INF/jsps/tiles/css-sidebar.jsp" />
- </definition>
-
<definition name=".MediaFileAdd" extends=".tiles-tabbedpage" >
<put-attribute name="head" value="/WEB-INF/jsps/tiles/head-ajax.jsp" />
<put-attribute name="content"
value="/WEB-INF/jsps/editor/MediaFileAdd.jsp" />
@@ -252,7 +245,6 @@
<put-attribute name="content"
value="/WEB-INF/jsps/editor/MediaFileImageDimension.jsp" />
</definition>
-
<definition name=".MediaFileSearchInclude" extends=".tiles-popuppage" >
<put-attribute name="head" value="/WEB-INF/jsps/tiles/head-ajax.jsp" />
<put-attribute name="content"
value="/WEB-INF/jsps/editor/MediaFileSearch.jsp" />
@@ -300,14 +292,21 @@
<put-attribute name="sidebar"
value="/WEB-INF/jsps/editor/MediaFileSidebar.jsp" />
<put-attribute name="styles"
value="/WEB-INF/jsps/tiles/css-sidebar.jsp" />
</definition>
-
+
+ <definition name=".EntryAdd" extends=".tiles-tabbedpage" >
+ <put-attribute name="head" value="/WEB-INF/jsps/tiles/head-ajax.jsp" />
+ <put-attribute name="content"
value="/WEB-INF/jsps/editor/EntryAdd.jsp" />
+ <put-attribute name="sidebar"
value="/WEB-INF/jsps/editor/EntrySidebar.jsp" />
+ <put-attribute name="styles"
value="/WEB-INF/jsps/tiles/css-sidebar.jsp" />
+ </definition>
+
<definition name=".EntryEdit" extends=".tiles-tabbedpage" >
<put-attribute name="head" value="/WEB-INF/jsps/tiles/head-ajax.jsp" />
<put-attribute name="content"
value="/WEB-INF/jsps/editor/EntryEdit.jsp" />
<put-attribute name="sidebar"
value="/WEB-INF/jsps/editor/EntrySidebar.jsp" />
<put-attribute name="styles"
value="/WEB-INF/jsps/tiles/css-sidebar.jsp" />
</definition>
-
+
<definition name=".EntryRemove" extends=".tiles-tabbedpage" >
<put-attribute name="content"
value="/WEB-INF/jsps/editor/EntryRemove.jsp" />
<put-attribute name="styles"
value="/WEB-INF/jsps/tiles/css-nosidebar.jsp" />
@@ -324,7 +323,7 @@
<put-attribute name="sidebar"
value="/WEB-INF/jsps/editor/EntriesSidebar.jsp" />
<put-attribute name="styles"
value="/WEB-INF/jsps/tiles/css-sidebar.jsp" />
</definition>
-
+
<definition name=".Comments" extends=".tiles-tabbedpage" >
<put-attribute name="head" value="/WEB-INF/jsps/tiles/head-ajax.jsp" />
<put-attribute name="content"
value="/WEB-INF/jsps/editor/Comments.jsp" />
Modified: roller/trunk/app/src/main/webapp/themes/frontpage/_header.vm
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/themes/frontpage/_header.vm?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/themes/frontpage/_header.vm (original)
+++ roller/trunk/app/src/main/webapp/themes/frontpage/_header.vm Tue Aug 27
19:43:38 2013
@@ -26,7 +26,8 @@
<td class="bannerRight">
<a href="$url.absoluteSite">$config.siteName</a> |
<a href="$url.absoluteSite/roller-ui/menu.rol">Main
Menu</a> |
- <a href="$url.login">Login</a>
+ <a href="$url.login">Login</a> |
+ <a href="$url.register">Register</a>
</td>
</tr>
</table>
@@ -39,4 +40,4 @@
<div id="leftcontent">
</div>
</div>
-
\ No newline at end of file
+
Modified:
roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/PermissionTest.java
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/PermissionTest.java?rev=1517951&r1=1517950&r2=1517951&view=diff
==============================================================================
---
roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/PermissionTest.java
(original)
+++
roller/trunk/app/src/test/java/org/apache/roller/weblogger/business/PermissionTest.java
Tue Aug 27 19:43:38 2013
@@ -200,13 +200,13 @@ public class PermissionTest extends Test
TestUtils.endSession(true);
// get pending permissions for a user
- perms =
mgr.getWeblogPermissionsPending(TestUtils.getManagedUser(testUser));
+ perms =
mgr.getPendingWeblogPermissions(TestUtils.getManagedUser(testUser));
assertEquals(0, perms.size());
- perms =
mgr.getWeblogPermissionsPending(TestUtils.getManagedUser(user));
+ perms =
mgr.getPendingWeblogPermissions(TestUtils.getManagedUser(user));
assertEquals(1, perms.size());
// get pending permissions for a weblog
- perms =
mgr.getWeblogPermissionsPending(TestUtils.getManagedWebsite(testWeblog));
+ perms =
mgr.getPendingWeblogPermissions(TestUtils.getManagedWebsite(testWeblog));
assertEquals(1, perms.size());
// get permissions for a specific user/weblog
@@ -224,7 +224,7 @@ public class PermissionTest extends Test
TestUtils.getManagedUser(user));
assertNull(perm);
- List<WeblogPermission> pendings =
mgr.getWeblogPermissionsPending(user);
+ List<WeblogPermission> pendings =
mgr.getPendingWeblogPermissions(user);
// cleanup
TestUtils.teardownPermissions(pendings.get(0));
@@ -268,8 +268,8 @@ public class PermissionTest extends Test
// assert that invitation list is empty
testWeblog = TestUtils.getManagedWebsite(testWeblog);
user = TestUtils.getManagedUser(user);
- assertTrue(umgr.getWeblogPermissionsPending(user).isEmpty());
- assertTrue(umgr.getWeblogPermissionsPending(testWeblog).isEmpty());
+ assertTrue(umgr.getPendingWeblogPermissions(user).isEmpty());
+ assertTrue(umgr.getPendingWeblogPermissions(testWeblog).isEmpty());
// assert that user is member of weblog
assertNotNull(umgr.getWeblogPermission(testWeblog, user));
@@ -297,7 +297,7 @@ public class PermissionTest extends Test
}
- /**
+ /**
* Tests weblog invitation process.
*/
public void testPermissionChecks() throws Exception {