Skip to content

[New arch] Unravel ownCloud Client + ownCloud Account mess (Session handling) #2635

@davigonz

Description

@davigonz

The owncloud clients are objects used by the library to execute remote operations and contain credentials. These objects would be pretty easy to maintain if it weren't for the multiaccount support, which forces us to have a dependency between accounts and clients, reusing clients for an account.

Nowadays the creation of ownCloud Client is handled by different classes:

  • OwnCloudClientFactory
  • OwnCloudClientManagerFactory
  • OwnCloudClientManager
  • SimpleFactoryManager
  • SingleSessionManager
  • DynamicSessionManager

Thanks to Get rid of saml implementation issue , we could:

  • Get rid of SINGLE_SESSION_PER_ACCOUNT case in OwnCloudClientManagerFactory.

Thanks to #2636, we could:

  • Get rid of SINGLE_SESSION_PER_ACCOUNT_IF_SERVER_SUPPORTS_SERVER_MONITORING case in OwnCloudClientManagerFactory since server monitoring is supported by default on >=10 servers. Therefore, DynamicSessionManager would be no longer needed.

Once we clean up the way to handle ownCloud Clients we could create a factory of clients from accounts by using dependency injection with Koin (https://insert-koin.io/docs/2.0/documentation/reference/index.html#_declaring_injection_parameters)

TASKS

  • Research (if needed)
  • Create branch feature/feature_name
  • Development tasks
    • Implement whatever
    • ...
  • Code review and apply changes requested
  • Design test plan
  • QA
  • Merge branch feature/feature_name into master

PR

  • App
  • Library (if needed)

Related issues

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions