BZ-Client
view release on metacpan or search on metacpan
lib/BZ/Client/User.pm view on Meta::CPAN
#!/bin/false
# PODNAME: BZ::Client::User
# ABSTRACT: Creates and edits user accounts in Bugzilla
use strict;
use warnings 'all';
package BZ::Client::User;
$BZ::Client::User::VERSION = '4.4004';
use parent qw( BZ::Client::API );
# See https://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/User.html
## functions
sub offer_account_by_email {
my($class, $client, $params) = @_;
unless (ref $params) {
$params = { email => $params }
}
$client->log('debug', $class . '::offer_account_by_email: Inviting');
return $class->api_call($client, 'User.offer_account_by_email', $params, { empty_response_ok => 1});
}
sub get {
my($class, $client, $params) = @_;
$client->log('debug', $class . '::get: Asking.');
if ($params->{'include_disabled'}) {
$params->{'include_disabled'} = BZ::Client::XMLRPC::boolean::TRUE()
}
else {
$params->{'include_disabled'} = BZ::Client::XMLRPC::boolean::FALSE()
}
my $users = $class->_returns_array($client, 'User.get', $params, 'users');
my @result;
for my $user (@$users) {
push(@result, $class->new(%$user));
}
$client->log('debug', $class . '::get: Got ' . scalar(@result));
return wantarray ? @result : \@result
}
## methods
sub create {
my($class, $client, $params) = @_;
return $class->_create($client, 'User.create', $params);
}
sub update {
my($class, $client, $params) = @_;
$client->log('debug', $class . '::update: Updating.');
if (defined $params->{'email_enabled'}) {
if ($params->{'email_enabled'}) {
$params->{'email_enabled'} = BZ::Client::XMLRPC::boolean::TRUE()
}
else {
$params->{'email_enabled'} = BZ::Client::XMLRPC::boolean::FALSE()
}
}
my $users = $class->_returns_array($client, 'User.update', $params, 'users');
my @result;
for my $user (@$users) {
push(@result, $class->new(%$user));
}
$client->log('debug', $class . '::update: Got ' . scalar(@result));
return wantarray ? @result : \@result
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
BZ::Client::User - Creates and edits user accounts in Bugzilla
=head1 VERSION
version 4.4004
=head1 SYNOPSIS
This class provides methods for accessing information about the Bugzilla
servers installation.
my $client = BZ::Client->new( url => $url,
user => $user,
password => $password );
my $ok = BZ::Client::User->offer_account_by_email( $client, 'email@address' );
my $users = BZ::Client::User->get( $client, \%params );
my $id = BZ::Client::User->create( $client, \%params );
my $users = BZ::Client::User->update( $client, \%params );
=head1 CLASS METHODS
This section lists the class methods, which are available in this module.
=head2 offer_account_by_email
my $ok = BZ::Client::User->offer_account_by_email( $client, 'email@address' );
my $ok = BZ::Client::User->offer_account_by_email( $client, \%params );
Sends an email to the user, offering to create an account. The user will have to click on a URL in the email, and choose their password and real name.
( run in 0.580 second using v1.01-cache-2.11-cpan-39bf76dae61 )