ModifyUserPreferences

From Request Tracker Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

I had a situation where a once-privileged user had been made non-privileged, since they had left our institute, but they had email preference settings set to weekly batch.

Unfortunately, the GUI has no interface to change a user's preferences, other than having the user do it themselves. Fortunately, it wasn't too difficult to write a small perl script to delete a named user's email preference setting:

#!/usr/bin/perl -w

use strict;

use lib qw(/opt/rt3/lib /opt/rt3/local/lib);

use Getopt::Long;
use RT;
use RT::Interface::CLI qw/GetCurrentUser/;

RT::LoadConfig;
RT::Init;

my $name;

GetOptions("name=s" => \$name);

die "Usage: $0 --name=bloggs\n" unless ($name);

my $u = RT::User->new($RT::SystemUser);

my ($id, $err) = $u->LoadByCol('Name' => $name);
die("Couldn't load user '$name': $err\n") unless ($id > 0);

my $p = $u->Preferences( $RT::System );
delete($p->{'EmailFrequency'});
$u->SetPreferences( $RT::System, $p);