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\Helper;
use OCA\user_ldap\lib\LDAP; use OCA\user_ldap\lib\LDAP;
use OCA\user_ldap\User_Proxy; 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\ShowConfig());
$application->add(new OCA\user_ldap\Command\SetConfig()); $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\CreateEmptyConfig());
$application->add(new OCA\user_ldap\Command\DeleteConfig()); $application->add(new OCA\user_ldap\Command\DeleteConfig());
$application->add(new OCA\user_ldap\Command\Search()); $application->add(new OCA\user_ldap\Command\Search());
$application->add(new OCA\user_ldap\Command\ShowRemnants()); $userMapping = new UserMapping(\OC::$server->getDatabaseConnection());
$helper = new OCA\user_ldap\lib\Helper(); $application->add(new OCA\user_ldap\Command\ShowRemnants($userMapping));
$uBackend = new OCA\user_ldap\User_Proxy( $helper = new Helper();
$uBackend = new User_Proxy(
$helper->getServerConfigurationPrefixes(true), $helper->getServerConfigurationPrefixes(true),
new OCA\user_ldap\lib\LDAP() new LDAP()
); );
$application->add(new OCA\user_ldap\Command\CheckUser( $application->add(new OCA\user_ldap\Command\CheckUser(
$uBackend, $helper, \OC::$server->getConfig() $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\user\DeletedUsersIndex;
use OCA\User_LDAP\lib\Connection; use OCA\User_LDAP\lib\Connection;
use OCA\User_LDAP\lib\Access; use OCA\User_LDAP\Mapping\UserMapping;
class ShowRemnants extends Command { 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() { protected function configure() {
$this $this
@ -31,7 +43,7 @@ class ShowRemnants extends Command {
$dui = new DeletedUsersIndex( $dui = new DeletedUsersIndex(
new \OC\Preferences(\OC_DB::getConnection()), new \OC\Preferences(\OC_DB::getConnection()),
\OC::$server->getDatabaseConnection(), \OC::$server->getDatabaseConnection(),
$this->getAccess() $this->mapper
); );
/** @var \Symfony\Component\Console\Helper\Table $table */ /** @var \Symfony\Component\Console\Helper\Table $table */
@ -63,19 +75,4 @@ class ShowRemnants extends Command {
$table->setRows($rows); $table->setRows($rows);
$table->render($output); $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; $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 * sets the Group Mapper
* @param AbstractMapping $mapper * @param AbstractMapping $mapper
@ -83,6 +95,18 @@ class Access extends LDAPUtility implements user\IUserTools {
$this->groupMapper = $mapper; $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 * @return bool
*/ */
@ -333,10 +357,10 @@ class Access extends LDAPUtility implements user\IUserTools {
*/ */
public function dn2ocname($fdn, $ldapName = null, $isUser = true) { public function dn2ocname($fdn, $ldapName = null, $isUser = true) {
if($isUser) { if($isUser) {
$mapper = $this->userMapper; $mapper = $this->getUserMapper();
$nameAttribute = $this->connection->ldapUserDisplayName; $nameAttribute = $this->connection->ldapUserDisplayName;
} else { } else {
$mapper = $this->groupMapper; $mapper = $this->getGroupMapper();
$nameAttribute = $this->connection->ldapGroupDisplayName; $nameAttribute = $this->connection->ldapGroupDisplayName;
} }

View File

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

View File

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

View File

@ -38,8 +38,4 @@ interface IUserTools {
public function dn2username($dn, $ldapname = null); public function dn2username($dn, $ldapname = null);
public function username2dn($name); 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, $id,
new \OC\Preferences(\OC_DB::getConnection()), new \OC\Preferences(\OC_DB::getConnection()),
\OC::$server->getDatabaseConnection(), \OC::$server->getDatabaseConnection(),
$this->access); $this->access->getUserMapper());
} }
protected function createInstancyByUserName($id) { protected function createInstancyByUserName($id) {

View File

@ -23,7 +23,7 @@
namespace OCA\user_ldap\lib\user; namespace OCA\user_ldap\lib\user;
use OCA\user_ldap\lib\Access; use OCA\User_LDAP\Mapping\UserMapping;
class OfflineUser { class OfflineUser {
/** /**
@ -67,15 +67,15 @@ class OfflineUser {
*/ */
protected $db; 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->ocName = $ocName;
$this->preferences = $preferences; $this->preferences = $preferences;
$this->db = $db; $this->db = $db;
$this->access = $access; $this->mapping = $mapping;
$this->fetchDetails(); $this->fetchDetails();
} }
@ -176,7 +176,7 @@ class OfflineUser {
$this->$property = $this->preferences->getValue($this->ocName, $app, $property, ''); $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->dn = ($dn !== false) ? $dn : '';
$this->determineShares(); $this->determineShares();

View File

@ -239,6 +239,16 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
public function testDeleteUserSuccess() { public function testDeleteUserSuccess() {
$access = $this->getAccessMock(); $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); $backend = new UserLDAP($access);
$pref = \OC::$server->getConfig(); $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. //necessary for removing directories as done by OC_User.
$home = $pref->getUserValue($uid, 'user_ldap', 'homePath', ''); $home = $pref->getUserValue($uid, 'user_ldap', 'homePath', '');
$this->homesToKill[$uid] = $home; $this->homesToKill[$uid] = $home;
$this->access->unmapUser($uid); $this->access->getUserMapper()->unmap($uid);
return true; return true;
} }