Skip to content
Snippets Groups Projects
Commit 6ecda490 authored by Laurent's avatar Laurent
Browse files

dev #47780 plugins refacto

parent ff2cbd6e
Branches
Tags
3 merge requests!1864Master,!1859Dev#47780 digital ressources plugins,!1840Dev#47780 digital ressources plugins
......@@ -71,27 +71,29 @@ class Class_DigitalResource extends Class_Entity {
public function getPluginsDescription() {
$configs = [];
$this->withPluginsDo(
function($name, $config, $path) use (&$configs) {
$configs[$name] = $config->getDescription();
}
);
return $this->pluginsByName(function($config)
{
return $config->getDescription();
});
}
return $configs;
public function pluginsByName($closure) {
return $this->getPlugins()
->injectInto([],
function($configs, $config) use ($closure)
{
$configs[$config->getName()] = $closure($config);
return $configs;
});
}
public function getServices() {
$services = [];
$this->withPluginsDo(
function($name, $config, $path) use (&$services) {
$service = $config->getService();
$services[$name] = $this->build($service);
}
);
return $services;
return $this->pluginsByName(function($config)
{
return $this->build($config->getService());
});
}
......@@ -110,16 +112,12 @@ class Class_DigitalResource extends Class_Entity {
public function hasPermissionOn($plugin, $user) {
$has_permission = false;
$this->withPluginsDo(
function($name, $config, $path) use(&$has_permission, $plugin, $user) {
return $this->getPlugins()
->detect(function($config) use ($plugin, $user)
{
$permission = $config->getPermission();
if($user->hasPermissionOn($permission, $this->configFor($plugin)))
$has_permission = true;
}
);
return $has_permission;
return $user->hasPermissionOn($permission, $this->configFor($plugin));
});
}
......
......@@ -44,6 +44,11 @@ class DigitalResourceTest extends ModelTestCase {
->setDirectoryIterator($this->_directory_iterator)
->setConfigProvider($this->_config_provider)
->setBuilder($this->_builder);
$this->_config_provider
->whenCalled('getName')
->answers('PirateBayResource');
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment