basic adjustments for OC 8. I.e. no visible issues, LDAP tests pass.
This commit is contained in:
parent
4fa39250e7
commit
144d95de7d
|
@ -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()
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue