[rt-users] script create user in RT system with validation LDAP

sercuto sercuto at alumni.uv.es
Thu Mar 24 13:46:19 EDT 2011


Hi Kevin.

I have change the script. I running the script and local users or LDAP 
users, but don't  create user.

This is my new script:

#!/usr/bin/perl
use lib ("/usr/local/rt-3.8.2_pruebas/lib/");

use RT::Interface::CLI qw(CleanEnv);
use RT;
use RT::Util;
RT::LoadConfig();
RT::Init();
use RT::Ticket;
use RT::CurrentUser;
use RT::CustomField;
use RT::Action::Generic;
use RT::Transaction;
use MIME::Entity;
package RT::Action::MyAction;
use base qw(RT::Action::Generic);
use RT::Authen::ExternalAuth::LDAP;
use RT::Authen::ExternalAuth::DBI;

my $user = 'pruebas';
my $mail = 'pruebas at dominio.com';


$session{'CurrentUser'} = RT::CurrentUser->new();
my $load_method = RT->Config->Get('WebExternalGecos') ? 'LoadByGecos' : 
'Load';
$session{'CurrentUser'} = RT::CurrentUser->new();
$session{'CurrentUser'}->$load_method($user);
  my $UserObj = RT::User->new(RT::CurrentUser->new('RT_System'));
             my ($val, $msg) = $UserObj->Create(
                                                %{ref($RT::AutoCreate) ? 
$RT::AutoCreate : {}},
                                                Name   => $user,
                                                Gecos  => $user,
                                                );

$session{'CurrentUser'}->Load($user) if $UserObj->Id;
$RT::Logger->error( "No puedo crear el usuario $user: $msg" );


-------------------------------------------------------------------------------------------

This is my ouput log file:

