Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r01a4035d52575ebe0a8467b4e589998196353962 -rfc041430be42d809aaaf81add61f2d3182490aef Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java =================================================================== diff -u -rde1940e60766f8901436c6ab567c692685d5b35c -rfc041430be42d809aaaf81add61f2d3182490aef --- lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision de1940e60766f8901436c6ab567c692685d5b35c) +++ lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision fc041430be42d809aaaf81add61f2d3182490aef) @@ -28,6 +28,7 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; @@ -38,8 +39,11 @@ import org.springframework.web.context.support.WebApplicationContextUtils; import org.springframework.web.context.WebApplicationContext; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.UserManagementService; import org.lamsfoundation.lams.web.PasswordChangeActionForm; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.HttpSessionManager; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.Organisation; @@ -72,13 +76,19 @@ private static UserManagementService service = (UserManagementService) ctx.getBean("userManagementServiceTarget"); - private boolean isUserInRole(String login,int orgId, String roleName) + private boolean isUserInRole(Integer userId,int orgId, String roleName) { - if (service.getUserOrganisationRole(login, new Integer(orgId),roleName)==null) + if (service.getUserOrganisationRole(userId, new Integer(orgId),roleName)==null) return false; return true; } + private UserDTO getUser() { + HttpSession ss = SessionManager.getSession(); + return (UserDTO) ss.getAttribute(AttributeNames.USER); + } + + /** * request for admin environment */ @@ -88,21 +98,18 @@ try { log.debug("request admin"); - - String login = req.getRemoteUser(); - int orgId = new Integer(req.getParameter("orgId")).intValue(); - - if ( isUserInRole(login,orgId,Role.ADMIN)) - { + UserDTO user = getUser(); + if ( user == null ) { + log.error("admin: User missing from session. "); + return mapping.findForward("error"); + } else if ( isUserInRole(getUser().getUserID(),orgId,Role.ADMIN)) { log.debug("user is admin"); Organisation org = service.getOrganisationById(new Integer(orgId)); AdminPreparer.prepare(org,req,service); return mapping.findForward("admin"); - } - else - { - log.error("User "+login+" tried to get admin screen but isn't admin in organisation: "+orgId); + } else { + log.error("User "+user.getLogin()+" tried to get admin screen but isn't admin in organisation: "+orgId); return mapping.findForward("error"); } @@ -121,19 +128,16 @@ try { log.debug("request sysadmin"); - - String login = req.getRemoteUser(); - int orgId = new Integer(req.getParameter("orgId")).intValue(); - - if ( isUserInRole(login,orgId,Role.SYSADMIN)) - { + UserDTO user = getUser(); + if ( user == null ) { + log.error("admin: User missing from session. "); + return mapping.findForward("error"); + } else if ( isUserInRole(user.getUserID(),orgId,Role.SYSADMIN)) { log.debug("user is sysadmin"); return mapping.findForward("sysadmin"); - } - else - { - log.error("User "+login+" tried to get sysadmin screen but isn't sysadmin in organisation: "+orgId); + } else { + log.error("User "+user.getLogin()+" tried to get sysadmin screen but isn't sysadmin in organisation: "+orgId); return mapping.findForward("error"); } @@ -153,12 +157,12 @@ try { log.debug("request learner"); - String login = req.getRemoteUser(); - int orgId = new Integer(req.getParameter("orgId")).intValue(); - - if ( isUserInRole(login,orgId,Role.LEARNER) ) - { + UserDTO user = getUser(); + if ( user == null ) { + log.error("admin: User missing from session. "); + return mapping.findForward("error"); + } else if ( isUserInRole(user.getUserID(),orgId,Role.LEARNER) ) { log.debug("user is learner"); String serverUrl = Configuration.get(ConfigurationKeys.SERVER_URL); @@ -168,7 +172,7 @@ } else { - log.error("User "+login+" tried to get learner screen but isn't learner in organisation: "+orgId); + log.error("User "+user.getLogin()+" tried to get learner screen but isn't learner in organisation: "+orgId); return mapping.findForward("error"); } @@ -188,12 +192,12 @@ try { log.debug("request author"); - - String login = req.getRemoteUser(); - int orgId = new Integer(req.getParameter("orgId")).intValue(); - - if ( isUserInRole(login,orgId,Role.AUTHOR) ) + UserDTO user = getUser(); + if ( user == null ) { + log.error("admin: User missing from session. "); + return mapping.findForward("error"); + } else if ( isUserInRole(user.getUserID(),orgId,Role.AUTHOR) ) { log.debug("user is author"); @@ -204,7 +208,7 @@ } else { - log.error("User "+login+" tried to get author screen but isn't author in organisation: "+orgId); + log.error("User "+user.getLogin()+" tried to get author screen but isn't author in organisation: "+orgId); return mapping.findForward("error"); } @@ -224,12 +228,12 @@ try { log.debug("request staff"); - - String login = req.getRemoteUser(); - int orgId = new Integer(req.getParameter("orgId")).intValue(); - - if (isUserInRole(login, orgId, Role.STAFF)) { + UserDTO user = getUser(); + if ( user == null ) { + log.error("admin: User missing from session. "); + return mapping.findForward("error"); + } else if (isUserInRole(user.getUserID(), orgId, Role.STAFF)) { log.debug("user is staff"); String serverUrl = Configuration @@ -238,11 +242,7 @@ req.setAttribute("serverUrl", serverUrl); return mapping.findForward("staff"); } else { - log - .error("User " - + login - + " tried to get staff screen but isn't staff in organisation: " - + orgId); + log.error("User "+ user.getLogin() + " tried to get staff screen but isn't staff in organisation: " + orgId); return mapping.findForward("error"); } Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml =================================================================== diff -u -r832b7388158e6588d5791e09d202774d8434de86 -rfc041430be42d809aaaf81add61f2d3182490aef --- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 832b7388158e6588d5791e09d202774d8434de86) +++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision fc041430be42d809aaaf81add61f2d3182490aef) @@ -122,7 +122,7 @@ - + Index: lams_common/src/java/org/lamsfoundation/lams/themes/service/IThemeService.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -rfc041430be42d809aaaf81add61f2d3182490aef --- lams_common/src/java/org/lamsfoundation/lams/themes/service/IThemeService.java (.../IThemeService.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/themes/service/IThemeService.java (.../IThemeService.java) (revision fc041430be42d809aaaf81add61f2d3182490aef) @@ -62,22 +62,6 @@ public MessageService getMessageService(); /** - * Set IThemeDAO - * - * @param themeDao - */ - public void setThemeDAO(ICSSThemeDAO themeDao); - - - /** - * Set IUserDAO - * - * @param userDao - */ - public void setUserDAO(IUserDAO userDao); - - - /** * Store a theme created on a client. * @param wddxPacket The WDDX packet received from Flash * @return String The acknowledgement in WDDX format that the theme has been Index: lams_common/src/java/org/lamsfoundation/lams/themes/service/ThemeService.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -rfc041430be42d809aaaf81add61f2d3182490aef --- lams_common/src/java/org/lamsfoundation/lams/themes/service/ThemeService.java (.../ThemeService.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/themes/service/ThemeService.java (.../ThemeService.java) (revision fc041430be42d809aaaf81add61f2d3182490aef) @@ -34,17 +34,16 @@ import org.lamsfoundation.lams.themes.dao.ICSSThemeDAO; import org.lamsfoundation.lams.themes.dto.CSSThemeBriefDTO; import org.lamsfoundation.lams.themes.dto.CSSThemeDTO; -import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; +import org.lamsfoundation.lams.themes.exception.ThemeException; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.exception.UserException; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.wddx.FlashMessage; import org.lamsfoundation.lams.util.wddx.WDDXProcessor; + import com.allaire.wddx.WddxDeserializationException; -import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.themes.exception.ThemeException; - /** * * @author Mitchell Seaton @@ -56,8 +55,8 @@ /** Required DAO's */ protected ICSSThemeDAO themeDAO; - protected IUserDAO userDAO; protected MessageService messageService; + protected IUserManagementService userManagementService; /** for sending acknowledgment/error messages back to flash */ private FlashMessage flashMessage; @@ -86,11 +85,12 @@ this.themeDAO = themeDAO; } - /** - * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setUserDAO(org.lamsfoundation.lams.usermanagement.dao.IUserDAO) - */ - public void setUserDAO(IUserDAO userDAO) { - this.userDAO = userDAO; + /** + * + * @param IUserManagementService The userManagementService to set. + */ + public void setUserManagementService(IUserManagementService userManagementService) { + this.userManagementService = userManagementService; } /** @@ -178,7 +178,7 @@ */ public String getThemes() throws IOException { List themes = themeDAO.getAllThemes(); - ArrayList themeList = new ArrayList(); + ArrayList themeList = new ArrayList(); Iterator iterator = themes.iterator(); while(iterator.hasNext()){ CSSThemeBriefDTO dto = new CSSThemeBriefDTO((CSSThemeVisualElement)iterator.next()); @@ -195,7 +195,7 @@ * @throws IOException */ private FlashMessage setTheme(Integer userId, Long themeId, String type) throws IOException, ThemeException, UserException { - User user = userDAO.getUserById(userId); + User user = userManagementService.getUserById(userId); CSSThemeVisualElement theme = themeDAO.getThemeById(themeId); if(theme==null) @@ -213,7 +213,7 @@ else if(type.equals(IThemeService.HTML_KEY)) user.setHtmlTheme(theme); - userDAO.updateUser(user); + userManagementService.updateUser(user); flashMessage = new FlashMessage("setTheme", messageService.getMessage(IThemeService.SET_THEME_SAVED_MESSAGE_KEY)); } @@ -249,6 +249,6 @@ public FlashMessage setFlashTheme(Integer userId, Long themeId) throws IOException, ThemeException, UserException { return setTheme(userId, themeId, IThemeService.FLASH_KEY); } + - } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/AdminPreparer.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -rfc041430be42d809aaaf81add61f2d3182490aef --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/AdminPreparer.java (.../AdminPreparer.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/util/AdminPreparer.java (.../AdminPreparer.java) (revision fc041430be42d809aaaf81add61f2d3182490aef) @@ -28,11 +28,15 @@ import java.util.Set; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import org.apache.log4j.Logger; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.UserManagementService; +import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; /** @@ -44,28 +48,36 @@ */ public class AdminPreparer { + private static Logger log = Logger.getLogger(AdminPreparer.class); + public static void prepare(Organisation org, HttpServletRequest request, UserManagementService service){ UserOrganisationRole userOrgRole = null; - if(org.getParentOrganisation()!=null){ - userOrgRole = service.getUserOrganisationRole(request.getRemoteUser(),org.getParentOrganisation().getOrganisationId(),Role.ADMIN); - } - List childOrgs = service.getChildOrganisations(org); - for(int i=0; i