@@ -18,11 +18,6 @@ be granted professor privileges.
1818
1919=over
2020
21- =item B<--db-layout > =I<LAYOUT >
22-
23- The specified database layout will be used in place of the default specified in
24- F<defaults.config> .
25-
2621=item B<--users > =I<FILE >
2722
2823The users listed in the comma-separated text file I<FILE > will be added to the
@@ -63,30 +58,26 @@ BEGIN {
6358use lib " $ENV {WEBWORK_ROOT}/lib" ;
6459
6560use WeBWorK::CourseEnvironment;
66-
67- # Grab course environment (by reading webwork2/conf/defaults.config)
68- my $ce = WeBWorK::CourseEnvironment-> new;
69-
70- use WeBWorK::DB;
7161use WeBWorK::File::Classlist;
7262use WeBWorK::Utils qw( runtime_use cryptPassword) ;
7363use WeBWorK::Utils::CourseManagement qw( addCourse) ;
7464use WeBWorK::File::Classlist qw( parse_classlist) ;
65+ use WeBWorK::DB::Record::User;
66+ use WeBWorK::DB::Record::Password;
67+ use WeBWorK::DB::Record::PermissionLevel;
7568
7669sub usage_error {
7770 warn " @_ \n " ;
7871 warn " usage: $0 [options] COURSEID\n " ;
7972 warn " Options:\n " ;
80- warn " [--db-layout=LAYOUT]\n " ;
8173 warn " [--users=FILE [--professors=USERID[,USERID]...] ]\n " ;
8274 exit ;
8375}
8476
85- my ($dbLayout , $ users , $templates_from ) = (' ' , ' ' , ' ' );
77+ my ($users , $templates_from ) = (' ' , ' ' );
8678my @professors ;
8779
8880GetOptions(
89- " db-layout=s" => \$dbLayout ,
9081 " users=s" => \$users ,
9182 " professors=s" => \@professors ,
9283 " templates-from=s" => \$templates_from ,
@@ -96,33 +87,16 @@ my $courseID = shift;
9687
9788usage_error(' The COURSEID must be provided.' ) unless $courseID ;
9889
99- $ce = WeBWorK::CourseEnvironment-> new({ courseName => $courseID });
90+ my $ce = WeBWorK::CourseEnvironment-> new({ courseName => $courseID });
10091
10192die " Aborting addcourse: Course ID cannot exceed $ce ->{maxCourseIdLength} characters."
10293 if length ($courseID ) > $ce -> {maxCourseIdLength };
10394
104- if ($dbLayout ) {
105- die " Database layout $dbLayout does not exist in the course environment." ,
106- " (It must be defined in defaults.config.)\n "
107- unless exists $ce -> {dbLayouts }{$dbLayout };
108- } else {
109- $dbLayout = $ce -> {dbLayoutName };
110- }
111-
11295usage_error(" Can't specify --professors without also specifying --users." )
11396 if @professors && !$users ;
11497
11598my @users ;
11699if ($users ) {
117- # This is a hack to create records without bringing up a DB object
118- my $userClass = $ce -> {dbLayouts }{$dbLayout }{user }{record };
119- my $passwordClass = $ce -> {dbLayouts }{$dbLayout }{password }{record };
120- my $permissionClass = $ce -> {dbLayouts }{$dbLayout }{permission }{record };
121-
122- runtime_use($userClass );
123- runtime_use($passwordClass );
124- runtime_use($permissionClass );
125-
126100 my @classlist = parse_classlist($users );
127101 for my $record (@classlist ) {
128102 my %record = %$record ;
@@ -154,9 +128,9 @@ if ($users) {
154128
155129 push @users ,
156130 [
157- $userClass -> new(%record ),
158- $record { password } ? $passwordClass -> new(user_id => $user_id , password => $record {password }) : undef ,
159- $permissionClass -> new(
131+ WeBWorK::DB::Record::User -> new(%record ),
132+ WeBWorK::DB::Record::Password -> new(user_id => $user_id , password => $record {password }),
133+ WeBWorK::DB::Record::PermissionLevel -> new(
160134 user_id => $user_id ,
161135 permission => defined $professors {$user_id }
162136 ? $ce -> {userRoles }{professor }
@@ -176,15 +150,7 @@ if ($templates_from) {
176150 $optional_arguments {copyTemplatesHtml } = 1;
177151}
178152
179- eval {
180- addCourse(
181- courseID => $courseID ,
182- ce => $ce ,
183- courseOptions => { dbLayoutName => $dbLayout },
184- users => \@users ,
185- %optional_arguments ,
186- );
187- };
153+ eval { addCourse(courseID => $courseID , ce => $ce , users => \@users , %optional_arguments ,); };
188154
189155die " $@ \n " if $@ ;
190156
0 commit comments