basic adjustments for OC 8. I.e. no visible issues, LDAP tests pass.

This commit is contained in:
Arthur Schiwon 2014-12-20 16:09:04 +01:00
parent 4fa39250e7
commit 144d95de7d
10 changed files with 73 additions and 41 deletions

View File

@ -9,6 +9,7 @@
use OCA\user_ldap\lib\Helper;
use OCA\user_ldap\lib\LDAP;
use OCA\user_ldap\User_Proxy;
use OCA\User_LDAP\Mapping\UserMapping;
$application->add(new OCA\user_ldap\Command\ShowConfig());
$application->add(new OCA\user_ldap\Command\SetConfig());
@ -16,11 +17,12 @@ $application->add(new OCA\user_ldap\Command\TestConfig());
$application->add(new OCA\user_ldap\Command\CreateEmptyConfig());
$application->add(new OCA\user_ldap\Command\DeleteConfig());
$application->add(new OCA\user_ldap\Command\Search());
$application->add(new OCA\user_ldap\Command\ShowRemnants());
$helper = new OCA\user_ldap\lib\Helper();
$uBackend = new OCA\user_ldap\User_Proxy(
$userMapping = new UserMapping(\OC::$server->getDatabaseConnection());
$application->add(new OCA\user_ldap\Command\ShowRemnants($userMapping));
$helper = new Helper();
$uBackend = new User_Proxy(
$helper->getServerConfigurationPrefixes(true),
new OCA\user_ldap\lib\LDAP()
new LDAP()
);
$application->add(new OCA\user_ldap\Command\CheckUser(
$uBackend, $helper, \OC::$server->getConfig()

View File

@ -16,9 +16,21 @@ use Symfony\Component\Console\Output\OutputInterface;
use OCA\user_ldap\lib\user\DeletedUsersIndex;
use OCA\User_LDAP\lib\Connection;
use OCA\User_LDAP\lib\Access;
use OCA\User_LDAP\Mapping\UserMapping;
class ShowRemnants extends Command {
/** @var OCA\User_LDAP\Mapping\UserMapping */
protected $mapping;
/**
* @param OCA\user_ldap\User_Proxy $uBackend
* @param OCA\User_LDAP\lib\Helper $helper
* @param OCP\IConfig $config
*/
public function __construct(UserMapping $mapper) {
$this->mapper = $mapper;
parent::__construct();
}
protected function configure() {
$this
@ -31,7 +43,7 @@ class ShowRemnants extends Command {
$dui = new DeletedUsersIndex(
new \OC\Preferences(\OC_DB::getConnection()),
\OC::$server->getDatabaseConnection(),
$this->getAccess()
$this->mapper
);
/** @var \Symfony\Component\Console\Helper\Table $table */
@ -63,19 +75,4 @@ class ShowRemnants extends Command {
$table->setRows($rows);
$table->render($output);
}
protected function getAccess() {
$ldap = new \OCA\user_ldap\lib\LDAP();
$dummyConnection = new Connection($ldap, '', null);
$userManager = new \OCA\user_ldap\lib\user\Manager(
\OC::$server->getConfig(),
new \OCA\user_ldap\lib\FilesystemHelper(),
new \OCA\user_ldap\lib\LogWrapper(),
\OC::$server->getAvatarManager(),
new \OCP\Image()
);
$access = new Access($dummyConnection, $ldap, $userManager);
return $access;
}
}

View File

@ -75,6 +75,18 @@ class Access extends LDAPUtility implements user\IUserTools {
$this->userMapper = $mapper;
}
/**
* returns the User Mapper
* @throws \Exception
* @return AbstractMapping
*/
public function getUserMapper() {
if(is_null($this->userMapper)) {
throw new \Exception('UserMapper was not assigned to this Access instance.');
}
return $this->userMapper;
}
/**
* sets the Group Mapper
* @param AbstractMapping $mapper
@ -83,6 +95,18 @@ class Access extends LDAPUtility implements user\IUserTools {
$this->groupMapper = $mapper;
}
/**
* returns the Group Mapper
* @throws \Exception
* @return AbstractMapping
*/
public function getGroupMapper() {
if(is_null($this->groupMapper)) {
throw new \Exception('GroupMapper was not assigned to this Access instance.');
}
return $this->groupMapper;
}
/**
* @return bool
*/
@ -333,10 +357,10 @@ class Access extends LDAPUtility implements user\IUserTools {
*/
public function dn2ocname($fdn, $ldapName = null, $isUser = true) {
if($isUser) {
$mapper = $this->userMapper;
$mapper = $this->getUserMapper();
$nameAttribute = $this->connection->ldapUserDisplayName;
} else {
$mapper = $this->groupMapper;
$mapper = $this->getGroupMapper();
$nameAttribute = $this->connection->ldapGroupDisplayName;
}

View File

@ -23,6 +23,8 @@
namespace OCA\user_ldap\lib;
use OCA\User_LDAP\Mapping\GroupMapping;
class Jobs extends \OC\BackgroundJob\TimedJob {
static private $groupsFromDB;
@ -169,6 +171,7 @@ class Jobs extends \OC\BackgroundJob\TimedJob {
new \OCP\Image());
$connector = new Connection($ldapWrapper, $configPrefixes[0]);
$ldapAccess = new Access($connector, $ldapWrapper, $userManager);
$groupMapper = new GroupMapping(\OC::$server->getDatabaseConnection());
self::$groupBE = new \OCA\user_ldap\GROUP_LDAP($ldapAccess);
} else {
self::$groupBE = new \OCA\user_ldap\Group_Proxy($configPrefixes, $ldapWrapper);

View File

@ -24,7 +24,7 @@
namespace OCA\user_ldap\lib\user;
use OCA\user_ldap\lib\user\OfflineUser;
use OCA\user_ldap\lib\Access;
use OCA\User_LDAP\Mapping\UserMapping;
/**
* Class DeletedUsersIndex
@ -42,9 +42,9 @@ class DeletedUsersIndex {
protected $db;
/**
* @var \OCA\user_ldap\lib\Access $access
* @var \OCA\User_LDAP\Mapping\UserMapping $mapping
*/
protected $access;
protected $mapping;
/**
* @var int $limit
@ -56,10 +56,10 @@ class DeletedUsersIndex {
*/
protected $deletedUsers = false;
public function __construct(\OC\Preferences $preferences, \OCP\IDBConnection $db, Access $access) {
public function __construct(\OC\Preferences $preferences, \OCP\IDBConnection $db, UserMapping $mapping) {
$this->preferences = $preferences;
$this->db = $db;
$this->access = $access;
$this->mapping = $mapping;
}
/**
@ -84,7 +84,7 @@ class DeletedUsersIndex {
$userObjects = array();
foreach($deletedUsers as $user) {
$userObjects[] = new OfflineUser($user, $this->preferences, $this->db, $this->access);
$userObjects[] = new OfflineUser($user, $this->preferences, $this->db, $this->mapping);
}
$this->deletedUsers[$key] = $userObjects;

View File

@ -38,8 +38,4 @@ interface IUserTools {
public function dn2username($dn, $ldapname = null);
public function username2dn($name);
//temporary hack for LDAP user cleanup, will be removed in OC 8.
public function ocname2dn($name, $isUser);
}

View File

@ -154,7 +154,7 @@ class Manager {
$id,
new \OC\Preferences(\OC_DB::getConnection()),
\OC::$server->getDatabaseConnection(),
$this->access);
$this->access->getUserMapper());
}
protected function createInstancyByUserName($id) {

View File

@ -23,7 +23,7 @@
namespace OCA\user_ldap\lib\user;
use OCA\user_ldap\lib\Access;
use OCA\User_LDAP\Mapping\UserMapping;
class OfflineUser {
/**
@ -67,15 +67,15 @@ class OfflineUser {
*/
protected $db;
/**
* @var \OCA\user_ldap\lib\Access
* @var OCA\User_LDAP\Mapping\UserMapping
*/
protected $access;
protected $mapping;
public function __construct($ocName, \OC\Preferences $preferences, \OCP\IDBConnection $db, Access $access) {
public function __construct($ocName, \OC\Preferences $preferences, \OCP\IDBConnection $db, UserMapping $mapping) {
$this->ocName = $ocName;
$this->preferences = $preferences;
$this->db = $db;
$this->access = $access;
$this->mapping = $mapping;
$this->fetchDetails();
}
@ -176,7 +176,7 @@ class OfflineUser {
$this->$property = $this->preferences->getValue($this->ocName, $app, $property, '');
}
$dn = $this->access->ocname2dn($this->ocName, true);
$dn = $this->mapping->getDNByName($this->ocName);
$this->dn = ($dn !== false) ? $dn : '';
$this->determineShares();

View File

@ -239,6 +239,16 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
public function testDeleteUserSuccess() {
$access = $this->getAccessMock();
$mapping = $this->getMockBuilder('\OCA\User_LDAP\Mapping\UserMapping')
->disableOriginalConstructor()
->getMock();
$mapping->expects($this->once())
->method('unmap')
->will($this->returnValue(true));
$access->expects($this->once())
->method('getUserMapper')
->will($this->returnValue($mapping));
$backend = new UserLDAP($access);
$pref = \OC::$server->getConfig();

View File

@ -229,7 +229,7 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
//necessary for removing directories as done by OC_User.
$home = $pref->getUserValue($uid, 'user_ldap', 'homePath', '');
$this->homesToKill[$uid] = $home;
$this->access->unmapUser($uid);
$this->access->getUserMapper()->unmap($uid);
return true;
}