From: masensio Date: Mon, 18 Nov 2013 12:41:47 +0000 (+0100) Subject: OC-2107: Change validation name method: ValidateName and ValidatePath X-Git-Tag: oc-android-1.5.5~126^2~4 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/4a4d78821ad11a864bd0f025cf35961857272b3e OC-2107: Change validation name method: ValidateName and ValidatePath --- diff --git a/oc_framework-test-project/oc_framework-test-test/src/com/owncloud/android/oc_framework_test_project/test/CreateFolderTest.java b/oc_framework-test-project/oc_framework-test-test/src/com/owncloud/android/oc_framework_test_project/test/CreateFolderTest.java index 5f847476..0c4b8efa 100644 --- a/oc_framework-test-project/oc_framework-test-test/src/com/owncloud/android/oc_framework_test_project/test/CreateFolderTest.java +++ b/oc_framework-test-project/oc_framework-test-test/src/com/owncloud/android/oc_framework_test_project/test/CreateFolderTest.java @@ -38,19 +38,17 @@ public class CreateFolderTest extends ActivityInstrumentationTestCase2 0 && name.indexOf("/") < (name.length() - 1 ) ) || + if (fileName.contains(PATH_SEPARATOR) || fileName.contains("\\") || fileName.contains("<") || fileName.contains(">") || fileName.contains(":") || fileName.contains("\"") || fileName.contains("|") || fileName.contains("?") || fileName.contains("*")) { @@ -33,4 +32,21 @@ public class FileUtils { } return result; } + + /** + * Validate the path to detect if contains any forbidden character: \ , < , > , : , " , | , ? , * + * @param path + * @return + */ + public static boolean validatePath(String path) { + boolean result = true; + + Log.d("FileUtils", "path ....... " + path); + if (path.contains("\\") || path.contains("<") || path.contains(">") || + path.contains(":") || path.contains("\"") || path.contains("|") || + path.contains("?") || path.contains("*")) { + result = false; + } + return result; + } } diff --git a/src/com/owncloud/android/files/services/FileUploader.java b/src/com/owncloud/android/files/services/FileUploader.java index 6e80fd50..d9f3a32c 100644 --- a/src/com/owncloud/android/files/services/FileUploader.java +++ b/src/com/owncloud/android/files/services/FileUploader.java @@ -564,8 +564,7 @@ public class FileUploader extends Service implements OnDatatransferProgressListe RemoteOperation operation = new ExistenceCheckOperation(pathToGrant, this, false); RemoteOperationResult result = operation.execute(mUploadClient); if (!result.isSuccess() && result.getCode() == ResultCode.FILE_NOT_FOUND && mCurrentUpload.isRemoteFolderToBeCreated()) { - operation = new CreateFolderOperation( mCurrentUpload.getFileName(), - pathToGrant, + operation = new CreateFolderOperation( pathToGrant, true, mStorageManager ); result = operation.execute(mUploadClient); diff --git a/src/com/owncloud/android/operations/CreateFolderOperation.java b/src/com/owncloud/android/operations/CreateFolderOperation.java index 57843332..1cf1f84d 100644 --- a/src/com/owncloud/android/operations/CreateFolderOperation.java +++ b/src/com/owncloud/android/operations/CreateFolderOperation.java @@ -39,7 +39,6 @@ public class CreateFolderOperation extends RemoteOperation implements OnRemoteOp private static final String TAG = CreateFolderOperation.class.getSimpleName(); - protected String mFolderName; protected String mRemotePath; protected boolean mCreateFullPath; protected FileDataStorageManager mStorageManager; @@ -47,12 +46,10 @@ public class CreateFolderOperation extends RemoteOperation implements OnRemoteOp /** * Constructor * - * @param remotePath Full path to the new directory to create in the remote server. * @param createFullPath 'True' means that all the ancestor folders should be created if don't exist yet. * @param storageManager Reference to the local database corresponding to the account where the file is contained. */ - public CreateFolderOperation(String folderName, String remotePath, boolean createFullPath, FileDataStorageManager storageManager) { - mFolderName = folderName; + public CreateFolderOperation(String remotePath, boolean createFullPath, FileDataStorageManager storageManager) { mRemotePath = remotePath; mCreateFullPath = createFullPath; mStorageManager = storageManager; @@ -62,7 +59,7 @@ public class CreateFolderOperation extends RemoteOperation implements OnRemoteOp @Override protected RemoteOperationResult run(WebdavClient client) { - CreateRemoteFolderOperation operation = new CreateRemoteFolderOperation(mFolderName, mRemotePath, mCreateFullPath); + CreateRemoteFolderOperation operation = new CreateRemoteFolderOperation(mRemotePath, mCreateFullPath); RemoteOperationResult result = operation.execute(client); if (result.isSuccess()) { diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 199f8c23..37455d2e 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -1439,7 +1439,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa // Create directory path += newDirectoryName + OCFile.PATH_SEPARATOR; - RemoteOperation operation = new CreateFolderOperation(newDirectoryName, path, false, mStorageManager); + RemoteOperation operation = new CreateFolderOperation(path, false, mStorageManager); operation.execute( getAccount(), FileDisplayActivity.this, FileDisplayActivity.this,