Access to Comment Management page through email link results in Permission 
Denied except for global administrator
-----------------------------------------------------------------------------------------------------------------

                 Key: ROL-1511
                 URL: 
http://opensource.atlassian.com/projects/roller/browse/ROL-1511
             Project: Roller
          Issue Type: Bug
          Components: Authentication, Roles and Access Controls
    Affects Versions: 3.1
         Environment: Roller version is 3.1
APP. Server BEA 9.2
Database oracle 9.2.4
Java 1.5.0
OS is Solaris 9/10
            Reporter: Henry Chang
            Assignee: Roller Unassigned


Use Case:
Blog entry creator clicks on "Link to comment management page:" in the email 
and enters Comment Management page.

Result:
Only global administrator can access Comment Management page, other users get a 
"Permission Denied" page.

Reason:
The code snippet is quoted from CommentManagementAction:query() method. The 
logic expects weblog handle in request but the email link does not provide it.
        if (rreq.getWebsite() != null && 
rses.isUserAuthorized(rreq.getWebsite())) {
            fwd =  mapping.findForward("commentManagement.page");
        }
        // Ensure only global admins can see all comments
        else if (rses.isGlobalAdminUser()) {
            fwd =  mapping.findForward("commentManagementGlobal.page");
        } 
        else {
            // And everybody else gets...
            return mapping.findForward("access-denied");
        }        
The email sends to a blog entry creator has a link to Comment Management page. 
This link is sent to roller-ui/authoring/commentManagement.do and contains two 
parameters, method and entryId. The CommentManagementAction:query() expects to 
find a weblog handle in request object to check for authorization but it could 
not find one, that breaks the if clause. Only the global administrator 
satisfies the else clause. Other users will be forward to "access-denied" page.

Suggest Fix:
The email link is generated by the sendEmailNotification() method in 
src\org\apache\roller\ui\rendering\servlets\CommentServlet.java and I quote:
        
deleteURL.append("/roller-ui/authoring/commentManagement.do?method=query&entryId="
 + entry.getId());
Add weblog handle to this link:
        
deleteURL.append("/roller-ui/authoring/commentManagement.do?method=query" + 
"&weblog=" + site.getName() + "&entryId=" + entry.getId());
The weblog handle will be passed from email link into the request object and 
can be checked for authorization. The entryId can be used to bring up comment 
management page for this entry.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://opensource.atlassian.com/projects/roller/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to