X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Flib%2Ft%2Fcreate_data.pl;fp=rt%2Flib%2Ft%2Fcreate_data.pl;h=0000000000000000000000000000000000000000;hb=5c96d46d56f2066bb40d9a34c4db56f53f43c6f2;hp=35226ea7453f67ae11db0094a46cab024b1711bb;hpb=63a268637b2d51a8766412617724b9436439deb6;p=freeside.git diff --git a/rt/lib/t/create_data.pl b/rt/lib/t/create_data.pl deleted file mode 100644 index 35226ea74..000000000 --- a/rt/lib/t/create_data.pl +++ /dev/null @@ -1,136 +0,0 @@ -#!@PERL@ -w -use strict; - -use Test::More qw/no_plan/; -use Text::Lorem; -use RT; -RT::LoadConfig; -RT::Init; - -#### Generate some number of RT accounts. Come up with random -#### usernames if requested, otherwise use provided ones. Take -#### $subdomain argument so that we can generate customer accounts, -#### etc. Group memberships should also be provided. - -=head2 create_users - -=over 4 - -This subroutine creates a number of RT users, if they don't already -exist, and places them in the specified group. It also creates the -group if it needs to. Returns a ref to a list containing the user -objects. - -If a list of names is specified, users with those names are created. -Otherwise, it will make names up, checking to be sure that a user with -the random name does not yet exist. Each user will have an email -address in "example.com". - -Takes a hash of the following arguments: -number => How many users to create. Default is 1. -names => A ref to a list of usernames to use. Optional. -subdomain => The subdomain of example.com which should be used for - email addresses. -group => The name of the group these users should belong to. Creates - the group if it does not yet exist. -privileged => Whether the users should be able to be granted rights. - Default is 1. -attributes => a ref to a list of hashrefs containing the arguments for - any unsupported attribute we should add to the user (for example, a - user saved search.) - -=back - -=cut - -sub create_users { - my %ARGS = (number => 1, - subdomain => undef, - privileged => 1, - @_); - my $lorem = Text::Lorem->new(); - my @users_returned; - - my @usernames; - my $anon; - if ($ARGS{'users'}) { - @usernames = @{$ARGS{'users'}}; - $anon = 0; - } else { - @usernames = split(/\s+/, $lorem->words($ARGS{'number'})); - $anon = 1; - } - - my $domain = 'example.com'; - $domain = $ARGS{'subdomain'} . ".$domain" if $ARGS{'subdomain'}; - - foreach my $user (@usernames) { - my $user_obj = RT::User->new($RT::SystemUser); - $user_obj->Load($user); - if ($user_obj->Id() && !$anon) { - # Use this user; assume we know what we're doing. Don't - # modify it, other than adding it to any group specified. - push(@users_returned, $user_obj); - } elsif ($user_obj->Id()) { - # Oops. Get a different username and stick it on the back - # of the list. - append(@users, $lorem->words(1)); - } else { - $user_obj->Create(Name => $user, - Password => $user."pass", - EmailAddress => $user.'@'.$domain, - RealName => "$user ipsum", - Privileged => $ARGS{'privileged'}, - ); - push(@users_returned, $user_obj); - } - } - - # Now we have our list of users. Did we have groups to add them - # to? - - if ($ARGS{'groups'}) { - my @groups = @{$ARGS{'groups'}}; - foreach my $group (@groups) { - my $group_obj = RT::Group->new(); - $group_obj->LoadUserDefinedGroup($group); - unless ($group_obj->Id()) { - # Create it. - $group_obj->CreateUserDefinedGroup( - Name => $group, - Description => "lorem defined group $group", - ); - } - foreach (@users_returned) { - $group_obj->AddMember($_->Id); - } - } - } - - # Do we have attributes to apply to the users? - if ($ARGS{'attributes'}) { - foreach my $attrib (@{$ARGS{'attributes'}}) { - my %attr_args = %{$attrib}; - foreach (@users_returned) { - $_->AddAttribute(%attr_args); - } - } - } - - # Return our list of users. - return \@users_returned; -} - -#### Generate any RT groups. These ought to be named, by function. -#### The group names should be given either as part of user creation, -#### or as a name with a number of subgroups which should be members. - - -#### Generate some queues. Users/groups who have permissions on -#### queues need to be specified on this point. Permissions can be -#### specified by role, e.g. "client" or "staffmember" or "admin" for -#### each queue. If the queue should have anything special like a -#### custom field, say so here. - - -#### Generate some tickets and transactions.