\Pydio\Access\Driver\DataProvider\ProvisioningConfAccessDriver

Plugin to access the configurations data Class ConfAccessDriver

Summary

Methods
Properties
Constants
init()
accessPreprocess()
makePublicletOptions()
makeSharedRepositoryOptions()
directoryUsage()
crossRepositoryCopy()
fixPermissions()
filterUserSelectionToHidden()
filterNodeName()
filterFile()
filterFolder()
__construct()
__clone()
getWorkDirForPluginId()
performChecks()
isEnabled()
parseSpecificContributions()
loadManifest()
getManifestLabel()
getManifestDescription()
serialize()
unserialize()
getManifestRawContent()
getRegistryContributions()
updateDependencies()
dependsOn()
getActiveDependencies()
getConfigsDefinitions()
loadConfigs()
getConfigs()
getClassFile()
missingExtensions()
hasMissingExtensions()
manifestLoaded()
getId()
getName()
getType()
getBaseDir()
getDependencies()
logDebug()
logInfo()
logNotice()
logWarning()
logError()
detectStreamWrapper()
getPluginInformation()
getPluginInformationHTML()
reloadXPath()
hasMixin()
preprocessLsApi2()
listAction()
pluginsAction()
rolesAction()
usersAction()
searchUsersAction()
repositoriesAction()
editAction()
deleteAction()
documentationAction()
preProcessBookmarkAction()
displayEnterprise()
$repository
$driverType
$loadingState
No constants found
initRepository()
copyOrMoveFile()
filecopy()
dircopy()
changeMode()
deldir()
getPluginWorkDir()
getPluginCacheDir()
getXPath()
getContextualOption()
loadRegistryContributions()
initXmlContributionFile()
unserializeManifest()
loadDependencies()
cachedNodesFromManifest()
loadConfigsDefinitions()
loadOptionsDefaults()
exposeConfigInManifest()
loadMixins()
nodeAttrToHash()
nodesEqual()
getMainTree()
$baseDir
$id
$name
$type
$manifestLoaded
$externalFilesAppended
$enabled
$registryContributions
$contributionsLoaded
$options
$pluginConf
$pluginConfDefinition
$dependencies
$extensionsDependencies
$streamData
$mixins
$cachedXPathResults
$manifestDoc
$rootNodes
N/A
No private methods found
$xPath
$manifestXML
$serializableAttributes
N/A

Properties

$driverType

$driverType : 

Type

$loadingState

$loadingState : 

Type

$baseDir

$baseDir : 

Type

$id

$id : 

Type

$name

$name : 

Type

$type

$type : 

Type

$manifestLoaded

$manifestLoaded : 

Type

$externalFilesAppended

$externalFilesAppended : 

Type

$enabled

$enabled : 

Type

$registryContributions

$registryContributions : 

Type

$contributionsLoaded

$contributionsLoaded : 

Type

$options

$options : array

Type

array

$pluginConf

$pluginConf : 

Type

$pluginConfDefinition

$pluginConfDefinition : 

Type

$dependencies

$dependencies : 

Type

$extensionsDependencies

$extensionsDependencies : 

Type

$streamData

$streamData : 

Type

$mixins

$mixins : 

Type

$cachedXPathResults

$cachedXPathResults : 

Type

$manifestDoc

$manifestDoc : \DOMDocument

The manifest.xml loaded

Type

\DOMDocument

$rootNodes

$rootNodes : 

Type

$xPath

$xPath : \DOMXPath

XPath query

Type

\DOMXPath

$manifestXML

$manifestXML : string

Internally store XML during serialization state.

Type

string

$serializableAttributes

$serializableAttributes : 

Type

Methods

accessPreprocess()

accessPreprocess(\Psr\Http\Message\ServerRequestInterface  $request) 

Parameters

\Psr\Http\Message\ServerRequestInterface $request

Throws

\Exception

makePublicletOptions()

makePublicletOptions(String  $filePath, String  $password, String  $expires, String  $downloadlimit, \Pydio\Access\Core\Model\Repository  $repository) : array

Populate publiclet options

Parameters

String $filePath

The path to the file to share

String $password

optionnal password

String $expires

optional expiration date

String $downloadlimit

optional limit for downloads

\Pydio\Access\Core\Model\Repository $repository

Returns

array

makeSharedRepositoryOptions()

makeSharedRepositoryOptions(\Pydio\Core\Model\ContextInterface  $ctx, array  $httpVars) : array

