0

我在 Windows 2008 服务器上使用 OTRS 3.2.11。我对 Kernel/Output/HTML/NotificationUIDCheck.pm 文件进行了一些修改,以消除显示“不要使用超级用户帐户...”的红色警告消息。现在该消息不再出现,但日志文件不断显示此消息:

[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;

我想有些东西不见了,你能帮助人们找出如何解决它吗!!!

4

2 回答 2

0

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

您实际上不想使用此帐户是有原因的,并且当您使用它时 ACL 不适用,并且默认情况下,超级用户帐户将是通过电子邮件和/或客户创建的所有工单的所有者门户网站。

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

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

这样就不需要更改代码。

于 2014-05-22T18:58:19.310 回答
-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;
于 2014-05-19T10:15:13.513 回答