找不到OTRS.log pm文件/无法加载

时间:2014-05-18 07:09:03

标签: perl otrs

我在Windows 2008服务器上使用OTRS 3.2.11。我对Kernel / Output / HTML / NotificationUIDCheck.pm文件做了一些修改,以摆脱“不使用超级用户帐户......”的Red warninig消息。 现在消息不再出现,但日志文件连续显示此消息:

[Sun May 18 07:59:54 2014][Error][Kernel::Output::HTML::Layout::NavigationBar][2932] Module Kernel/Output/HTML/NotificationUIDCheck.pm not found/could not be loaded!

这是NotificationUIDCheck.pm正在运行:

package Kernel::Output::HTML::NotificationUIDCheck;

use strict;
use warnings;

sub new {
my ( $Type, %Param ) = @_;

# allocate new hash for object
my $Self = {};
bless( $Self, $Type );

# get needed objects
for (qw(ConfigObject LogObject DBObject LayoutObject UserID)) {
    $Self->{$_} = $Param{$_} || die "Got no $_!";
}
return $Self;
}

原始文件就像:

package Kernel::Output::HTML::NotificationUIDCheck;

use strict;
use warnings;

sub new {
my ( $Type, %Param ) = @_;

# allocate new hash for object
my $Self = {};
bless( $Self, $Type );

# get needed objects
for (qw(ConfigObject LogObject DBObject LayoutObject UserID)) {
    $Self->{$_} = $Param{$_} || die "Got no $_!";
}
return $Self;
}

sub Run {
my ( $Self, %Param ) = @_;

# return if it's not root@localhost
return '' if $Self->{UserID} != 1;

# show error notfy, don't work with user id 1
return $Self->{LayoutObject}->Notify(
    Priority => 'Error',
    Link     => '$Env{"Baselink"}Action=AdminUser',
    Data =>
        '$Text{"Don\'t use the Superuser account to work with OTRS! Create new Agents  and work with these accounts instead."}',
);
}

1;

我猜想有什么东西可以帮助你们找出解决方法!

2 个答案:

答案 0 :(得分:0)

首先,我不确定为什么要修改“不要使用超级用户帐户”警告,而不是使用超级用户帐户!!

有一个原因是您实际上不想使用此帐户,并且在您使用它时ACL不适用,并且默认情况下SuperUser帐户将是电子邮件创建的所有故障单的所有者和/或客户门户网站。

即便如此,如果您不想看到错误消息,您应该将其添加到Kernel/Config.pm文件中以禁用检查:

$Self->{'Frontend::NotifyModule'}->{'200-UID-Check'}

这样就不需要更改代码了。

答案 1 :(得分:-1)

我得到了它固定的人确实sub run丢失了,这里完整的代码工作没有日志错误:

package Kernel::Output::HTML::NotificationUIDCheck;
use strict;
use warnings;

sub new {
my ( $Type, %Param ) = @_;

# allocate new hash for object
my $Self = {};
bless( $Self, $Type );

# get needed objects
for (qw(ConfigObject LogObject DBObject LayoutObject UserID)) {
    $Self->{$_} = $Param{$_} || die "Got no $_!";
}
return $Self;
}

sub Run {
my ( $Self, %Param ) = @_;

# return if it's not root@localhost
return '' if $Self->{UserID} != 1;
}
1;