[Thu Mar 24 17:40:34 2011] [debug]: 
RT::Authen::ExternalAuth::CanonicalizeUserInfo called by RT::User 
/usr/local/rt-3.8.2_pruebas/lib//RT/User_Vendor.pm 20 with: Disabled: 0, 
EmailAddress: , Gecos: pruebas, Name: pruebas, Privileged: 0 
(/usr/local/rt-3.8.2_pruebas/lib//RT/Authen/ExternalAuth.pm:450)
[Thu Mar 24 17:40:34 2011] [debug]: Attempting to get user info using 
this external service:  
(/usr/local/rt-3.8.2_pruebas/lib//RT/Authen/ExternalAuth.pm:458)
[Thu Mar 24 17:40:34 2011] [info]: 
RT::Authen::ExternalAuth::CanonicalizeUserInfo returning Disabled: 0, 
EmailAddress: , Gecos: pruebas, Name: pruebas, Privileged: 0 
(/usr/local/rt-3.8.2_pruebas/lib//RT/Authen/ExternalAuth.pm:536)
[Thu Mar 24 17:40:34 2011] [error]: No puedo crear el usuario pruebas: 
Could not set user info (./crea_user2.pl:39)
...................................................................................................................................

thanks.

El 24/03/2011 18:33, Kevin Falcone escribió:
> On Thu, Mar 24, 2011 at 05:22:05PM +0100, sercuto wrote:
>> Mi log file is this:
> I don't see most of your log messages showing up there, especially the
> part that tells you if this is an external or internal user.  Are they
> getting cut out?
>
> You're also not returning an email address for the user, which makes
> me think you might already have a user in the system with a blank
> email address and RT won't allow you to make two like that.
>
> -kevin
>
>> [Thu Mar 24 16:20:36 2011] [debug]:
>> RT::Authen::ExternalAuth::CanonicalizeUserInfo called by RT::User
>> /usr/local/rt-3.8.2_pruebas/lib//RT/User_Vendor.pm 20 with:
>> Disabled: 0, EmailAddress: , Gecos: pruebas, Name: pruebas,
>> Privileged: 0
>> (/usr/local/rt-3.8.2_pruebas/lib//RT/Authen/ExternalAuth.pm:450)
>> [Thu Mar 24 16:20:36 2011] [debug]: Attempting to get user info
>> using this external service:
>> (/usr/local/rt-3.8.2_pruebas/lib//RT/Authen/ExternalAuth.pm:458)
>> [Thu Mar 24 16:20:36 2011] [info]:
>> RT::Authen::ExternalAuth::CanonicalizeUserInfo returning Disabled:
>> 0, EmailAddress: , Gecos: pruebas, Name: pruebas, Privileged: 0
>> (/usr/local/rt-3.8.2_pruebas/lib//RT/Authen/ExternalAuth.pm:536)
>> [Thu Mar 24 16:20:36 2011] [error]: No puedo crear el usuario
>> pruebas: Could not set user info (./scripts/crea_user2.pl:39)
>>
>> Thanks.
>>
>> El 24/03/2011 16:58, Kevin Falcone escribió:
>>> On Thu, Mar 24, 2011 at 03:20:12PM +0100, Sergio Cubero wrote:
>>>> I want create user with perl script, but don't working.
>>>> Can you help me?
>>> How doesn't it work?
>>> Please describe the failure and provide the logs.
>>>
>>> -kevin
>>>
>>>> #!/usr/bin/perl
>>>> use lib ("/usr/local/rt-3.8.2/lib/");
>>>> use RT::Interface::CLI qw(CleanEnv);
>>>> use RT;
>>>> RT::LoadConfig();
>>>> RT::Init();
>>>> use RT::Ticket;
>>>> use RT::CurrentUser;
>>>> use RT::CustomField;
>>>> use RT::Action::Generic;
>>>> use RT::Transaction;
>>>> use MIME::Entity;
>>>> package RT::Action::MyAction;
>>>> use base qw(RT::Action::Generic);
>>>> use RT::Authen::ExternalAuth::LDAP;
>>>> use RT::Authen::ExternalAuth::DBI;
>>>>
>>>> my $user = 'username';
>>>> my $mail = 'username at domain.com';
>>>> RT->Config->Get('WebExternalAuto');
>>>>
>>>> $session->{'CurrentUser'} = RT::CurrentUser->new();
>>>> $session->{'CurrentUser'}->Load($user);
>>>>
>>>> my $UserObj = RT::User->new($RT::SystemUser);
>>>> print $UserObj."\n";
>>>> my ($val, $msg) = $UserObj->SetName($user);
>>>>
>>>> my ($val, $msg) =
>>>>
>>>> $UserObj->Create(
>>>>                   %{ref($RT::AutoCreate) ? $RT::AutoCreate : {}},
>>>>                   Name   =>   $user,
>>>>                   Gecos  =>   $user,
>>>>                   _RecordTransaction =>   1,
>>>>                   EmailAddress =>   $mail,
>>>>                   RealName     =>   'User USer',
>>>>                   Comments =>   'user LDAP',
>>>>                   WorkPhone =>   'phone,
>>>>                   Address1 =>   'streetAddress',
>>>>                   City =>   'l',
>>>>                   State =>   'st',
>>>>                   Zip =>   'postalCode',
>>>>                   Country =>   'co'
>>>>                   );
>>>> $RT::Logger->info("Autocreated authenticated user " . $UserObj->Name .
>>>>                                     " (" . $UserObj->Id . ")\n");
>>>>
>>>> $session{'CurrentUser'}->Load($user) if $UserObj->Id;
>>>> $RT::Logger->error( "No puedo crear el usuario $user: $msg" );
>>>>
>>>> if(RT::Authen::ExternalAuth::UserExists($user)){ print "EXISTS";}
>>>> else {print "NO EXISTS";}
>>>>
>>>>
>>>>
>>>> $RT::Logger->info(  "Autocreated external user",
>>>>                                  $UserObj->Name,
>>>>                                  "(",
>>>>                                  $UserObj->Id,
>>>>                                  ")");
>>>>
>>>>              $RT::Logger->debug("Loading new user (",
>>>>                                  $username,
>>>>                                  ") into current session");
>>>>              $session->{'CurrentUser'}->Load($username);
>>>>
>>>>
>>>>




More information about the rt-users mailing list