Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b155fb8 authored by David A. Velasco's avatar David A. Velasco
Browse files

Merge pull request #34 from owncloud/update_error_messages_for_non_permitted_actions

Added error codes and controls for non permitted actions
parents 4e3814d6 7636d9e0
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -33,3 +33,4 @@
        android:targetSdkVersion="19" />
        android:targetSdkVersion="19" />


</manifest>
</manifest>
+17 −18
Original line number Original line Diff line number Diff line
@@ -43,14 +43,13 @@ import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.http.HttpStatus;
import org.apache.http.HttpStatus;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.params.CoreProtocolPNames;


import android.net.Uri;
import android.util.Log;

import com.owncloud.android.lib.common.OwnCloudCredentialsFactory.OwnCloudAnonymousCredentials;
import com.owncloud.android.lib.common.OwnCloudCredentialsFactory.OwnCloudAnonymousCredentials;
import com.owncloud.android.lib.common.accounts.AccountUtils;
import com.owncloud.android.lib.common.accounts.AccountUtils;
import com.owncloud.android.lib.common.network.WebdavUtils;
import com.owncloud.android.lib.common.network.WebdavUtils;



import android.net.Uri;
import android.util.Log;

public class OwnCloudClient extends HttpClient {
public class OwnCloudClient extends HttpClient {
	
	
    private static final String TAG = OwnCloudClient.class.getSimpleName();
    private static final String TAG = OwnCloudClient.class.getSimpleName();
@@ -88,7 +87,7 @@ public class OwnCloudClient extends HttpClient {
        		HttpVersion.HTTP_1_1);
        		HttpVersion.HTTP_1_1);
        
        
        getParams().setCookiePolicy(
        getParams().setCookiePolicy(
        		CookiePolicy.BROWSER_COMPATIBILITY);	// to keep sessions
        		CookiePolicy.IGNORE_COOKIES);
        getParams().setParameter(
        getParams().setParameter(
        		PARAM_SINGLE_COOKIE_HEADER, 			// to avoid problems with some web servers
        		PARAM_SINGLE_COOKIE_HEADER, 			// to avoid problems with some web servers
        		PARAM_SINGLE_COOKIE_HEADER_VALUE);
        		PARAM_SINGLE_COOKIE_HEADER_VALUE);
@@ -189,8 +188,8 @@ public class OwnCloudClient extends HttpClient {
	        Log.d(TAG + " #" + mInstanceNumber, "REQUEST " + 
	        Log.d(TAG + " #" + mInstanceNumber, "REQUEST " + 
	        		method.getName() + " " + method.getPath());
	        		method.getName() + " " + method.getPath());
        
        
	        logCookiesAtRequest(method.getRequestHeaders(), "before");
//	        logCookiesAtRequest(method.getRequestHeaders(), "before");
	        logCookiesAtState("before");
//	        logCookiesAtState("before");
	        
	        
	        int status = super.executeMethod(method);
	        int status = super.executeMethod(method);
        
        
@@ -198,9 +197,9 @@ public class OwnCloudClient extends HttpClient {
	        	status = patchRedirection(status, method);
	        	status = patchRedirection(status, method);
	        }
	        }


	        logCookiesAtRequest(method.getRequestHeaders(), "after");
//	        logCookiesAtRequest(method.getRequestHeaders(), "after");
	        logCookiesAtState("after");
//	        logCookiesAtState("after");
	        logSetCookiesAtResponse(method.getResponseHeaders());
//	        logSetCookiesAtResponse(method.getResponseHeaders());
	        
	        
	        return status;
	        return status;
	        
	        
@@ -354,7 +353,7 @@ public class OwnCloudClient extends HttpClient {
		for (Cookie cookie : cookies) {
		for (Cookie cookie : cookies) {
			cookiesString = cookiesString + cookie.toString() + ";";
			cookiesString = cookiesString + cookie.toString() + ";";


			logCookie(cookie);
			// logCookie(cookie);
		}
		}


		return cookiesString;
		return cookiesString;
+5 −0
Original line number Original line Diff line number Diff line
@@ -29,6 +29,8 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Iterator;
import java.util.Map;
import java.util.Map;


import org.apache.commons.httpclient.cookie.CookiePolicy;

import android.accounts.Account;
import android.accounts.Account;
import android.accounts.AuthenticatorException;
import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException;
import android.accounts.OperationCanceledException;
@@ -102,6 +104,9 @@ public class SingleSessionManager implements OwnCloudClientManager {
    				account.getBaseUri(), 
    				account.getBaseUri(), 
    				context.getApplicationContext(), 
    				context.getApplicationContext(), 
    				true);	// TODO remove dependency on OwnCloudClientFactory
    				true);	// TODO remove dependency on OwnCloudClientFactory
            client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
            	// enable cookie tracking
            
    		
    		
