#!/usr/bin/perl use strict; use warnings; use RPC::XML; use RPC::XML::Client; use Data::Dumper; use Digest::MD5 qw/md5_hex/; my $host = $ARGV[0]; my $username = $ARGV[1]; my $password = $ARGV[2]; my $workstation = $ARGV[3]; my $client = RPC::XML::Client->new( "https://$host/xml-rpc/open-ils.auth" ); my $seed = $client->simple_request( 'open-ils.auth.authenticate.init', RPC::XML::string->new($username) ); $password = md5_hex($seed . md5_hex($password)); my $response = $client->simple_request( 'open-ils.auth.authenticate.complete', RPC::XML::struct->new( username => $username, password => $password, workstation => $workstation, type => 'staff' ) ); my $payload = $response->{payload}; my $authtoken = $payload->{authtoken}; my $user = $client->simple_request( 'open-ils.auth.session.retrieve', RPC::XML::string->new($authtoken) ); print Dumper $user; my $gname = lc($user->{__data__}->{first_given_name}); my $fname = lc($user->{__data__}->{family_name}); $user->{__data__}->{first_given_name} = $gname; $user->{__data__}->{family_name} = $fname; $user->{__data__}->{ischanged} = 't'; $client->uri( "https://$host/xml-rpc/open-ils.actor" ); my $result = $client->simple_request( 'open-ils.actor.patron.update', RPC::XML::string->new($authtoken), RPC::XML::struct->new($user) ); print Dumper $result; $client->uri( "https://$host/xml-rpc/open-ils.auth" ); $result = $client->simple_request( 'open-ils.auth.session.delete', RPC::XML::string->new($authtoken) ); print Dumper $result;