0
0
Fork 0
mirror of https://github.com/nextcloud/server.git synced 2025-05-17 11:42:43 +00:00
nextcloud_server/apps/user_ldap/lib/Handler/ExtStorageConfigHandler.php

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

51 lines
1.2 KiB
PHP
Raw Permalink Normal View History

<?php
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\User_LDAP\Handler;
use OCA\Files_External\Config\IConfigHandler;
use OCA\Files_External\Config\SimpleSubstitutionTrait;
use OCA\Files_External\Config\UserContext;
use OCA\User_LDAP\User_Proxy;
class ExtStorageConfigHandler extends UserContext implements IConfigHandler {
use SimpleSubstitutionTrait;
/**
* @param mixed $optionValue
* @return mixed the same type as $optionValue
* @since 16.0.0
* @throws \Exception
*/
public function handle($optionValue) {
$this->placeholder = 'home';
$user = $this->getUser();
if ($user === null) {
return $optionValue;
}
$backend = $user->getBackend();
if (!$backend instanceof User_Proxy) {
return $optionValue;
}
$access = $backend->getLDAPAccess($user->getUID());
if (!$access) {
return $optionValue;
}
$attribute = $access->connection->ldapExtStorageHomeAttribute;
if (empty($attribute)) {
return $optionValue;
}
$ldapUser = $access->userManager->get($user->getUID());
$extHome = $ldapUser !== null ? $ldapUser->getExtStorageHome() : '';
return $this->processInput($optionValue, $extHome);
}
}