\Pydio\Auth\BackendCustomDbAuthDriver

Store authentication data in a custom SQL database with custom schema.

Users and password are NOT editable.

Summary

Methods
Properties
Constants
switchAction()
getRegistryContributions()
supportsUsersPagination()
findUserPage()
listUsersPaginated()
getUsersCount()
listUsers()
userExists()
userExistsWrite()
checkPassword()
createCookieString()
usersEditable()
passwordsEditable()
createUser()
changePassword()
deleteUser()
supportsAuthSchemes()
getAuthScheme()
getLoginRedirect()
getLogoutRedirect()
getOption()
getOptionAsBool()
isAjxpAdmin()
autoCreateUser()
filterCredentials()
listChildrenGroups()
getStats()
updateUserObject()
sanitize()
__construct()
__clone()
getWorkDirForPluginId()
init()
performChecks()
isEnabled()
loadManifest()
getManifestLabel()
getManifestDescription()
serialize()
unserialize()
getManifestRawContent()
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()
getUserPass()
testSQLConnexion()
$driverName
$driverType
$loadingState
$sqlDriver
No constants found
parseSpecificContributions()
getPluginWorkDir()
getPluginCacheDir()
getXPath()
getContextualOption()
loadRegistryContributions()
initXmlContributionFile()
unserializeManifest()
loadDependencies()
cachedNodesFromManifest()
loadConfigsDefinitions()
loadOptionsDefaults()
exposeConfigInManifest()
loadMixins()
nodeAttrToHash()
nodesEqual()
$options
$baseDir
$id
$name
$type
$manifestLoaded
$externalFilesAppended
$enabled
$registryContributions
$contributionsLoaded
$pluginConf
$pluginConfDefinition
$dependencies
$extensionsDependencies
$streamData
$mixins
$cachedXPathResults
$manifestDoc
$customTableName
$customTableUid
$customTablePwd
$customTableHashing
$coreSqlDriver
N/A
connect()
close()
$xPath
$manifestXML
$serializableAttributes
N/A

Properties

$driverName

$driverName : 

Type

$driverType

$driverType : 

Type

$loadingState

$loadingState : 

Type

$sqlDriver

$sqlDriver : 

Type

$options

$options : array

Type

array

$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

$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

$customTableName

$customTableName : 

Type

$customTableUid

$customTableUid : 

Type

$customTablePwd

$customTablePwd : 

Type

$customTableHashing

$customTableHashing : 

Type

$coreSqlDriver

$coreSqlDriver : 

Type

$xPath

$xPath : \DOMXPath

XPath query

Type

\DOMXPath

$manifestXML

$manifestXML : string

Internally store XML during serialization state.

Type

string

$serializableAttributes

$serializableAttributes : 

Type

Methods

switchAction()

switchAction(\Psr\Http\Message\ServerRequestInterface  $requestInterface, \Psr\Http\Message\ResponseInterface  $responseInterface) : string

Parameters

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

Throws

\Exception

Returns

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>

supportsUsersPagination()

supportsUsersPagination() : boolean

Wether users can be listed using offset and limit

Returns

boolean

findUserPage()

findUserPage(string  $baseGroup, string  $userLogin, integer  $usersPerPage, integer  $offset) : integer

Applicable if supportsUsersPagination(), try to detect at what page the user is

Parameters

string $baseGroup
string $userLogin
integer $usersPerPage
integer $offset

Returns

integer

listUsersPaginated()

listUsersPaginated(string  $baseGroup, string  $regexp, integer  $offset, integer  $limit, boolean  $recursive = true) : array<mixed,\Pydio\Core\Model\UserInterface>

List users using offsets

Parameters

string $baseGroup
string $regexp
integer $offset
integer $limit
boolean $recursive

Returns

array<mixed,\Pydio\Core\Model\UserInterface>

getUsersCount()

getUsersCount(string  $baseGroup = "/", string  $regexp = "", null|string  $filterProperty = null, null|string  $filterValue = null, boolean  $recursive = true) : integer

Parameters

string $baseGroup
string $regexp
null|string $filterProperty

Can be "admin" or "parent"

null|string $filterValue

Can be a user Id, or AJXP_FILTER_EMPTY or AJXP_FILTER_NOT_EMPTY

boolean $recursive

Returns

integer

listUsers()

listUsers(string  $baseGroup = "/", boolean  $recursive = true) : array<mixed,\Pydio\Core\Model\UserInterface>

Parameters

string $baseGroup
boolean $recursive

Returns

array<mixed,\Pydio\Core\Model\UserInterface>

userExists()

userExists(  $login) : boolean

Parameters

$login

Returns

boolean

userExistsWrite()

userExistsWrite(  $login) : boolean

Alternative method to be used when checking if user exists before creating a new user.

Parameters

$login

Returns

boolean

checkPassword()

checkPassword(string  $login, string  $pass) : boolean

Parameters

string $login
string $pass

Returns

boolean

createCookieString()

createCookieString(string  $login) : string

Parameters

string $login

Returns

string

usersEditable()

usersEditable() : boolean

Returns

boolean

passwordsEditable()

passwordsEditable() : boolean

Returns

boolean

createUser()

createUser(  $login,   $passwd) 

Parameters

$login
$passwd

changePassword()

changePassword(  $login,   $newPass) 

Parameters

$login
$newPass

deleteUser()

deleteUser(  $login) 

Parameters

$login

supportsAuthSchemes()

supportsAuthSchemes() : boolean

Returns

boolean

getAuthScheme()

getAuthScheme(  $login) : String

Parameters

$login

Returns

String

getLoginRedirect()

getLoginRedirect() : boolean

Returns

boolean

getLogoutRedirect()

getLogoutRedirect() : boolean

Returns

boolean

getOption()

getOption(  $optionName) : string

Parameters

$optionName

Returns

string

getOptionAsBool()

getOptionAsBool(  $optionName) : boolean

Parameters

$optionName

Returns

boolean

isAjxpAdmin()

isAjxpAdmin(  $login) : boolean

Parameters

$login

Returns

boolean

autoCreateUser()

autoCreateUser() : boolean

Returns

boolean

filterCredentials()

filterCredentials(  $userId,   $pwd) : array

Parameters

$userId
$pwd

Returns

array

listChildrenGroups()

listChildrenGroups(string  $baseGroup = "/") : array<mixed,string>

List children groups of a given group. By default will report this on the CONF driver, but can be overriden to grab info directly from auth driver (ldap, etc).

Parameters

string $baseGroup

Returns

array<mixed,string>

getStats()

getStats() : string

Returns

string

sanitize()

sanitize(  $s, integer  $level = \Pydio\Core\Utils\Vars\InputFilter::SANITIZE_HTML) : mixed|string

Sanitize user_id and password. Should be implemented by children (auth ldap) to be able to use login_id with special characters (utf8) such as : ä, é .

..

Parameters

$s
integer $level

Throws

\Pydio\Core\Exception\ForbiddenCharacterException

Returns

mixed|string

__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() 

isEnabled()

isEnabled() : boolean

Returns

boolean

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

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

getUserPass()

getUserPass(  $login) : mixed

Parameters

$login

Returns

mixed

testSQLConnexion()

testSQLConnexion(  $httpVars) 

Parameters

$httpVars

Throws

\Exception
\Pydio\Core\Exception\PydioException

parseSpecificContributions()

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

Dynamically modify some registry contributions nodes. Can be easily derivated to enable/disable some features dynamically during plugin initialization.

Parameters

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

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

connect()

connect() 

close()

close()