Index: lams_build/lib/lams/lams-contentrepository.jar
===================================================================
diff -u -r98064f112f0bd41d1adc890ea1c0e962d0be6cb2 -rf48c6873abe00cb898d3a832b9b6a9c95d81a559
Binary files differ
Index: lams_central/src/java/org/lamsfoundation/lams/web/PortraitSaveAction.java
===================================================================
diff -u -r6204654e56634639e5fb6b2b5c2be11f835cf117 -rf48c6873abe00cb898d3a832b9b6a9c95d81a559
--- lams_central/src/java/org/lamsfoundation/lams/web/PortraitSaveAction.java (.../PortraitSaveAction.java) (revision 6204654e56634639e5fb6b2b5c2be11f835cf117)
+++ lams_central/src/java/org/lamsfoundation/lams/web/PortraitSaveAction.java (.../PortraitSaveAction.java) (revision f48c6873abe00cb898d3a832b9b6a9c95d81a559)
@@ -85,6 +85,8 @@
String fileName = file.getFileName();
log.debug("got file: "+fileName+" of type: "+file.getContentType()+" with size: "+file.getFileSize());
+ User user = (User)getService().getUserByLogin(request.getRemoteUser());
+
// check if file is an image using the MIME content type
String mediaType = file.getContentType().split("/",2)[0];
if (!mediaType.equals("image")) {
@@ -109,7 +111,7 @@
if (file!= null && !StringUtils.isEmpty(fileName)) {
try {
//InputStream is = file.getInputStream();
- node = centralToolContentHandler.uploadFile(is, fileName, file.getContentType(), IToolContentHandler.TYPE_ONLINE);
+ node = centralToolContentHandler.uploadFile(is, fileName, file.getContentType(), IToolContentHandler.TYPE_ONLINE, user.getUserId());
is.close();
} catch (Exception e) {
request.setAttribute("errorMessage", e.getMessage());
@@ -119,7 +121,6 @@
log.debug("saved file with uuid: "+node.getUuid()+" and version: "+node.getVersion());
- User user = (User)getService().getUserByLogin(request.getRemoteUser());
// delete old portrait file (we only want to keep the user's current portrait)
if (user.getPortraitUuid()!=null) centralToolContentHandler.deleteFile(user.getPortraitUuid());
user.setPortraitUuid(node.getUuid());
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java
===================================================================
diff -u -r902b2f38c23e260d4cd83ce964f5e8a9814e032c -rf48c6873abe00cb898d3a832b9b6a9c95d81a559
--- lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision 902b2f38c23e260d4cd83ce964f5e8a9814e032c)
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java (.../IWorkspaceManagementService.java) (revision f48c6873abe00cb898d3a832b9b6a9c95d81a559)
@@ -222,11 +222,12 @@
* holds this content
* @param mimeType The MIME type of the file
* @param path The physical location of the file from where it has to be read
+ * @param userID The User
who has requested this opeartion
* @return String The acknowledgement/error message in WDDX format for the
* FLASH client.
* @throws Exception
*/
- public String createWorkspaceFolderContent(Integer contentTypeID, String name, String description, Integer workspaceFolderID, String mimeType, String path) throws Exception;
+ public String createWorkspaceFolderContent(Integer contentTypeID, String name, String description, Integer workspaceFolderID, String mimeType, String path, Integer userId) throws Exception;
/**
* This method updates an existing file(workspaceFolderContet
)
@@ -235,10 +236,11 @@
* @param folderContentID The folder_content_id
of the file
* to be updated
* @param path The physical location of the file from where it has to be read
+ * @param userID The User
who has requested this opeartion
* @return String The acknowledgement/error message in WDDX format for FLASH
* @throws Exception
*/
- public String updateWorkspaceFolderContent(Long folderContentID,String path)throws Exception;
+ public String updateWorkspaceFolderContent(Long folderContentID,String path, Integer userId)throws Exception;
/**
* This method is called when the user knows which version of the
@@ -347,4 +349,4 @@
*/
public String getUserOrganisation(Integer userID, Integer organisationId) throws IOException;
-}
+}
\ No newline at end of file
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java
===================================================================
diff -u -r902b2f38c23e260d4cd83ce964f5e8a9814e032c -rf48c6873abe00cb898d3a832b9b6a9c95d81a559
--- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision 902b2f38c23e260d4cd83ce964f5e8a9814e032c)
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision f48c6873abe00cb898d3a832b9b6a9c95d81a559)
@@ -53,10 +53,10 @@
import org.lamsfoundation.lams.dao.IBaseDAO;
import org.lamsfoundation.lams.learningdesign.LearningDesign;
import org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO;
+import org.lamsfoundation.lams.usermanagement.Organisation;
import org.lamsfoundation.lams.usermanagement.OrganisationState;
import org.lamsfoundation.lams.usermanagement.Role;
import org.lamsfoundation.lams.usermanagement.User;
-import org.lamsfoundation.lams.usermanagement.Organisation;
import org.lamsfoundation.lams.usermanagement.UserOrganisation;
import org.lamsfoundation.lams.usermanagement.UserOrganisationRole;
import org.lamsfoundation.lams.usermanagement.Workspace;
@@ -71,7 +71,6 @@
import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.wddx.FlashMessage;
import org.lamsfoundation.lams.workspace.WorkspaceFolderContent;
-import org.lamsfoundation.lams.workspace.dao.IWorkspaceFolderContentDAO;
import org.lamsfoundation.lams.workspace.dto.FolderContentDTO;
import org.lamsfoundation.lams.workspace.dto.UpdateContentDTO;
@@ -378,8 +377,6 @@
public Integer getPermissions(WorkspaceFolder workspaceFolder, User user){
Integer permission = null;
- WorkspaceFolder userDefaultFolder = user.getWorkspace().getDefaultFolder();
-
if ( workspaceFolder==null || user==null ) {
permission = WorkspaceFolder.NO_ACCESS;
} else if (workspaceFolder.getUserID().equals(user.getUserId())) {
@@ -391,25 +388,7 @@
}
return permission;
}
- /** This method checks if the given workspaceFolder is a subFolder of the
- * given rootFolder. Returns false if they are the same folder. */
- private boolean isSubFolder(WorkspaceFolder workspaceFolder,WorkspaceFolder rootFolder){
- if ( rootFolder != null ) {
- // is it the same folder?
- if ( rootFolder.getWorkspaceFolderId().equals(workspaceFolder.getWorkspaceFolderId()) ) {
- return false;
- }
- // check the parent hierarchy
- WorkspaceFolder folder = workspaceFolder;
- while ( folder != null && ! rootFolder.getWorkspaceFolderId().equals(folder.getWorkspaceFolderId()) ) {
- folder = folder.getParentWorkspaceFolder();
- }
- return ( folder != null );
- }
- return false;
-
- }
-
+
private Vector getFolderContentDTO(List designs, Integer permissions,Vector folderContent){
Iterator iterator = designs.iterator();
while(iterator.hasNext()){
@@ -812,9 +791,9 @@
}
/**
- * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#createWorkspaceFolderContent(java.lang.Integer, java.lang.String, java.lang.String, java.lang.Integer, java.lang.String, java.lang.String)
+ * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#createWorkspaceFolderContent(java.lang.Integer, java.lang.String, java.lang.String, java.lang.Integer, java.lang.String, java.lang.String, java.lang.Integer)
*/
- public String createWorkspaceFolderContent(Integer contentTypeID,String name,String description,Integer workspaceFolderID, String mimeType, String path) throws Exception{
+ public String createWorkspaceFolderContent(Integer contentTypeID,String name,String description,Integer workspaceFolderID, String mimeType, String path, Integer userId) throws Exception{
// TODO add some validation so that a non-unique name doesn't result in an index violation
// bit hard for the user to understand.
@@ -829,7 +808,7 @@
try{
InputStream stream = new FileInputStream(path);
- NodeKey nodeKey = addFileToRepository(stream,name,mimeType);
+ NodeKey nodeKey = addFileToRepository(stream,name,mimeType,userId);
workspaceFolderContent.setUuid(nodeKey.getUuid());
workspaceFolderContent.setVersionID(nodeKey.getVersion());
baseDAO.update(workspaceFolderContent);
@@ -892,13 +871,13 @@
/**
* (non-Javadoc)
- * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#updateWorkspaceFolderContent(java.lang.Long, java.io.InputStream)
+ * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#updateWorkspaceFolderContent(java.lang.Long, java.io.InputStream, java.lang.Integer)
*/
- public String updateWorkspaceFolderContent(Long folderContentID,String path)throws Exception{
+ public String updateWorkspaceFolderContent(Long folderContentID,String path, Integer userId)throws Exception{
InputStream stream = new FileInputStream(path);
WorkspaceFolderContent workspaceFolderContent = (WorkspaceFolderContent)baseDAO.find(WorkspaceFolderContent.class,folderContentID);
if(workspaceFolderContent!=null){
- NodeKey nodeKey = updateFileInRepository(workspaceFolderContent,stream);
+ NodeKey nodeKey = updateFileInRepository(workspaceFolderContent,stream, userId);
UpdateContentDTO contentDTO = new UpdateContentDTO(nodeKey.getUuid(), nodeKey.getVersion(),folderContentID);
flashMessage = new FlashMessage(MSG_KEY_UPDATE_WKF_CONTENT,contentDTO);
}else
@@ -916,15 +895,16 @@
* @param stream The InputStream
representing the data to be added
* @param fileName The name of the file being added
* @param mimeType The MIME type of the file (eg. TXT, DOC, GIF etc)
+ * @param userId The user who is creating the content
* @return NodeKey Represents the two part key - UUID and Version.
* @throws AccessDeniedException
* @throws FileException
* @throws InvalidParameterException
*/
- private NodeKey addFileToRepository(InputStream stream, String fileName, String mimeType)throws AccessDeniedException,
+ private NodeKey addFileToRepository(InputStream stream, String fileName, String mimeType, Integer userId)throws AccessDeniedException,
FileException,InvalidParameterException{
ITicket ticket = getRepositoryLoginTicket();
- NodeKey nodeKey = repositoryService.addFileItem(ticket,stream,fileName,mimeType,null);
+ NodeKey nodeKey = repositoryService.addFileItem(ticket,stream,fileName,mimeType,null,userId);
return nodeKey;
}
/**
@@ -940,11 +920,11 @@
* @throws Exception
*/
private NodeKey updateFileInRepository(WorkspaceFolderContent workspaceFolderContent,
- InputStream stream)throws Exception{
+ InputStream stream, Integer userId)throws Exception{
ITicket ticket = getRepositoryLoginTicket();
NodeKey nodeKey = repositoryService.updateFileItem(ticket,workspaceFolderContent.getUuid(),
workspaceFolderContent.getName(),
- stream,workspaceFolderContent.getMimeType(),null);
+ stream,workspaceFolderContent.getMimeType(),null,userId);
workspaceFolderContent.setUuid(nodeKey.getUuid());
workspaceFolderContent.setVersionID(nodeKey.getVersion());
baseDAO.update(workspaceFolderContent);
@@ -1382,4 +1362,4 @@
-}
+}
\ No newline at end of file
Index: lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java
===================================================================
diff -u -r902b2f38c23e260d4cd83ce964f5e8a9814e032c -rf48c6873abe00cb898d3a832b9b6a9c95d81a559
--- lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java (.../WorkspaceAction.java) (revision 902b2f38c23e260d4cd83ce964f5e8a9814e032c)
+++ lams_central/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java (.../WorkspaceAction.java) (revision f48c6873abe00cb898d3a832b9b6a9c95d81a559)
@@ -32,6 +32,7 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.log4j.Logger;
@@ -46,6 +47,7 @@
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.util.wddx.FlashMessage;
import org.lamsfoundation.lams.web.action.LamsDispatchAction;
+import org.lamsfoundation.lams.web.session.SessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
import org.lamsfoundation.lams.workspace.dto.FolderContentDTO;
import org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService;
@@ -68,6 +70,13 @@
public static final String RESOURCE_TYPE = "resourceType";
public static final String ROLE_DELIMITER = ",";
+ private Integer getUserId(HttpServletRequest request) {
+ // return new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
+ HttpSession ss = SessionManager.getSession();
+ UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);
+ return user != null ? user.getUserID() : null;
+ }
+
/**
* Special value for folderID on getFolderContents(). Triggers getting the
* dummy value for the organisations (see ORG_FOLDER_ID) and the user's
@@ -144,7 +153,7 @@
return returnWDDXPacket(errorPacket, response);
String folderName = (String)WebUtil.readStrParam(request,"name");
- Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
+ Integer userID = getUserId(request);
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
String wddxPacket = workspaceManagementService.createFolderForFlash(parentFolderID,folderName,userID);
return returnWDDXPacket(wddxPacket, response);
@@ -385,6 +394,7 @@
Integer workspaceFolderID = new Integer(WebUtil.readIntParam(request,"workspaceFolderID"));
String mimeType = WebUtil.readStrParam(request,"mimeType");
String path = WebUtil.readStrParam(request,"path");
+ Integer userId = getUserId(request);
String errorPacket = checkResourceNotDummyValue("createWorkspaceFolderContent", workspaceFolderID, FolderContentDTO.FOLDER);
if ( errorPacket != null)
@@ -395,7 +405,7 @@
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
wddxPacket = workspaceManagementService.createWorkspaceFolderContent(contentTypeID,name,description,
workspaceFolderID,
- mimeType,path);
+ mimeType,path,userId);
} catch (Exception e) {
log.error("createWorkspaceFolderContent: Exception occured. contentTypeID "+contentTypeID+" name "+name+" workspaceFolderID "+workspaceFolderID, e);
FlashMessage flashMessage = FlashMessage.getExceptionOccured(IWorkspaceManagementService.MSG_KEY_CREATE_WKF_CONTENT, e.getMessage());
@@ -421,11 +431,11 @@
HttpServletResponse response)throws ServletException, Exception{
Long folderContentID = new Long(WebUtil.readLongParam(request,"folderContentID"));
String path = WebUtil.readStrParam(request,"path");
-
+ Integer userId = getUserId(request);
String wddxPacket = null;
try {
IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
- wddxPacket = workspaceManagementService.updateWorkspaceFolderContent(folderContentID,path);
+ wddxPacket = workspaceManagementService.updateWorkspaceFolderContent(folderContentID,path,userId);
} catch (Exception e) {
log.error("updateWorkspaceFolderContent: Exception occured. path "+path+" folderContentID "+folderContentID, e);
FlashMessage flashMessage = FlashMessage.getExceptionOccured(IWorkspaceManagementService.MSG_KEY_UPDATE_WKF_CONTENT, e.getMessage());
@@ -448,7 +458,7 @@
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws IOException{
- Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
+ Integer userID = getUserId(request);
Long resourceID = new Long(WebUtil.readLongParam(request,RESOURCE_ID));
String resourceType = WebUtil.readStrParam(request,RESOURCE_TYPE);
@@ -510,7 +520,7 @@
HttpServletRequest request,
HttpServletResponse response)throws Exception{
- Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
+ Integer userID = getUserId(request);
String roles_str = WebUtil.readStrParam(request, "roles");
String[] roles = roles_str.split(ROLE_DELIMITER);
@@ -582,7 +592,7 @@
HttpServletRequest request,
HttpServletResponse response)throws Exception{
- Integer userID = new Integer(WebUtil.readIntParam(request,AttributeNames.PARAM_USER_ID));
+ Integer userID = getUserId(request);
Integer orgId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID,true);
String wddxPacket = null;
@@ -596,4 +606,3 @@
}
return returnWDDXPacket(wddxPacket, response); }
}
-