summaryrefslogtreecommitdiff
path: root/dev-cpp/libcmis/files/libcmis-0.5.2-onedrive-do-not-allow-copying.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/libcmis/files/libcmis-0.5.2-onedrive-do-not-allow-copying.patch')
-rw-r--r--dev-cpp/libcmis/files/libcmis-0.5.2-onedrive-do-not-allow-copying.patch430
1 files changed, 430 insertions, 0 deletions
diff --git a/dev-cpp/libcmis/files/libcmis-0.5.2-onedrive-do-not-allow-copying.patch b/dev-cpp/libcmis/files/libcmis-0.5.2-onedrive-do-not-allow-copying.patch
new file mode 100644
index 000000000000..d14f36830f7b
--- /dev/null
+++ b/dev-cpp/libcmis/files/libcmis-0.5.2-onedrive-do-not-allow-copying.patch
@@ -0,0 +1,430 @@
+From d55b04376e509997b01e68bcacebd4cad2ec4002 Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon@redhat.com>
+Date: Sat, 30 Mar 2019 16:18:40 +0100
+Subject: [PATCH] onedrive-session: do not allow copying
+
+---
+ qa/libcmis/test-onedrive.cxx | 102 ++++++++++++++++---------------
+ src/libcmis/onedrive-session.cxx | 5 --
+ src/libcmis/onedrive-session.hxx | 4 +-
+ 3 files changed, 54 insertions(+), 57 deletions(-)
+
+diff --git a/qa/libcmis/test-onedrive.cxx b/qa/libcmis/test-onedrive.cxx
+index 1df1b30..b15edd1 100644
+--- a/qa/libcmis/test-onedrive.cxx
++++ b/qa/libcmis/test-onedrive.cxx
+@@ -68,6 +68,8 @@ static const string SCOPE ( "https://scope/url" );
+ static const string REDIRECT_URI ("redirect:uri" );
+ static const string BASE_URL ( "https://base/url" );
+
++typedef std::unique_ptr<OneDriveSession> OneDriveSessionPtr;
++
+ class OneDriveTest : public CppUnit::TestFixture
+ {
+ public:
+@@ -116,10 +118,10 @@ class OneDriveTest : public CppUnit::TestFixture
+ CPPUNIT_TEST_SUITE_END( );
+
+ private:
+- OneDriveSession getTestSession( string username, string password );
++ OneDriveSessionPtr getTestSession( string username, string password );
+ };
+
+-OneDriveSession OneDriveTest::getTestSession( string username, string password )
++OneDriveSessionPtr OneDriveTest::getTestSession( string username, string password )
+ {
+ libcmis::OAuth2DataPtr oauth2(
+ new libcmis::OAuth2Data( AUTH_URL, TOKEN_URL, SCOPE,
+@@ -154,12 +156,12 @@ OneDriveSession OneDriveTest::getTestSession( string username, string password )
+ curl_mockup_addResponse ( TOKEN_URL.c_str( ), empty.c_str( ), "POST",
+ DATA_DIR "/onedrive/token-response.json", 200, true );
+
+- return OneDriveSession( BASE_URL, username, password, oauth2, false );
++ return OneDriveSessionPtr( new OneDriveSession( BASE_URL, username, password, oauth2, false ) );
+ }
+
+ void OneDriveTest::sessionAuthenticationTest( )
+ {
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ string empty;
+
+ // Check token request
+@@ -179,11 +181,11 @@ void OneDriveTest::sessionAuthenticationTest( )
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(
+ "Wrong access token",
+ string ( "mock-access-token" ),
+- session.m_oauth2Handler->getAccessToken( ));
++ session->m_oauth2Handler->getAccessToken( ));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(
+ "Wrong refresh token",
+ string ("mock-refresh-token"),
+- session.m_oauth2Handler->getRefreshToken( ));
++ session->m_oauth2Handler->getRefreshToken( ));
+ }
+
+ void OneDriveTest::sessionExpiryTokenGetTest( )
+@@ -192,7 +194,7 @@ void OneDriveTest::sessionExpiryTokenGetTest( )
+ // We need to use the refresh key to get a new one.
+
+ curl_mockup_reset( );
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+
+ curl_mockup_reset( );
+ static const string objectId("aFileId");
+@@ -206,17 +208,17 @@ void OneDriveTest::sessionExpiryTokenGetTest( )
+ try
+ {
+ // GET expires, need to refresh then GET again
+- libcmis::ObjectPtr obj = session.getObject( objectId );
++ libcmis::ObjectPtr obj = session->getObject( objectId );
+ }
+ catch ( ... )
+ {
+- if ( session.getHttpStatus( ) == 401 )
++ if ( session->getHttpStatus( ) == 401 )
+ {
+ // Check if access token is refreshed
+ CPPUNIT_ASSERT_EQUAL_MESSAGE(
+ "wrong access token",
+ string ( "new-access-token" ),
+- session.m_oauth2Handler->getAccessToken( ) );
++ session->m_oauth2Handler->getAccessToken( ) );
+ }
+ }
+ }
+@@ -225,8 +227,8 @@ void OneDriveTest::getRepositoriesTest( )
+ {
+ curl_mockup_reset( );
+
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
+- vector< libcmis::RepositoryPtr > actual = session.getRepositories( );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
++ vector< libcmis::RepositoryPtr > actual = session->getRepositories( );
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Wrong number of repositories", size_t( 1 ),
+ actual.size( ) );
+@@ -239,9 +241,9 @@ void OneDriveTest::getObjectTypeDocumentTest()
+ {
+ curl_mockup_reset( );
+
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+
+- libcmis::ObjectTypePtr actual = session.getType("cmis:document");
++ libcmis::ObjectTypePtr actual = session->getType("cmis:document");
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Wrong type ID", string("cmis:document"),
+ actual->getId() );
+@@ -282,9 +284,9 @@ void OneDriveTest::getObjectTypeFolderTest()
+ {
+ curl_mockup_reset( );
+
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+
+- libcmis::ObjectTypePtr actual = session.getType("cmis:folder");
++ libcmis::ObjectTypePtr actual = session->getType("cmis:folder");
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Wrong type ID", string("cmis:folder"),
+ actual->getId() );
+@@ -322,11 +324,11 @@ void OneDriveTest::getObjectTest()
+ {
+ static const string objectId ("aFileId");
+
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ string url = BASE_URL + "/" + objectId;
+ curl_mockup_addResponse ( url.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/file.json", 200, true);
+- libcmis::ObjectPtr object = session.getObject( objectId );
++ libcmis::ObjectPtr object = session->getObject( objectId );
+ boost::shared_ptr<OneDriveObject> obj = boost::dynamic_pointer_cast
+ <OneDriveObject>( object );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Wrong Object Id", objectId,
+@@ -338,12 +340,12 @@ void OneDriveTest::filePropertyTest( )
+ curl_mockup_reset( );
+ static const string objectId ("aFileId");
+
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ string url = BASE_URL + "/" + objectId;
+ curl_mockup_addResponse( url.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/file.json", 200, true);
+
+- libcmis::ObjectPtr obj = session.getObject( objectId );
++ libcmis::ObjectPtr obj = session->getObject( objectId );
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Wrong creation date",
+ string ( "2014-06-09T08:24:04+0000" ),
+@@ -365,7 +367,7 @@ void OneDriveTest::filePropertyTest( )
+ void OneDriveTest::deleteTest( )
+ {
+ curl_mockup_reset( );
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+
+ const string objectId( "aFileId" );
+
+@@ -374,7 +376,7 @@ void OneDriveTest::deleteTest( )
+ "GET", DATA_DIR "/onedrive/file.json", 200, true);
+ curl_mockup_addResponse( url.c_str( ),"", "DELETE", "", 204, false);
+
+- libcmis::ObjectPtr object = session.getObject( objectId );
++ libcmis::ObjectPtr object = session->getObject( objectId );
+
+ object->remove( );
+ const struct HttpRequest* deleteRequest = curl_mockup_getRequest( url.c_str( ), "", "DELETE" );
+@@ -385,7 +387,7 @@ void OneDriveTest::deleteTest( )
+ void OneDriveTest::updatePropertiesTest( )
+ {
+ curl_mockup_reset( );
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ const string objectId( "aFileId" );
+ const string newObjectId( "aNewFileId" );
+
+@@ -399,8 +401,8 @@ void OneDriveTest::updatePropertiesTest( )
+ curl_mockup_addResponse( objectUrl.c_str( ), "",
+ "PUT", DATA_DIR "/onedrive/updated-file.json", 200, true );
+
+- libcmis::ObjectPtr object = session.getObject( objectId );
+- libcmis::ObjectPtr newObject = session.getObject( newObjectId );
++ libcmis::ObjectPtr object = session->getObject( objectId );
++ libcmis::ObjectPtr newObject = session->getObject( newObjectId );
+
+ object->updateProperties( newObject->getProperties( ) );
+
+@@ -424,12 +426,12 @@ void OneDriveTest::getFileAllowableActionsTest( )
+ curl_mockup_reset( );
+ static const string objectId ("aFileId");
+
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ string url = BASE_URL + "/" + objectId;
+ curl_mockup_addResponse( url.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/file.json", 200, true);
+
+- libcmis::ObjectPtr object = session.getObject( objectId );
++ libcmis::ObjectPtr object = session->getObject( objectId );
+
+ boost::shared_ptr< libcmis::AllowableActions > actions = object->getAllowableActions( );
+
+@@ -446,12 +448,12 @@ void OneDriveTest::getFolderAllowableActionsTest( )
+ curl_mockup_reset( );
+ static const string objectId ("aFolderId");
+
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ string url = BASE_URL + "/" + objectId;
+ curl_mockup_addResponse( url.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/folder.json", 200, true);
+
+- libcmis::ObjectPtr object = session.getObject( objectId );
++ libcmis::ObjectPtr object = session->getObject( objectId );
+
+ boost::shared_ptr< libcmis::AllowableActions > actions = object->getAllowableActions( );
+
+@@ -468,7 +470,7 @@ void OneDriveTest::getFolderTest( )
+ {
+ curl_mockup_reset( );
+
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ static const string folderId( "aFolderId" );
+ static const string parentId( "aParentId" );
+ string url = BASE_URL + "/" + folderId;
+@@ -480,7 +482,7 @@ void OneDriveTest::getFolderTest( )
+ curl_mockup_addResponse( parentUrl.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/parent-folder.json", 200, true);
+
+- libcmis::FolderPtr folder = session.getFolder( folderId );
++ libcmis::FolderPtr folder = session->getFolder( folderId );
+ CPPUNIT_ASSERT_MESSAGE( "Fetched object should be an instance of libcmis::FolderPtr",
+ NULL != folder );
+
+@@ -499,15 +501,15 @@ void OneDriveTest::getChildrenTest( )
+ {
+ curl_mockup_reset( );
+
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ static const string folderId ("aFolderId");
+ string url = BASE_URL + "/" + folderId;
+ curl_mockup_addResponse( url.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/folder.json", 200, true);
+
+- libcmis::ObjectPtr obj = session.getObject( folderId );
++ libcmis::ObjectPtr obj = session->getObject( folderId );
+
+- libcmis::FolderPtr folder = session.getFolder( folderId );
++ libcmis::FolderPtr folder = session->getFolder( folderId );
+ CPPUNIT_ASSERT_MESSAGE( "Fetched object should be an instance of libcmis::FolderPtr",
+ NULL != folder );
+
+@@ -536,7 +538,7 @@ void OneDriveTest::getChildrenTest( )
+ void OneDriveTest::moveTest( )
+ {
+ curl_mockup_reset( );
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ const string objectId( "aFileId" );
+ const string sourceId( "aFolderId" );
+ const string desId( "aParentId" );
+@@ -554,9 +556,9 @@ void OneDriveTest::moveTest( )
+ curl_mockup_addResponse( sourceUrl.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/folder.json", 200, true );
+
+- libcmis::ObjectPtr object = session.getObject( objectId );
+- libcmis::FolderPtr source = session.getFolder( sourceId );
+- libcmis::FolderPtr destination = session.getFolder( desId );
++ libcmis::ObjectPtr object = session->getObject( objectId );
++ libcmis::FolderPtr source = session->getFolder( sourceId );
++ libcmis::FolderPtr destination = session->getFolder( desId );
+
+ object->move( source, destination );
+ const char* moveRequest = curl_mockup_getRequestBody( url.c_str( ), "method=MOVE", "POST" );
+@@ -570,12 +572,12 @@ void OneDriveTest::getDocumentTest( )
+ curl_mockup_reset( );
+ static const string objectId ("aFileId");
+
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ string url = BASE_URL + "/" + objectId;
+ curl_mockup_addResponse( url.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/file.json", 200, true);
+
+- libcmis::ObjectPtr obj = session.getObject( objectId );
++ libcmis::ObjectPtr obj = session->getObject( objectId );
+
+ // Check if we got the document object.
+ libcmis::DocumentPtr document = boost::dynamic_pointer_cast< libcmis::Document >( obj );
+@@ -599,7 +601,7 @@ void OneDriveTest::getDocumentTest( )
+ void OneDriveTest::getDocumentParentTest( )
+ {
+ curl_mockup_reset( );
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+
+ static const string documentId( "aFileId" );
+ static const string parentId( "aParentId" );
+@@ -611,7 +613,7 @@ void OneDriveTest::getDocumentParentTest( )
+ curl_mockup_addResponse( parentUrl.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/parent-folder.json", 200, true);
+
+- libcmis::ObjectPtr object = session.getObject( "aFileId" );
++ libcmis::ObjectPtr object = session->getObject( "aFileId" );
+ libcmis::DocumentPtr document = boost::dynamic_pointer_cast< libcmis::Document >( object );
+
+ CPPUNIT_ASSERT_MESSAGE( "Document expected", document != NULL );
+@@ -626,7 +628,7 @@ void OneDriveTest::getDocumentParentTest( )
+ void OneDriveTest::getContentStreamTest( )
+ {
+ curl_mockup_reset( );
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+
+ static const string documentId( "aFileId" );
+ string url = BASE_URL + "/" + documentId;
+@@ -636,7 +638,7 @@ void OneDriveTest::getContentStreamTest( )
+ string downloadUrl = "sourceUrl";
+ curl_mockup_addResponse( downloadUrl.c_str( ), "", "GET", expectedContent.c_str( ), 0, false );
+
+- libcmis::ObjectPtr object = session.getObject( documentId );
++ libcmis::ObjectPtr object = session->getObject( documentId );
+ libcmis::DocumentPtr document = boost::dynamic_pointer_cast< libcmis::Document >( object );
+
+ try
+@@ -658,7 +660,7 @@ void OneDriveTest::getContentStreamTest( )
+ void OneDriveTest::setContentStreamTest( )
+ {
+ curl_mockup_reset( );
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+
+ const string documentId( "aFileId" );
+
+@@ -667,7 +669,7 @@ void OneDriveTest::setContentStreamTest( )
+ curl_mockup_addResponse( url.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/file.json", 200, true);
+
+- libcmis::ObjectPtr object = session.getObject( documentId );
++ libcmis::ObjectPtr object = session->getObject( documentId );
+ libcmis::DocumentPtr document = boost::dynamic_pointer_cast< libcmis::Document >( object );
+
+ curl_mockup_addResponse( url.c_str( ), "",
+@@ -701,7 +703,7 @@ void OneDriveTest::setContentStreamTest( )
+ void OneDriveTest::createDocumentTest( )
+ {
+ curl_mockup_reset( );
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ const string documentId( "aFileId" );
+ const string folderId( "aParentId" );
+ const string filename( "aFileName" );
+@@ -719,7 +721,7 @@ void OneDriveTest::createDocumentTest( )
+ curl_mockup_addResponse( documentUrl.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/file.json", 200, true );
+
+- libcmis::FolderPtr parent = session.getFolder( folderId );
++ libcmis::FolderPtr parent = session->getFolder( folderId );
+ try
+ {
+ string expectedContent( "Test set content stream" );
+@@ -744,7 +746,7 @@ void OneDriveTest::createDocumentTest( )
+ void OneDriveTest::getObjectByPathTest( )
+ {
+ curl_mockup_reset( );
+- OneDriveSession session = getTestSession( USERNAME, PASSWORD );
++ OneDriveSessionPtr session = getTestSession( USERNAME, PASSWORD );
+ const string documentId( "rightFile" );
+ const string wrongDocumentId( "wrongFile" );
+ const string folderAId( "folderA" ); // root
+@@ -772,7 +774,7 @@ void OneDriveTest::getObjectByPathTest( )
+ curl_mockup_addResponse( folderCUrl.c_str( ), "",
+ "GET", DATA_DIR "/onedrive/folderC.json", 200, true );
+
+- libcmis::ObjectPtr object = session.getObjectByPath( path );
++ libcmis::ObjectPtr object = session->getObjectByPath( path );
+ CPPUNIT_ASSERT_EQUAL_MESSAGE( "Wrong objectFetched", documentId, object->getId( ) );
+ }
+
+diff --git a/src/libcmis/onedrive-session.cxx b/src/libcmis/onedrive-session.cxx
+index c6f4270..a6652b4 100644
+--- a/src/libcmis/onedrive-session.cxx
++++ b/src/libcmis/onedrive-session.cxx
+@@ -54,11 +54,6 @@ OneDriveSession::OneDriveSession ( string baseUrl,
+ }
+ }
+
+-OneDriveSession::OneDriveSession( const OneDriveSession& copy ) :
+- BaseSession( copy )
+-{
+-}
+-
+ OneDriveSession::OneDriveSession() :
+ BaseSession()
+ {
+diff --git a/src/libcmis/onedrive-session.hxx b/src/libcmis/onedrive-session.hxx
+index 441e110..f11fbaf 100644
+--- a/src/libcmis/onedrive-session.hxx
++++ b/src/libcmis/onedrive-session.hxx
+@@ -42,8 +42,6 @@ class OneDriveSession : public BaseSession
+ libcmis::OAuth2DataPtr oauth2,
+ bool verbose = false );
+
+- OneDriveSession( const OneDriveSession& copy );
+-
+ ~OneDriveSession ( );
+
+ virtual libcmis::RepositoryPtr getRepository( );
+@@ -64,6 +62,8 @@ class OneDriveSession : public BaseSession
+
+ private:
+ OneDriveSession( );
++ OneDriveSession( const OneDriveSession& copy ) = delete;
++ OneDriveSession& operator=( const OneDriveSession& copy ) = delete;
+ };
+
+ #endif /* _ONEDRIVE_SESSION_HXX_ */