Skip to content

Commit

Permalink
new version 1.0.3
Browse files Browse the repository at this point in the history
  • Loading branch information
prrvchr committed Nov 7, 2023
1 parent 7ab0088 commit 98d3b56
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 173 deletions.
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

**The use of this software subjects you to our [Terms Of Use][3] and [Data Protection Policy][4].**

# version [1.0.2][5]
# version [1.0.3][5]

## Introduction:

Expand Down Expand Up @@ -67,15 +67,15 @@ ___
It seems important that the file was not renamed when it was downloaded.
If necessary, rename it before installing it.

- Install ![OAuth2OOo logo][17] **[OAuth2OOo.oxt][18]** extension version 1.1.1.
- Install ![OAuth2OOo logo][17] **[OAuth2OOo.oxt][18]** extension version 1.2.0.

You must first install this extension, if it is not already installed.

- Install ![jdbcDriverOOo logo][19] **[jdbcDriverOOo.oxt][20]** extension version 1.0.5.

You must install this extension, if it is not already installed.

- Install ![gDriveOOo logo][1] **[gDriveOOo.oxt][21]** extension version 1.0.2.
- Install ![gDriveOOo logo][1] **[gDriveOOo.oxt][21]** extension version 1.0.3.

Restart LibreOffice / OpenOffice after installation.

Expand Down Expand Up @@ -184,7 +184,11 @@ Although this functionality is only needed for gDriveOOo, it is implemented glob

- Many other things...

### What remains to be done for version 1.0.2:
### What has been done for version 1.0.3:

- Support for version **1.2.0** of the **OAuth2OOo** extension. Previous versions will not work with **OAuth2OOo** extension 1.2.0 or higher.

### What remains to be done for version 1.0.3:

- Add new language for internationalization...

Expand Down
12 changes: 8 additions & 4 deletions README_fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

**L'utilisation de ce logiciel vous soumet à nos [Conditions d'utilisation][3] et à notre [Politique de protection des données][4].**

# version [1.0.2][5]
# version [1.0.3][5]

## Introduction:

Expand Down Expand Up @@ -67,15 +67,15 @@ ___
Il semble important que le fichier n'ait pas été renommé lors de son téléchargement.
Si nécessaire, renommez-le avant de l'installer.

- Installer l'extension ![OAuth2OOo logo][17] **[OAuth2OOo.oxt][18]** version 1.1.1.
- Installer l'extension ![OAuth2OOo logo][17] **[OAuth2OOo.oxt][18]** version 1.2.0.

Vous devez d'abord installer cette extension, si elle n'est pas déjà installée.

- Installer l'extension ![jdbcDriverOOo logo][19] **[jdbcDriverOOo.oxt][20]** version 1.0.5.

Vous devez installer cette extension, si elle n'est pas déjà installée.

- Installer l'extension ![gDriveOOo logo][1] **[gDriveOOo.oxt][21]** version 1.0.2.
- Installer l'extension ![gDriveOOo logo][1] **[gDriveOOo.oxt][21]** version 1.0.3.

Redémarrez LibreOffice / OpenOffice après l'installation.

Expand Down Expand Up @@ -184,7 +184,11 @@ Bien que cette fonctionnalité ne soit nécessaire que pour gDriveOOo, elle est

- Encore plein d'autres choses...

### Que reste-t-il à faire pour la version 1.0.2:
### Ce qui a été fait pour la version 1.0.3:

- Prise en charge de la version 1.2.0 de l'extension **OAuth2OOo**. Les versions précédentes ne fonctionneront pas avec l'extension **OAuth2OOo** 1.2.0 ou ultérieure.

### Que reste-t-il à faire pour la version 1.0.3:

- Ajouter de nouvelles langue pour l'internationalisation...

Expand Down
Binary file modified gDriveOOo.oxt
Binary file not shown.
2 changes: 1 addition & 1 deletion source/gDriveOOo/description.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
xmlns="http://openoffice.org/extensions/description/2006"
xmlns:d="http://openoffice.org/extensions/description/2006"
xmlns:xlink="http://www.w3.org/1999/xlink">
<version value="1.0.2"/>
<version value="1.0.3"/>
<identifier value="io.github.prrvchr.gDriveOOo"/>
<platform value="all"/>
<dependencies>
Expand Down
Binary file modified source/gDriveOOo/dist/gDriveOOo.oxt
Binary file not shown.
126 changes: 2 additions & 124 deletions uno/lib/uno/ucb/ucp/contentlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,9 @@
import uno
import unohelper

