Author: snoopdave Date: Fri Aug 31 11:32:36 2007 New Revision: 571534 URL: http://svn.apache.org/viewvc?rev=571534&view=rev Log: More progress on externalizable user management. Work is essentially complete, Roller UI is working with the new user manager and migration SQL is in place. Next, more testing.
http://opensource.atlassian.com/projects/roller/browse/ROL-1534 Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/core/MainMenu.jsp roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/Members.jsp roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/MembersInvite.jsp roller/branches/roller_4.1_dev/apps/weblogger/web/roller-ui/login-redirect.jsp Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java?rev=571534&r1=571533&r2=571534&view=diff ============================================================================== --- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java (original) +++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerUserDetailsService.java Fri Aug 31 11:32:36 2007 @@ -1,6 +1,6 @@ package org.apache.roller.weblogger.ui.core.security; -import java.util.Iterator; +import java.util.List; import org.acegisecurity.GrantedAuthority; import org.acegisecurity.GrantedAuthorityImpl; import org.acegisecurity.userdetails.UserDetails; @@ -10,7 +10,6 @@ import org.apache.roller.weblogger.business.Weblogger; import org.apache.roller.weblogger.business.WebloggerFactory; import org.apache.roller.weblogger.business.UserManager; -import org.apache.roller.weblogger.pojos.UserRole; import org.apache.roller.weblogger.pojos.User; import org.springframework.dao.DataAccessException; import org.springframework.dao.DataAccessResourceFailureException; @@ -38,11 +37,11 @@ throw new UsernameNotFoundException("ERROR no user: " + userName); } - GrantedAuthority[] authorities = new GrantedAuthorityImpl[umgr.getRoles(userData).size()]; + List<String> roles = umgr.getRoles(userData); + GrantedAuthority[] authorities = new GrantedAuthorityImpl[roles.size()]; int i = 0; - for (Iterator it = umgr.getRoles(userData).iterator(); it.hasNext();) { - UserRole role = (UserRole) it.next(); - authorities[i++] = new GrantedAuthorityImpl(role.getRole()); + for (String role : roles) { + authorities[i++] = new GrantedAuthorityImpl(role); } return new org.acegisecurity.userdetails.User(userData.getUserName(), userData.getPassword(), true, authorities); Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java?rev=571534&r1=571533&r2=571534&view=diff ============================================================================== --- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java (original) +++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Members.java Fri Aug 31 11:32:36 2007 @@ -22,8 +22,11 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.roller.weblogger.WebloggerException; import org.apache.roller.weblogger.business.WebloggerFactory; import org.apache.roller.weblogger.business.UserManager; import org.apache.roller.weblogger.pojos.User; @@ -75,7 +78,7 @@ int removed = 0; int changed = 0; - List<WeblogPermission> permsList = new ArrayList<WeblogPermission>(); + List<WeblogPermission> permsList = new ArrayList<WeblogPermission>(); try { UserManager userMgr = WebloggerFactory.getWeblogger().getUserManager(); List<WeblogPermission> permissions = userMgr.getWeblogPermissions(getActionWeblog()); @@ -88,7 +91,7 @@ for (WeblogPermission perms : permsList) { - String sval = getParameter("perm-" + perms.getWeblog().getId()); + String sval = getParameter("perm-" + perms.getUser().getId()); if (sval != null) { boolean error = false; User user = getAuthenticatedUser(); @@ -161,5 +164,15 @@ public void setParameters(Map parameters) { this.parameters = parameters; + } + + public List<WeblogPermission> getWeblogPermissions() { + try { + return WebloggerFactory.getWeblogger().getUserManager().getWeblogPermissions(getActionWeblog()); + } catch (WebloggerException ex) { + // serious problem, but not much we can do here + log.error("ERROR getting weblog permissions", ex); + } + return new ArrayList<WeblogPermission>(); } } Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java?rev=571534&r1=571533&r2=571534&view=diff ============================================================================== --- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java (original) +++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/MembersInvite.java Fri Aug 31 11:32:36 2007 @@ -43,7 +43,7 @@ private String userName = null; // permissions being given to user - private String permissionsMask = null; + private String permissionString = null; public MembersInvite() { @@ -126,7 +126,7 @@ // if no errors then send the invitation if(!hasActionErrors()) try { - WeblogPermission perm = new WeblogPermission(getActionWeblog(), user, getPermissionsMask()); + WeblogPermission perm = new WeblogPermission(getActionWeblog(), user, getPermissionString()); perm.setPending(true); umgr.grantWeblogPermission(perm); WebloggerFactory.getWeblogger().flush(); @@ -166,12 +166,12 @@ this.userName = userId; } - public String getPermissionsMask() { - return permissionsMask; + public String getPermissionString() { + return permissionString; } - public void setPermissionsMask(String permission) { - this.permissionsMask = permission; + public void setPermissionString(String permission) { + this.permissionString = permission; } } Modified: roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/core/MainMenu.jsp URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/core/MainMenu.jsp?rev=571534&r1=571533&r2=571534&view=diff ============================================================================== --- roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/core/MainMenu.jsp (original) +++ roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/core/MainMenu.jsp Fri Aug 31 11:32:36 2007 @@ -29,7 +29,7 @@ <s:iterator id="invite" value="pendingPermissions"> <s:text name="yourWebsites.youAreInvited" > - <s:param value="#invite.website.handle" /> + <s:param value="#invite.weblog.handle" /> </s:text> <s:url action="menu!accept" id="acceptInvite"> @@ -61,7 +61,7 @@ <div class="yourWeblogBox"> - <span class="mm_weblog_name"><img src='<c:url value="/images/folder.png"/>' /> <s:property value="#perms.website.name" /></span> + <span class="mm_weblog_name"><img src='<c:url value="/images/folder.png"/>' /> <s:property value="#perms.weblog.name" /></span> <table class="mm_table" width="100%" cellpadding="0" cellspacing="0"> <tr> @@ -71,31 +71,31 @@ <tr> <td class="mm_subtable_label"><s:text name='yourWebsites.weblog' /></td> - <td><a href='<s:property value="#perms.website.URL" />'> - <s:property value="#perms.website.absoluteURL" /> + <td><a href='<s:property value="#perms.weblog.URL" />'> + <s:property value="#perms.weblog.absoluteURL" /> </a></td> </tr> <tr> <td class="mm_subtable_label"><s:text name='yourWebsites.permission' /></td> - <td><s:if test="#perms.permissionMask == 0" >LIMITED</s:if> - <s:if test="#perms.permissionMask == 1" >AUTHOR</s:if> - <s:if test="#perms.permissionMask == 3" >ADMIN</s:if></td> + <td><s:if test='#perms.hasAction("admin")' >ADMIN</s:if> + <s:if test='#perms.hasAction("post")' >AUTHOR</s:if> + <s:if test='#perms.hasAction("edit_draft")' >LIMITED</s:if></td> </tr> <tr> <td class="mm_subtable_label"><s:text name='yourWebsites.description' /></td> - <td><s:property value="#perms.website.description" escape="false" /></td> + <td><s:property value="#perms.weblog.description" escape="false" /></td> </tr> <tr> <td class="mm_subtable_label"><s:text name='yourWebsites.userCount' /></td> - <td><s:property value="#perms.website.userCount" /></td> + <td><s:property value="#perms.weblog.userCount" /></td> </tr> <tr> <td class="mm_subtable_label"><s:text name='yourWebsites.todaysHits' /></td> - <td><s:property value="#perms.website.todaysHits" /></td> + <td><s:property value="#perms.weblog.todaysHits" /></td> </tr> </table> @@ -105,7 +105,7 @@ <td class="mm_table_actions" width="20%" align="left" > <s:url action="entryAdd" namespace="/roller-ui/authoring" id="newEntry"> - <s:param name="weblog" value="#perms.website.handle" /> + <s:param name="weblog" value="#perms.weblog.handle" /> </s:url> <img src='<s:url value="/images/table_edit.png"/>' /> <s:a href="%{newEntry}"><s:text name="yourWebsites.newEntry" /></s:a> @@ -113,24 +113,24 @@ <%-- 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.website.handle" /> + <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.website.entryCount" />)</s:a> + <s:a href="%{editEntries}"><s:text name="yourWebsites.editEntries" /> (<s:property value="#perms.weblog.entryCount" />)</s:a> <br /> <%-- 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.website.handle" /> + <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.website.commentCount" />)</s:a> + <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 --%> - <s:if test="#perms.permissionMask == 3"> + <s:if test='#perms.hasAction("admin")'> <s:url action="themeEdit" namespace="/roller-ui/authoring" id="weblogTheme"> - <s:param name="weblog" value="#perms.website.handle" /> + <s:param name="weblog" value="#perms.weblog.handle" /> </s:url> <img src='<s:url value="/roller-ui/images/layout.png"/>' /> <a href='<s:property value="weblogTheme" />'> @@ -138,7 +138,7 @@ <br /> <s:url action="weblogConfig" namespace="/roller-ui/authoring" id="manageWeblog"> - <s:param name="weblog" value="#perms.website.handle" /> + <s:param name="weblog" value="#perms.weblog.handle" /> </s:url> <img src='<s:url value="/images/cog.png"/>' /> <a href='<s:property value="manageWeblog" />'> @@ -146,11 +146,11 @@ <br /> </s:if> - <%-- authors and limited bloggers can resign, but admin cannot resign if he/she is the last admin in the blog --%> - <s:if test="#perms.permissionMask == 0 || #perms.permissionMask == 1 || #perms.website.adminUserCount > 1"> + <%-- don't allow last admin to resign from blog --%> + <s:if test='!(#perms.hasAction("admin") && #perms.weblog.adminUserCount == 1)'> <img src='<c:url value="/images/delete.png"/>' /> <s:url action="menu!resign" id="resignWeblog"> - <s:param name="websiteId" value="#perms.website.id" /> + <s:param name="websiteId" value="#perms.weblog.id" /> </s:url> <a href='<s:property value="resignWeblog" />'> <s:text name='yourWebsites.resign' /> Modified: roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/Members.jsp URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/Members.jsp?rev=571534&r1=571533&r2=571534&view=diff ============================================================================== --- roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/Members.jsp (original) +++ roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/Members.jsp Fri Aug 31 11:32:36 2007 @@ -67,7 +67,7 @@ <s:text name="memberPermissions.remove" /> </th> </tr> - <s:iterator id="perm" value="actionWeblog.permissions" status="rowstatus"> + <s:iterator id="perm" value="weblogPermissions" status="rowstatus"> <s:if test="#perm.pending"> <tr class="rollertable_pending"> </s:if> @@ -84,22 +84,22 @@ </td> <td class="rollertable"> <input type="radio" - <s:if test="#perm.permissionMask == 3">checked</s:if> - name='perm-<s:property value="#perm.id" />' value="3" /> + <s:if test='#perm.hasAction("admin")'>checked</s:if> + name='perm-<s:property value="#perm.user.id" />' value="admin" /> </td> <td class="rollertable"> <input type="radio" - <s:if test="#perm.permissionMask == 1">checked</s:if> - name='perm-<s:property value="#perm.id" />' value="1" /> + <s:if test='#perm.hasAction("post")'>checked</s:if> + name='perm-<s:property value="#perm.user.id" />' value="post" /> </td> <td class="rollertable"> <input type="radio" - <s:if test="#perm.permissionMask == 0">checked</s:if> - name='perm-<s:property value="#perm.id" />' value="0" /> + <s:if test='#perm.hasAction("edit_draft")'>checked</s:if> + name='perm-<s:property value="#perm.user.id" />' value="edit_draft" /> </td> <td class="rollertable"> <input type="radio" - name='perm-<s:property value="#perm.id" />' value="-1" /> + name='perm-<s:property value="#perm.user.id" />' value="-1" /> </td> </tr> </s:iterator> Modified: roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/MembersInvite.jsp URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/MembersInvite.jsp?rev=571534&r1=571533&r2=571534&view=diff ============================================================================== --- roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/MembersInvite.jsp (original) +++ roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/MembersInvite.jsp Fri Aug 31 11:32:36 2007 @@ -48,11 +48,11 @@ <div style="clear:left"> <label for="userName" class="formrow" /> <s:text name="inviteMember.permissions" /></label> - <input type="radio" name="permissionsMask" value="3" /> + <input type="radio" name="permissionString" value="admin" /> <s:text name="inviteMember.administrator" /> - <input type="radio" name="permissionsMask" value="1" checked /> + <input type="radio" name="permissionString" value="post" checked /> <s:text name="inviteMember.author" /> - <input type="radio" name="permissionsMask" value="0" /> + <input type="radio" name="permissionString" value="edit_draft" /> <s:text name="inviteMember.limited" /> </div> Modified: roller/branches/roller_4.1_dev/apps/weblogger/web/roller-ui/login-redirect.jsp URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/roller-ui/login-redirect.jsp?rev=571534&r1=571533&r2=571534&view=diff ============================================================================== --- roller/branches/roller_4.1_dev/apps/weblogger/web/roller-ui/login-redirect.jsp (original) +++ roller/branches/roller_4.1_dev/apps/weblogger/web/roller-ui/login-redirect.jsp Fri Aug 31 11:32:36 2007 @@ -22,7 +22,7 @@ <%@ page import="java.util.List" %> <% User user = RollerSession.getRollerSession(request).getAuthenticatedUser(); -List websites = WebloggerFactory.getWeblogger().getUserManager().getWebsites(user, Boolean.TRUE, null, null, null, 0, Integer.MAX_VALUE); +List websites = WebloggerFactory.getWeblogger().getUserManager().getWebsites(user, true); if (websites.size() == 1) { Weblog website = (Weblog) websites.get(0);
