Skip to content
Snippets Groups Projects

[RTKO] default volatile on setupOpac

Merged Sebastien ANDRE requested to merge fix_default_volatile_on_setup into master
All threads resolved!
Compare and Show latest version
1 file
+ 22
21
Preferences
Compare changes
@@ -20,15 +20,16 @@
*/
class Class_DigitalResource extends Class_Entity
class Class_DigitalResource
{
use Trait_StormFileSystem;
protected ?Class_DigitalResource_ConfigProvider $_config_provider = null;
protected static ?Storm_Collection $_plugins = null;
protected static $_instance;
protected ?array $_batches = null;
public static function getInstance()
public static function getInstance(): self
{
if ( ! static::$_instance)
static::$_instance = new static;
@@ -86,6 +87,20 @@ class Class_DigitalResource extends Class_Entity
}
public function getConfigProvider(): Class_DigitalResource_ConfigProvider
{
return $this->_config_provider ?? (new Class_DigitalResource_ConfigProvider);
}
public function setConfigProvider(?Class_DigitalResource_ConfigProvider $provider): self
{
$this->_config_provider = $provider;
return $this;
}
public function bootstrap(Zend_Controller_Front $front_controller): self
{
$this->getPlugins()->eachDo(fn($config) => $config->registerFrontController($front_controller));
@@ -94,10 +109,10 @@ class Class_DigitalResource extends Class_Entity
}
public function enablePluginWith(string $admin_var)
public function enablePluginWith(string $admin_var): ?Class_DigitalResource_Config
{
if ( ! $config = $this->getConfigWith($admin_var))
return $this;
return null;
return $config->enablePlugin();
}
@@ -212,19 +227,13 @@ class Class_DigitalResource extends Class_Entity
}
public function hasRightAccessPlugin($plugin, $user): bool
public function hasRightAccessPlugin(string $plugin, Class_Users $user): bool
{
if ( ! $this->isPluginDocType($plugin))
return false;
if ( ! $this->hasPermissionOn($plugin, $user))
return false;
return true;
return $this->isPluginDocType($plugin) && $this->hasPermissionOn($plugin, $user);
}
public function hasPermissionOn($plugin, $user): bool
public function hasPermissionOn(string $plugin, Class_Users $user): bool
{
if ( ! $config = $this->configFor($plugin))
return false;
@@ -422,14 +431,6 @@ class Class_DigitalResource extends Class_Entity
}
protected function getConfigProvider()
{
return $this->get('ConfigProvider')
? $this->get('ConfigProvider')
: new Class_DigitalResource_ConfigProvider;
}
public function isAdminVarOn(string $plugin, string $name): bool
{
return Class_AdminVar::isModuleEnabled($this->withNamespace($plugin, $name));