from com.sun.star.container import XIndexAccess
from com.sun.star.sdb import XInteractionSupplyParameters
from com.sun.star.sdbc import XRow
from com.sun.star.sdbc import XResultSet
from com.sun.star.sdbc import XResultSetMetaDataSupplier
from com.sun.star.task import XInteractionRequest
from com.sun.star.task import XInteractionAbort
from com.sun.star.ucb import XContentAccess
from com.sun.star.ucb import XDynamicResultSet
from com.sun.star.ucb import XCommandInfo
Expand All @@ -54,125 +50,6 @@
import traceback


class NoOAuth2(object):
def __eq__(self, other):
return False

def __ne__(self, other):
return not self == other

def __call__(self, request):
return request


class OAuth2OOo(NoOAuth2):
def __init__(self, ctx, scheme, username=None):
self.service = ctx.ServiceManager.createInstanceWithContext(g_oauth2, ctx)
self.service.ResourceUrl = scheme
if username is not None:
self.service.UserName = username

@property
def UserName(self):
return self.service.UserName
@UserName.setter
def UserName(self, username):
self.service.UserName = username
@property
def Scheme(self):
return self.service.ResourceUrl

def __eq__(self, other):
return all((self.UserName == getattr(other, 'UserName', None),
self.Scheme == getattr(other, 'Scheme', None)))

def __call__(self, r):
r.headers['Authorization'] = self.service.getToken('Bearer %s')
return r


class InteractionAbort(unohelper.Base,
XInteractionAbort):
# XInteractionAbort
def select(self):
pass


class InteractionSupplyParameters(unohelper.Base,
XInteractionSupplyParameters):
def __init__(self, result):
self._result = result
self._username = ''
# XInteractionSupplyParameters
def setParameters(self, properties):
for property in properties:
if property.Name == 'UserName':
self._username = property.Value
def select(self):
self._result.Value = self._username
self._result.IsPresent = True


class InteractionRequestParameters(unohelper.Base,
XInteractionRequest):
def __init__(self, source, connection, message, result):
self.request = getParametersRequest(source, connection, message)
self.request.Parameters = RequestParameters(message)
self.continuations = (InteractionSupplyParameters(result), InteractionAbort())
# XInteractionRequest
def getRequest(self):
return self.request
def getContinuations(self):
return self.continuations


class RequestParameters(unohelper.Base,
XIndexAccess):
def __init__(self, description):
self.description = description
# XIndexAccess
def getCount(self):
return 1
def getByIndex(self, index):
return Parameters(self.description)
def getElementType(self):
return uno.getTypeByName('string')
def hasElements(self):
return True


class Parameters(unohelper.Base,
PropertySet):
def __init__(self, description):
self.Name = 'UserName'
self.Type = uno.getConstantByName('com.sun.star.sdbc.DataType.VARCHAR')
self.TypeName = 'VARCHAR'
self.Precision = 0
self.Scale = 0
self.IsNullable = uno.getConstantByName('com.sun.star.sdbc.ColumnValue.NO_NULLS')
self.IsAutoIncrement = False
self.IsCurrency = False
self.IsRowVersion = False
self.Description = description
self.DefaultValue = ''
def _getPropertySetInfo(self):
properties = {}
bound = uno.getConstantByName('com.sun.star.beans.PropertyAttribute.BOUND')
readonly = uno.getConstantByName('com.sun.star.beans.PropertyAttribute.READONLY')
properties['Name'] = getProperty('Name', 'string', bound | readonly)
properties['Type'] = getProperty('Type', 'long', bound | readonly)
properties['TypeName'] = getProperty('TypeName', 'string', bound | readonly)
properties['Precision'] = getProperty('Precision', 'long', bound | readonly)
properties['Scale'] = getProperty('Scale', 'long', bound | readonly)
properties['IsNullable'] = getProperty('IsNullable', 'long', bound | readonly)
properties['IsAutoIncrement'] = getProperty('IsAutoIncrement', 'boolean', bound | readonly)
properties['IsCurrency'] = getProperty('IsCurrency', 'boolean', bound | readonly)
properties['IsRowVersion'] = getProperty('IsRowVersion', 'boolean', bound | readonly)
properties['Description'] = getProperty('Description', 'string', bound | readonly)
properties['DefaultValue'] = getProperty('DefaultValue', 'string', bound | readonly)
return properties


