Skip to content

Commit

Permalink
Add create_user: Create a new user
Browse files Browse the repository at this point in the history
  • Loading branch information
sadam21 authored and lkundrak committed Feb 15, 2013
1 parent 48f83bf commit 8c5798e
Show file tree
Hide file tree
Showing 3 changed files with 131 additions and 0 deletions.
2 changes: 2 additions & 0 deletions ISSUES
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,5 @@ Detected invalid maql statement(s): got ';' at {"line":2,"column":1}, but ['' |
* https://secure-di.gooddata.com/gdc/uploads/nonexistent

Returns same as https://secure-di.gooddata.com/gdc/uploads instead of 404

* /gdc/account/domains/ is not navigatable
93 changes: 93 additions & 0 deletions bin/gdc
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ my %actions = (
lsprojects => \&lsprojects,
rmproject => \&rmproject,
mkproject => \&mkproject,
mkuser => \&mkuser,
project => \&project,
lsreports => \&lsreports,
export => \&export,
Expand Down Expand Up @@ -292,6 +293,98 @@ sub rmproject
$gdc->delete_project ($project);
}

=head2 mkuser <domain> <email> [login] <password> <firstname> <lastname> <phone> [company] [sso_provider]
Create user.
=over 4
=item B<-d>, B<--domain>
Domain in which will be user created. Default is 'default'.
=back
=cut

=item B<-e>, B<--email>
User email.
=back
=item B<-l>, B<--login>
User login. Same as email if no login is provided
=back
=item B<-p>, B<--passwd>
User password.
=back
=item B<-f>, B<--firstname>
User firstname.
=back
=item B<-l>, B<--lastname>
User lastname.
=back
=item B<-t>, B<--phone>
User phone number.
=back
=item B<-c>, B<--company>
User company.
=back
=item B<-o>, B<--sso>
User domain.
=back
=cut

sub mkuser
{
my $domain;
my $email;
my $login;
my $passwd;
my $firstname;
my $lastname;
my $phone;
my $company;
my $sso_provider;

GetOptionsFromArray (\@_,
'd|domain=s' => \$domain,
'e|email=s' => \$email,
'l|login=s' => \$login,
'p|passwd=s' => \$passwd,
'f|firstname=s' => \$firstname,
'l|lastname=s' => \$lastname,
't|phone=s' => \$phone,
'c|company=s' => \$company,
'o|sso=s' => \$sso_provider,
) or die 'Bad arguments to mkuser';

$user = $gdc->create_user ($domain, $email, $login, $passwd, $firstname,
$lastname, $phone, $company, $sso_provider);
}

=head2 mkproject <title> [summary]
Create a project.
Expand Down
36 changes: 36 additions & 0 deletions lib/WWW/GoodData.pm
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,42 @@ sub create_project
}})->{uri};
}

=item B<create_user> DOMAIN EMAIL LOGIN PASSWORD FIRST_NAME LAST_NAME PHONE COMPANY SSO_PROVIDER
Create a user given its email, login, password, first name, surname, phone and optionally company,
sso provider in domain.
Returns user identifier (URI).
=cut

sub create_user
{
my $self = shift;
my $domain_uri = shift || die "No domain specified";
my $email = shift || die "Email must be specified";
my $login = shift || $email;
my $passwd = shift;
my $firstname = shift;
my $lastname = shift;
my $phone = shift;
my $company = shift || '';
my $sso_provider = shift;

return $self->{agent}->post ($domain_uri."/users", { #TODO links does not exists in REST API
accountSetting => {
login => $login,
email => $email,
password => $passwd,
verifyPassword => $passwd,
firstName => $firstname,
lastName => $lastname,
phoneNumber => $phone,
companyName => $company,
($sso_provider ? (ssoProvider => $sso_provider) : ()),
}})->{uri};
}

=item B<reports> PROJECT
Return array of links to repoort resources on metadata server.
Expand Down

0 comments on commit 8c5798e

Please sign in to comment.