Populate shared repository options

Parameters

\Pydio\Core\Model\ContextInterface $ctx
array $httpVars

Returns

array

directoryUsage()

directoryUsage(  $node) : integer

Parameters

$node

AJXP_Node

Throws

\Exception

Returns

integer

crossRepositoryCopy()

crossRepositoryCopy(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

Throws

\Pydio\Core\Exception\PydioException
\Exception

fixPermissions()

fixPermissions(\Pydio\Access\Core\Model\AJXP_Node  $node, array  $stat, callable  $remoteDetectionCallback = null) 

Try to reapply correct permissions

Parameters

\Pydio\Access\Core\Model\AJXP_Node $node
array $stat
callable $remoteDetectionCallback

filterUserSelectionToHidden()

filterUserSelectionToHidden(\Pydio\Core\Model\ContextInterface  $ctx, array  $files) 

Test if userSelection is containing a hidden file, which should not be the case!

Parameters

\Pydio\Core\Model\ContextInterface $ctx
array $files

Throws

\Exception

filterNodeName()

filterNodeName(\Pydio\Core\Model\ContextInterface  $ctx,   $nodePath,   $nodeName,   $isLeaf,   $lsOptions) : boolean

Parameters

\Pydio\Core\Model\ContextInterface $ctx
$nodePath
$nodeName
$isLeaf
$lsOptions

Returns

boolean

filterFile()

filterFile(\Pydio\Core\Model\ContextInterface  $ctx, string  $fileName, boolean  $hiddenTest = false) : boolean

Parameters

\Pydio\Core\Model\ContextInterface $ctx
string $fileName
boolean $hiddenTest

Returns

boolean

filterFolder()

filterFolder(\Pydio\Core\Model\ContextInterface  $ctx, string  $folderName, string  $compare = "equals") : boolean

Parameters

\Pydio\Core\Model\ContextInterface $ctx
string $folderName
string $compare

Returns

boolean

__construct()

__construct(string  $id, string  $baseDir) 

Construction method

Parameters

string $id
string $baseDir

__clone()

__clone() 

Make sure to clone the XML manifest document, otherwise if the plugin changes it dynamically, it can mess up things.

getWorkDirForPluginId()

getWorkDirForPluginId(  $pluginId) : string

Parameters

$pluginId

Returns

string

performChecks()

performChecks() 

Perform initialization checks, and throw exception if problems found.

Throws

\Exception

isEnabled()

isEnabled() : boolean

Returns

boolean

parseSpecificContributions()

parseSpecificContributions(\Pydio\Core\Model\ContextInterface  $ctx, \DOMNode  $contribNode) 

Parameters

\Pydio\Core\Model\ContextInterface $ctx
\DOMNode $contribNode

loadManifest()

loadManifest() : void

Load the main manifest.xml file of the plugni

Throws

\Exception

getManifestLabel()

getManifestLabel() : mixed|string

Get the plugin label as defined in the manifest file (label attribute)

Returns

mixed|string

getManifestDescription()

getManifestDescription() : mixed|string

Get the plugin description as defined in the manifest file (description attribute)

Returns

mixed|string

serialize()

serialize() : string

Serialized all declared attributes and return a serialized representation of this plugin.

The XML Manifest is base64 encoded before serialization.

Returns

string

unserialize()

unserialize(  $string) : void

Load this plugin from its serialized reprensation. The manifest XML is base64 decoded.

Parameters

$string

getManifestRawContent()

getManifestRawContent(string  $xmlNodeName = "", string  $format = "string", boolean  $externalFiles = false) : \DOMElement|\DOMNodeList|string

Legacy function, should better be used to return XML Nodes than string. Perform a query on the manifest.

Parameters

string $xmlNodeName
string $format
boolean $externalFiles

Returns

\DOMElement|\DOMNodeList|string

getRegistryContributions()

getRegistryContributions(\Pydio\Core\Model\ContextInterface  $ctx, boolean  $extendedVersion = true) : array<mixed,\DOMElement>

Return the registry contributions. The parameter can be used by subclasses to optimize the size of the XML returned : the extended version is called when sending to the client, whereas the "small" version is loaded to find and apply actions.

Parameters

\Pydio\Core\Model\ContextInterface $ctx
boolean $extendedVersion

Can be used by subclasses to optimize the size of the XML returned.

Returns

array<mixed,\DOMElement>

dependsOn()

dependsOn(string  $pluginName) : boolean

Check if this plugin depends on another one.

Parameters

string $pluginName

Returns

boolean

getActiveDependencies()

getActiveDependencies(\Pydio\Core\PluginFramework\PluginsService  $pluginService) : array

Get dependencies

Parameters

\Pydio\Core\PluginFramework\PluginsService $pluginService

Returns

array

getConfigsDefinitions()

getConfigsDefinitions() : array

Returns

array

loadConfigs()

loadConfigs(array  $configData) : void

Load the configs passed as parameter. This method will + Parse the config definitions and load the default values + Merge these values with the $configData parameter + Publish their value in the manifest if the global_param is "exposed" to the client.

Parameters

array $configData

getConfigs()

getConfigs() : array

Return this plugin configs, merged with its associated "core" configs.

Returns

array

getClassFile()

getClassFile() : array|boolean

Return the file path of the specific class to load

Returns

array|boolean

missingExtensions()

missingExtensions() : array

Returns

array

hasMissingExtensions()

hasMissingExtensions() : boolean

Returns

boolean

manifestLoaded()

manifestLoaded() : boolean

Returns

boolean

getId()

getId() : string

Returns

string

getName()

getName() : string

Returns

string

getType()

getType() : string

Returns

string

getBaseDir()

getBaseDir() : string

Returns

string

getDependencies()

getDependencies() : array

Returns

array

logDebug()

logDebug(string  $prefix, array|string  $message = "") : void

Write a debug log with the plugin id as source

Parameters

string $prefix

A quick description or action

array|string $message

Variable number of message args (string or array)

logInfo()

logInfo(string  $prefix, array|string  $message) : void

Write an info log with the plugin id as source

Parameters

string $prefix

A quick description or action

array|string $message

Variable number of message args (string or array)

logNotice()

logNotice(string  $prefix, array|string  $message) : void

Write a notice log with the plugin id as source

Parameters

string $prefix

A quick description or action

array|string $message

Variable number of message args (string or array)

logWarning()

logWarning(string  $prefix, array|string  $message) : void

Write a warning log with the plugin id as source

Parameters

string $prefix

A quick description or action

array|string $message

Variable number of message args (string or array)

logError()

logError(string  $prefix, array|string  $message) : void

Write an error log with the plugin id as source

Parameters

string $prefix

A quick description or action

array|string $message

Variable number of message args (string or array)

detectStreamWrapper()

detectStreamWrapper(boolean  $register = false, \Pydio\Core\Model\ContextInterface  $ctx = null) : array|boolean

Detect if this plugin declares a StreamWrapper, and if yes loads it and register the stream.

Parameters

boolean $register
\Pydio\Core\Model\ContextInterface $ctx

Returns

array|boolean

getPluginInformation()

getPluginInformation() : array

Returns

array

getPluginInformationHTML()

getPluginInformationHTML(  $defaultAuthor,   $defaultUriBase) : string

Parameters

$defaultAuthor
$defaultUriBase

Returns

string

reloadXPath()

reloadXPath() : void

hasMixin()

hasMixin(  $mixinName) : boolean

Parameters

$mixinName

Returns

boolean

preprocessLsApi2()

preprocessLsApi2(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) : boolean

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

Returns

boolean

listAction()

listAction(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

pluginsAction()

pluginsAction(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

rolesAction()

rolesAction(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

usersAction()

usersAction(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

searchUsersAction()

searchUsersAction(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Search users

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

repositoriesAction()

repositoriesAction(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

editAction()

editAction(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

deleteAction()

deleteAction(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

documentationAction()

documentationAction(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

preProcessBookmarkAction()

preProcessBookmarkAction(\Psr\Http\Message\ServerRequestInterface  $request, \Psr\Http\Message\ResponseInterface  $response) 

Bookmark any page for the admin interface

Parameters

\Psr\Http\Message\ServerRequestInterface $request
\Psr\Http\Message\ResponseInterface $response

displayEnterprise()

displayEnterprise(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) 

Parameters

\Psr\Http\Message\ServerRequestInterface $requestInterface
\Psr\Http\Message\ResponseInterface $responseInterface

copyOrMoveFile()

copyOrMoveFile(String  $destFile, String  $srcFile, array  $error, array  $success, boolean  $move = false, array  $srcRepoData = array(), array  $destRepoData = array(), string  $taskId = null) 

Parameters

String $destFile

url of destination file

String $srcFile

url of source file

array $error

accumulator for error messages

array $success

accumulator for success messages

boolean $move

Whether to copy or move

array $srcRepoData

Set of data concerning source repository: base_url, recycle option

array $destRepoData

Set of data concerning destination repository: base_url, chmod option

string $taskId

Optional task UUID to update during operation

filecopy()

filecopy(String  $srcFile, String  $destFile) 

Parameters

String $srcFile

url of source file

String $destFile

url of destination file

dircopy()

dircopy(String  $srcdir, String  $dstdir, array  $errors, array  $success, boolean  $verbose = false, boolean  $convertSrcFile = true, array  $srcRepoData = array(), array  $destRepoData = array(), string  $taskId = null) : integer

Parameters

String $srcdir

Url of source file

String $dstdir

Url of dest file

array $errors

Array of errors

array $success

Array of success

boolean $verbose

Boolean

boolean $convertSrcFile

Boolean

array $srcRepoData

Set of data concerning source repository: base_url, recycle option

array $destRepoData

Set of data concerning destination repository: base_url, chmod option

string $taskId

Optional Task ID

Returns

integer

changeMode()

changeMode(  $filePath,   $repoData) 

Parameters

$filePath
$repoData

deldir()

deldir(string  $location, array  $repoData, string  $taskId = null) 

Parameters

string $location
array $repoData
string $taskId

Throws

\Exception

getPluginWorkDir()

getPluginWorkDir(boolean  $check = false) : string

Parameters

boolean $check

Throws

\Exception

Returns

string

getPluginCacheDir()

getPluginCacheDir(boolean  $shared = false, boolean  $check = false) : string

Parameters

boolean $shared
boolean $check

Throws

\Exception

Returns

string

getXPath()

getXPath() : \DOMXPath

Returns

\DOMXPath

getContextualOption()

getContextualOption(\Pydio\Core\Model\ContextInterface  $ctx,   $optionName) : mixed|null

Parameters

\Pydio\Core\Model\ContextInterface $ctx
$optionName

Returns

mixed|null

loadRegistryContributions()

loadRegistryContributions(\Pydio\Core\Model\ContextInterface  $ctx, boolean  $dry = false) 

Main function for loading all the nodes under registry_contributions.

Parameters

\Pydio\Core\Model\ContextInterface $ctx
boolean $dry

initXmlContributionFile()

initXmlContributionFile(\Pydio\Core\Model\ContextInterface  $ctx, string  $xmlFile, array  $include = array("*"), array  $exclude = array(), boolean  $dry = false) 

Load an external XML file and include/exclude its nodes as contributions.

Parameters

\Pydio\Core\Model\ContextInterface $ctx
string $xmlFile

Path to the file from the base install path

array $include

XPath query for XML Nodes to include

array $exclude

XPath query for XML Nodes to exclude from the included ones.

boolean $dry

Dry-run of the inclusion

unserializeManifest()

unserializeManifest() 

Load DOMDocument from serialized value. Must be called after checking that property $this->manifestXML is not null.

loadDependencies()

loadDependencies() : void

Load the declared dependant plugins

cachedNodesFromManifest()

cachedNodesFromManifest(  $query) : array|mixed

Parameters

$query

Returns

array|mixed

loadConfigsDefinitions()

loadConfigsDefinitions() : void

Load the global parameters for this plugin

loadOptionsDefaults()

loadOptionsDefaults() : array

Load the default values for this plugin options

Returns

array

exposeConfigInManifest()

exposeConfigInManifest(  $configName,   $configValue) : void

Add a name/value pair in the manifest to be published to the world.

Parameters

$configName
$configValue

loadMixins()

loadMixins() : void

Check if the plugin declares mixins, and load them using PluginsService::patchPluginWithMixin method

nodeAttrToHash()

nodeAttrToHash(\DOMNode  $node) : array

Transform a simple node and its attributes to a HashTable

Parameters

\DOMNode $node

Returns

array

nodesEqual()

nodesEqual(\DOMNode  $node1, \DOMNode  $node2) : boolean

Compare two nodes at first level (nodename and attributes)

Parameters

\DOMNode $node1
\DOMNode $node2

Returns

boolean

getMainTree()

getMainTree(\Pydio\Core\Model\ContextInterface  $ctx) : array

Called internally to populate left menu

Parameters

\Pydio\Core\Model\ContextInterface $ctx

Throws

\Exception

Returns

array