lemonldap-ng/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/CustomModule.pm
2021-12-19 18:19:22 +01:00

31 lines
721 B
Perl

package Lemonldap::NG::Portal::Lib::CustomModule;
# Fake 'new' method here
sub new {
my ( $class, $self ) = @_;
my $configKey = $class->custom_config_key;
my $name = $class->custom_name;
my $module = $self->{conf}->{$configKey};
unless ($module) {
die "Custom $name module not defined";
}
$module = "Lemonldap::NG::Portal$module" if ( $module =~ /^::/ );
eval "require $module";
if ($@) {
die "Custom $name module failed to compile: $@";
}
my $obj = eval { $module->new($self); };
if ($@) {
die "Custom $name module failed to create instance: $@";
}
$self->{p}->logger->debug("Custom $name module loaded");
return $obj;
}
1;