    		// Restore Cookies ??
    		// Restore Cookies ??
    		AccountUtils.restoreCookies(accountName, client, context);		
    		AccountUtils.restoreCookies(accountName, client, context);		
+6 −6
Original line number Original line Diff line number Diff line
@@ -29,11 +29,6 @@ import java.io.IOException;


import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.Cookie;


import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.OwnCloudCredentials;
import com.owncloud.android.lib.common.OwnCloudCredentialsFactory;
import com.owncloud.android.lib.resources.status.OwnCloudVersion;

import android.accounts.Account;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AccountManager;
import android.accounts.AccountsException;
import android.accounts.AccountsException;
@@ -43,6 +38,11 @@ import android.content.Context;
import android.net.Uri;
import android.net.Uri;
import android.util.Log;
import android.util.Log;


import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.OwnCloudCredentials;
import com.owncloud.android.lib.common.OwnCloudCredentialsFactory;
import com.owncloud.android.lib.resources.status.OwnCloudVersion;

public class AccountUtils {
public class AccountUtils {
	
	
	private static final String TAG = AccountUtils.class.getSimpleName();
	private static final String TAG = AccountUtils.class.getSimpleName();
@@ -220,7 +220,7 @@ public class AccountUtils {
			String cookiesString = client.getCookiesString();
			String cookiesString = client.getCookiesString();
			if (cookiesString != "") {
			if (cookiesString != "") {
				ac.setUserData(savedAccount, Constants.KEY_COOKIES, cookiesString); 
				ac.setUserData(savedAccount, Constants.KEY_COOKIES, cookiesString); 
				Log.d(TAG, "Saving Cookies: "+ cookiesString );
				// Log.d(TAG, "Saving Cookies: "+ cookiesString );
			}
			}
		}
		}


+17 −19
Original line number Original line Diff line number Diff line
@@ -35,32 +35,30 @@ import android.net.Uri;
public class WebdavUtils {
public class WebdavUtils {
    public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat(
    public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat(
            "dd.MM.yyyy hh:mm");
            "dd.MM.yyyy hh:mm");
    private static final String DATETIME_FORMATS[] = {
            "yyyy-MM-dd'T'HH:mm:ss'Z'",
            "EEE, dd MMM yyyy HH:mm:ss zzz",
            "yyyy-MM-dd'T'HH:mm:ss.sss'Z'",
            "yyyy-MM-dd'T'HH:mm:ssZ",
            "EEE MMM dd HH:mm:ss zzz yyyy",
            "EEEEEE, dd-MMM-yy HH:mm:ss zzz",
            "EEE MMMM d HH:mm:ss yyyy",
            "yyyy-MM-dd hh:mm:ss" };
    
    
    public static String prepareXmlForPropFind() {
    private static final SimpleDateFormat DATETIME_FORMATS[] = {
        String ret = "<?xml version=\"1.0\" ?><D:propfind xmlns:D=\"DAV:\"><D:allprop/></D:propfind>";
    	new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US),
        return ret;
    	new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US),	
    }
		new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'", Locale.US),

		new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US),
    public static String prepareXmlForPatch() {
		new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US),
        return "<?xml version=\"1.0\" ?><D:propertyupdate xmlns:D=\"DAV:\"></D:propertyupdate>";
		new SimpleDateFormat("EEEEEE, dd-MMM-yy HH:mm:ss zzz", Locale.US),
    }
		new SimpleDateFormat("EEE MMMM d HH:mm:ss yyyy", Locale.US),
		new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.US)
	};


    public static Date parseResponseDate(String date) {
    public static Date parseResponseDate(String date) {
        Date returnDate = null;
        Date returnDate = null;
        SimpleDateFormat format = null;
        for (int i = 0; i < DATETIME_FORMATS.length; ++i) {
        for (int i = 0; i < DATETIME_FORMATS.length; ++i) {
            try {
            try {
                returnDate = new SimpleDateFormat (DATETIME_FORMATS[i], Locale.US).parse(date);
            	format = DATETIME_FORMATS[i];
            	synchronized(format) {
            		returnDate = format.parse(date);
            	}
                return returnDate;
                return returnDate;
            } catch (ParseException e) {
            } catch (ParseException e) {
            	// this is not the format
            }
            }
        }
        }
        return null;
        return null;
Loading