& /Admin/Elements/Header, Title => 'Modify user '. $UserObj->UserId &>
<& /Admin/Elements/Tabs &>
%foreach $result (@results) {
<%$result%>
%}
<& /Elements/TitleBoxStart, title => $title &>
<%INIT>
use RT::Interface::Web;
my $UserObj = new RT::User($session{'CurrentUser'});
my ($title);
if ($Create) {
$title = "Create a new user";
}
else {
if ($id eq 'new') {
$UserObj->Create( UserId => $UserId );
}
else {
$UserObj->Load($id) || $UserObj->Load($UserId) || $m->comp('/Elements/Error', Why => "Couldn't load user '$UserId'");
}
$title = "Modify the user ". $UserObj->UserId;
}
my @fields = qw(UserId Comments Signature EmailAddress FreeformContactInfo
Organization RealName NickName Lang EmailEncoding WebEncoding
ExternalContactInfoId ContactInfoSystem Gecos ExternalAuthId
AuthSystem HomePhone WorkPhone MobilePhone PagerPhone Address1
Address2 City State Zip Country
);
#Run through each field in this list. update the value if apropriate
my $field;
foreach $field (@fields) {
my ($code, $msg);
my $check = "if ((defined \$$field) and (\$$field !~ \$UserObj->$field)) {
(\$code, \$msg) = \$UserObj->Set$field(\$$field);
push \@results, \$msg;
}";
eval $check;
}
#TODO: make this report errors properly
if ((defined $Pass1) and ($Pass1 eq $Pass2) and (!$UserObj->IsPassword($Pass1))) {
my ($code, $msg);
($code, $msg) = $UserObj->SetPassword($Pass1);
push @results, $msg;
}
%INIT>
<%ARGS>
$id => undef
$result => undef
@results => undef
$UserId => undef
$Comments => undef
$Signature => undef
$EmailAddress => undef
$FreeformContactInfo => undef
$Organization => undef
$RealName => undef
$NickName => undef
$Lang => undef
$EmailEncoding => undef
$WebEncoding => undef
$ExternalContactInfoId => undef
$ContactInfoSystem => undef
$Gecos => undef
$ExternalAuthId => undef
$AuthSystem => undef
$HomePhone => undef
$WorkPhone => undef
$MobilePhone => undef
$PagerPhone => undef
$Address1 => undef
$Address2 => undef
$City => undef
$State => undef
$Zip => undef
$Country => undef
$Pass1 => undef
$Pass2=> undef
$Create=> undef
%ARGS>