Php
OTRS 中的大規模禁用客戶
問題在於OTRS客戶。我不能使用外部客戶後端,所以我想通過 CSV 文件更新客戶數據庫。我已經編寫了一個腳本來通過
otrs.AddCustomerUser.pl
.但是如何通過腳本批量禁用老客戶?
我創建了一個基於
otrs.AddCustomerUser.pl
使客戶使用者無效的腳本:otrs.DisableCustomerUser.pl:
#!/usr/bin/perl use strict; use warnings; use File::Basename; use FindBin qw($RealBin); use lib dirname($RealBin); use lib dirname($RealBin) . '/Kernel/cpan-lib'; use lib dirname($RealBin) . '/Custom'; use Kernel::Config; use Kernel::System::Encode; use Kernel::System::Log; use Kernel::System::Time; use Kernel::System::Main; use Kernel::System::DB; use Kernel::System::CustomerUser; # create common objects my %CommonObject; $CommonObject{ConfigObject} = Kernel::Config->new(%CommonObject); $CommonObject{EncodeObject} = Kernel::System::Encode->new(%CommonObject); $CommonObject{LogObject} = Kernel::System::Log->new( %CommonObject, LogPrefix => 'OTRS-otrs.DisableCustomerUser.pl' ); $CommonObject{TimeObject} = Kernel::System::Time->new(%CommonObject); $CommonObject{MainObject} = Kernel::System::Main->new(%CommonObject); $CommonObject{DBObject} = Kernel::System::DB->new(%CommonObject); $CommonObject{UserObject} = Kernel::System::CustomerUser->new(%CommonObject); my %Options; use Getopt::Std; getopt( 'c', \%Options ); unless ( $ARGV[0] ) { print "$FindBin::Script [-c CustomerID] username\n"; print "\n"; exit; } my %Param; $Param{Source} = 'CustomerUser'; $Param{UserLogin} = defined $Options{c} ? $Options{c} : $ARGV[0]; my %User = $CommonObject{UserObject}->CustomerUserDataGet( User => $Param{UserLogin}); if ( !%User ) { print "No such user '$Param{UserLogin}'!\n"; exit(1); } my $Success = $CommonObject{UserObject}->CustomerUserUpdate( Source => 'CustomerUser', ID => $User{UserCustomerID}, UserCustomerID => $User{UserCustomerID}, UserLogin => $User{UserCustomerID}, UserFirstname => $User{UserFirstname}, UserLastname => $User{UserLastname}, UserEmail => $User{UserEmail}, ValidID => 2, UserID => 1, ); if($Success eq 1){ print "Set customer user $User{UserCustomerID} to invalid.\n"; } exit(0);
呼叫:
# otrs.DisableCustomerUser.pl [-c CustomerID] username