Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -reaa9b5ca1c61bf87f01ef2edbb3362a1b1a85115 -r60e8ee7490502e0d9338ed1958ec14a57dfc043c Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -r27b27d09f51f60c9b0ec71d0054573427debc973 -r60e8ee7490502e0d9338ed1958ec14a57dfc043c Binary files differ Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/ws/WorkspaceDialog.as =================================================================== diff -u -r76462577506141913c7c593f6dab92a5651ffd76 -r60e8ee7490502e0d9338ed1958ec14a57dfc043c --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/ws/WorkspaceDialog.as (.../WorkspaceDialog.as) (revision 76462577506141913c7c593f6dab92a5651ffd76) +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/ws/WorkspaceDialog.as (.../WorkspaceDialog.as) (revision 60e8ee7490502e0d9338ed1958ec14a57dfc043c) @@ -815,11 +815,17 @@ } else if(snode.attributes.data.resourceType==_workspaceModel.RT_LD){ if(snode.parentNode != null) { if(searchForFile(snode.parentNode, resourceTitle_txi.text, true)) { - //run a confirm dialogue as user is about to overwrite a design! - LFMessage.showMessageConfirm(Dictionary.getValue('ws_chk_overwrite_resource'), Proxy.create(this,doWorkspaceDispatch,true)); + var snodeData = treeview.selectedNode.attributes.data; + var isWritable:Boolean = _workspaceModel.isWritableResource(snodeData.resourceType,snodeData.resourceID); + if(isWritable) { + //run a confirm dialogue as user is about to overwrite a design! + LFMessage.showMessageConfirm(Dictionary.getValue('ws_chk_overwrite_resource'), Proxy.create(this,doWorkspaceDispatch,true)); + _workspaceController.clearBusy(); + } + else // don't have permission, file is read-only + LFMessage.showMessageAlert(Dictionary.getValue('ws_no_permission'),null,null) } } - _workspaceController.clearBusy(); } else if(snode.attributes.data.resourceType==_workspaceModel.RT_FOLDER){ if(snode.attributes.data.resourceID < 0){ LFMessage.showMessageAlert(Dictionary.getValue('ws_save_folder_invalid'),null); Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/ws/WorkspaceModel.as =================================================================== diff -u -rba9b21831a72a6e3fbfa8bfbf9aae3b25b4786e5 -r60e8ee7490502e0d9338ed1958ec14a57dfc043c --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/ws/WorkspaceModel.as (.../WorkspaceModel.as) (revision ba9b21831a72a6e3fbfa8bfbf9aae3b25b4786e5) +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/ws/WorkspaceModel.as (.../WorkspaceModel.as) (revision 60e8ee7490502e0d9338ed1958ec14a57dfc043c) @@ -278,7 +278,7 @@ * @param dto * @return */ - public function setFolderContents(dto:Object, openFolder:Boolean){ + public function setFolderContents(dto:Object, openFolder:Boolean){ var nodeToUpdate:XMLNode; Debugger.log('looking for:Folder_'+dto.workspaceFolderID+', parentWorkspaceFolderID:'+dto.parentWorkspaceFolderID,Debugger.GEN,'setFolderContents','org.lamsfoundation.lams.WorkspaceModel'); _global.breakpoint(); @@ -496,18 +496,23 @@ public function isWritableResource(resourceType,resourceID){ var rData = getWorkspaceResource(resourceType+'_'+resourceID).attributes.data; Debugger.log(resourceType+'_'+resourceID+'has permission code:'+rData.permissionCode,Debugger.GEN,'isWritableResource','org.lamsfoundation.lams.WorkspaceModel'); + if(rData.permissionCode == READ_ACCESS){ return false; } if(rData.permissionCode == MEMBERSHIP_ACCESS){ - if (resourceType == "Folder") + if(!rData.readOnly) { //if the file folder is writable + if (resourceType == "Folder") + return true; + } + return false; + } + if(rData.permissionCode == OWNER_ACCESS){ + if(!rData.readOnly) return true; else return false; } - if(rData.permissionCode == OWNER_ACCESS){ - return true; - } if(rData.permissionCode == NO_ACCESS){ return false; }