class CommandInfo(unohelper.Base,
XCommandInfo):
def __init__(self, commands={}):
Expand Down Expand Up @@ -208,7 +85,8 @@ def hasCommandByHandle(self, handle):
return False


class CommandInfoChangeNotifier(XCommandInfoChangeNotifier):
class CommandInfoChangeNotifier(unohelper.Base,
XCommandInfoChangeNotifier):
def __init__(self):
self.commandInfoListeners = []
# XCommandInfoChangeNotifier
Expand Down
90 changes: 50 additions & 40 deletions uno/lib/uno/ucb/ucp/contentuser.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,46 +78,56 @@

class ContentUser():
def __init__(self, ctx, logger, source, database, provider, name, sync, lock, password=''):
try:
self._ctx = ctx
self._name = name
self._sync = sync
self._lock = lock
self._expired = None
self.Provider = provider
#self.CanAddChild = not self.Provider.GenerateIds
self.CanAddChild = True
self.Request = getRequest(ctx, self.Provider.Scheme, name)
self._logger = logger
metadata = database.selectUser(name)
new = metadata is None
if new:
if self.Request is None:
msg = self._logger.resolveString(501, g_oauth2)
raise IllegalIdentifierException(msg, source)
elif not self.Provider.isOnLine():
msg = self._logger.resolveString(502, name)
raise IllegalIdentifierException(msg, source)
user, root = self.Provider.getUser(source, self.Request, name)
metadata = database.insertUser(user, root)
if metadata is None:
msg = self._logger.resolveString(503, name)
raise IllegalIdentifierException(msg, source)
if not database.createUser(name, password):
msg = self._logger.resolveString(504, name)
raise IllegalIdentifierException(msg, source)
self.MetaData = metadata
self.DataBase = DataBase(ctx, logger, database.Url, sync, name, password)
self._identifiers = {}
self._contents = {}
self._contents[self.RootId] = Content(ctx, self)
if new:
self._sync.set()
self._logger.logprb(INFO, 'ContentUser', '__init__()', 505)
except Exception as e:
msg = "ContentUser.__init__() Error: %s" % traceback.format_exc()
print(msg)
raise IllegalIdentifierException(msg, source)
self._ctx = ctx
self._name = name
self._sync = sync
self._lock = lock
self._expired = None
self.Provider = provider
#self.CanAddChild = not self.Provider.GenerateIds
self.CanAddChild = True
self._logger = logger
metadata = database.selectUser(name)
new = metadata is None
if not new:
request = getRequest(ctx, self.Provider.Scheme, name)
if request is None:
# If we have a Null value here then it means that the user has abandoned
# the OAuth2 Wizard, there is nothing more to do except throw an exception
msg = self._logger.resolveString(501, g_oauth2)
self._logger.logp(SEVERE, 'ContentUser', '__init__()', msg)
raise IllegalIdentifierException(msg, source)
else:
if not self.Provider.isOnLine():
msg = self._logger.resolveString(502, name)
self._logger.logp(SEVERE, 'ContentUser', '__init__()', msg)
raise IllegalIdentifierException(msg, source)
request = getRequest(ctx, self.Provider.Scheme, name)
if request is None:
# If we have a Null value here then it means that the user has abandoned
# the OAuth2 Wizard, there is nothing more to do except throw an exception
msg = self._logger.resolveString(501, g_oauth2)
self._logger.logp(SEVERE, 'ContentUser', '__init__()', msg)
raise IllegalIdentifierException(msg, source)
user, root = self.Provider.getUser(source, request, name)
metadata = database.insertUser(user, root)
if metadata is None:
msg = self._logger.resolveString(503, name)
self._logger.logp(SEVERE, 'ContentUser', '__init__()', msg)
raise IllegalIdentifierException(msg, source)
if not database.createUser(name, password):
msg = self._logger.resolveString(504, name)
self._logger.logp(SEVERE, 'ContentUser', '__init__()', msg)
raise IllegalIdentifierException(msg, source)
self.Request = request
self.MetaData = metadata
self.DataBase = DataBase(ctx, logger, database.Url, sync, name, password)
self._identifiers = {}
self._contents = {}
self._contents[self.RootId] = Content(ctx, self)
if new:
self._sync.set()
self._logger.logprb(INFO, 'ContentUser', '__init__()', 505)

@property
def Name(self):
Expand Down

0 comments on commit 98d3b56

Please sign in to comment.