<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Hi Kevin.<br>
    <br>
    <pre wrap="">I don't have any users with a blank EmailAddress.

My target is create a simple script in perl for create users. This script be called inside RT server.

./create_user <username>

<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: arial,sans-serif; font-size: 16px;"><span class="hps" title="Haz clic para obtener traducciones alternativas">I</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">could</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">do it</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">by inserting</span><span class="Apple-converted-space"> </span><span clas
s="hps" title="Haz clic para obtener traducciones alternativas">data</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">directly</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">in</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">the</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">database</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">RT3</span><span title="Haz clic para obtener traducciones alternativas">,</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">but</span><span class="Apple-converted-space">&n
bsp;</span><span class="hps" title="Haz clic para obtener traducciones alternativas">I</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">wanted to</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">please do it</span><span class="hps" title="Haz clic para obtener traducciones alternativas">using</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">APIs</span><span class="Apple-converted-space"> </span><span class="hps" title="Haz clic para obtener traducciones alternativas">RT.</span></span></span>
</pre>
    rt3_pruebas=# select count(*) from Users where emailaddress = '';<br>
     count<br>
    -------<br>
         0<br>
    (1 row)<br>
    <br>
    Thanks.<br>
    <br>
    El 24/03/2011 21:48, Kevin Falcone escribió:
    <blockquote cite="mid:20110324204822.GN515@jibsheet.com" type="cite">
      <pre wrap="">On Thu, Mar 24, 2011 at 06:46:19PM +0100, sercuto wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">I have change the script. I running the script and local users or
LDAP users, but don't  create user.
</pre>
      </blockquote>
      <pre wrap="">
Did you check if you already have a user with a blank EmailAddress
like I suggested?

select count(*) from Users where EmailAddress = '';
your logs say you're not pulling email back from LDAP

Maybe you should explain what you're trying to do.  It is possible
that there are better ways to accomplish your goal.
If all you want to do is require that new users exist in LDAP, then
make sure that AutoCreateNonExternalUsers is set to 0.

-kevin

</pre>
      <blockquote type="cite">
        <pre wrap="">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 = '<a class="moz-txt-link-abbreviated" href="mailto:pruebas@dominio.com">pruebas@dominio.com</a>';


$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ó:
</pre>
        <blockquote type="cite">
          <pre wrap="">On Thu, Mar 24, 2011 at 05:22:05PM +0100, sercuto wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="">Mi log file is this:
</pre>
          </blockquote>
          <pre wrap="">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

</pre>
          <blockquote type="cite">
            <pre wrap="">[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ó:
</pre>
            <blockquote type="cite">
              <pre wrap="">On Thu, Mar 24, 2011 at 03:20:12PM +0100, Sergio Cubero wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="">I want create user with perl script, but don't working.
Can you help me?
</pre>
              </blockquote>
              <pre wrap="">How doesn't it work?
Please describe the failure and provide the logs.

-kevin

</pre>
              <blockquote type="cite">
                <pre wrap="">#!/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 = '<a class="moz-txt-link-abbreviated" href="mailto:username@domain.com">username@domain.com</a>';
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);



</pre>
              </blockquote>
            </blockquote>
          </blockquote>
        </blockquote>
        <pre wrap="">
</pre>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>