--- loncom/interface/selfenroll.pm 2008/03/12 02:45:07 1.2 +++ loncom/interface/selfenroll.pm 2008/05/14 20:06:51 1.3 @@ -1,7 +1,7 @@ # The LearningOnline Network # Allow users to self-enroll in a course # -# $Id: selfenroll.pm,v 1.2 2008/03/12 02:45:07 raeburn Exp $ +# $Id: selfenroll.pm,v 1.3 2008/05/14 20:06:51 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -66,7 +66,7 @@ sub handler { return OK; } my ($cdom,$cnum,$canenroll,$selfenroll_types,$selfenroll_registered, - $cancreate,$knownuser,$selfenroll_access_start,$selfenroll_access_end, + @cancreate,$knownuser,$selfenroll_access_start,$selfenroll_access_end, $selfenroll_section,%curr_role,%coursehash); my $now = time; %coursehash = &Apache::lonnet::coursedescription($cid); @@ -122,7 +122,7 @@ sub handler { $r->print(&Apache::loncommon::end_page()); return OK; } - $cancreate = &can_create($cdom); + @cancreate = &can_create($cdom); my ($login_path,$firsturl,$create_path,$sso_url,$missing_formitem); $login_path = '/adm/login'; $firsturl= '/adm/selfenroll?cid='.$cid; @@ -140,7 +140,7 @@ sub handler { &process_self_enroll($r,$cdom,$cnum,$selfenroll_types,$selfenroll_registered, $selfenroll_access_start,$selfenroll_access_end, $selfenroll_section,$now); - } elsif ($cancreate) { + } elsif (@cancreate > 0) { $r->print(< function setPath(formaction,item,arg) { @@ -167,14 +167,33 @@ function getIndexByName(item) { END $r->print(&mt('You need to be logged into LON-CAPA to self-enroll in a course.').''); @@ -221,19 +240,23 @@ sub user_is_known { sub can_create { my ($cdom) = @_; - my $cancreate = ''; + my @cancreate; my %domconfig = &Apache::lonnet::get_dom('configuration',['usercreation'],$cdom); if (ref($domconfig{'usercreation'}) eq 'HASH') { if (ref($domconfig{'usercreation'}{'cancreate'}) eq 'HASH') { if ($domconfig{'usercreation'}{'cancreate'}{'selfcreate'} ne 'none') { - $cancreate = $domconfig{'usercreation'}{'cancreate'}{'selfcreate'}; + if (ref($domconfig{'usercreation'}{'cancreate'}{'selfcreate'}) eq 'ARRAY') { + @cancreate = @{$domconfig{'usercreation'}{'cancreate'}{'selfcreate'}}; + } else { + if (($domconfig{'usercreation'}{'cancreate'}{'selfcreate'} ne 'none') && + ($domconfig{'usercreation'}{'cancreate'}{'selfcreate'} ne '')) { + @cancreate = ($domconfig{'usercreation'}{'cancreate'}{'selfcreate'}); + } + } } } } - if ($cancreate eq 'none') { - $cancreate = ''; - } - return $cancreate; + return @cancreate; } sub has_role {