diff --git a/library/Icinga/Authentication/User/LdapUserBackend.php b/library/Icinga/Authentication/User/LdapUserBackend.php index b26b8aad7..930ac4c99 100644 --- a/library/Icinga/Authentication/User/LdapUserBackend.php +++ b/library/Icinga/Authentication/User/LdapUserBackend.php @@ -208,6 +208,24 @@ class LdapUserBackend extends LdapRepository implements UserBackendInterface, In return $query; } + /** + * Initialize this repository's virtual tables + * + * @return array + * + * @throws ProgrammingError In case $this->userClass has not been set yet + */ + protected function initializeVirtualTables() + { + if ($this->userClass === null) { + throw new ProgrammingError('It is required to set the object class where to find users first'); + } + + return array( + 'user' => $this->userClass + ); + } + /** * Initialize this repository's query columns * @@ -317,29 +335,6 @@ class LdapUserBackend extends LdapRepository implements UserBackendInterface, In return ((int) $value) >= $bigBang->diff($now)->days; } - /** - * Validate that the requested table exists - * - * This will return $this->userClass in case $table equals "user". - * - * @param string $table The table to validate - * @param RepositoryQuery $query An optional query to pass as context - * (unused by the base implementation) - * - * @return string - * - * @throws ProgrammingError In case the given table does not exist - */ - public function requireTable($table, RepositoryQuery $query = null) - { - $table = parent::requireTable($table, $query); - if ($table === 'user') { - $table = $this->userClass; - } - - return $table; - } - /** * Validate that the given column is a valid query target and return it or the actual name if it's an alias *