--- loncom/interface/loncreateuser.pm 2003/07/20 00:39:01 1.65 +++ loncom/interface/loncreateuser.pm 2004/01/19 23:09:07 1.70.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.65 2003/07/20 00:39:01 www Exp $ +# $Id: loncreateuser.pm,v 1.70.2.1 2004/01/19 23:09:07 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -29,10 +29,41 @@ package Apache::loncreateuser; +=pod + +=head1 NAME + +Apache::loncreateuser - handler to create users and custom roles + +=head1 SYNOPSIS + +Apache::loncreateuser provides an Apache handler for creating users, + editing their login parameters, roles, and removing roles, and + also creating and assigning custom roles. + +=head1 OVERVIEW + +=head2 Custom Roles + +In LON-CAPA, roles are actually collections of privileges. "Teaching +Assistant", "Course Coordinator", and other such roles are really just +collection of privileges that are useful in many circumstances. + +Creating custom roles can be done by the Domain Coordinator through +the Create User functionality. That screen will show all privileges +that can be assigned to users. For a complete list of privileges, +please see C. + +Custom role definitions are stored in the C file of the role +author. + +=cut + use strict; use Apache::Constants qw(:common :http); use Apache::lonnet; use Apache::loncommon; +use Apache::lonlocal; my $loginscript; # piece of javascript used in two separate instances my $generalrule; @@ -280,7 +311,10 @@ END END - foreach my $area (sort keys(%rolesdump)) { + foreach my $area (sort { my $a1=join('_',(split('_',$a))[1,0]); + my $b1=join('_',(split('_',$b))[1,0]); + return $a1 cmp $b1; + } keys(%rolesdump)) { next if ($area =~ /^rolesdef/); my $role = $rolesdump{$area}; my $thisrole=$area; @@ -514,7 +548,7 @@ ENDCOAUTH ''); foreach ( sort( keys(%incdomains))) { my $thisdomain=$_; - foreach ('dc','li','dg','au') { + foreach ('dc','li','dg','au','sc') { if (&Apache::lonnet::allowed('c'.$_,$thisdomain)) { my $plrole=&Apache::lonnet::plaintext($_); $r->print(<print(<Creating user "$ENV{'form.ccuname'}" in domain "$ENV{'form.ccdomain'}" +

Creating user "$ENV{'form.ccuname'}" in domain "$ENV{'form.ccdomain'}"

ENDNEWUSERHEAD # Check for the authentication mode and password if (! $amode || ! $genpwd) { @@ -653,7 +687,7 @@ ENDNEWUSERHEAD $r->print('Generating user: '.$result); my $home = &Apache::lonnet::homeserver($ENV{'form.ccuname'}, $ENV{'form.ccdomain'}); - $r->print('
Home server: '.$home.' '. + $r->print('
Home server: '.$home.' '. $Apache::lonnet::libserv{$home}); } elsif (($ENV{'form.login'} ne 'nochange') && ($ENV{'form.login'} ne '' )) { @@ -879,6 +913,8 @@ END } } } # End of foreach (keys(%ENV)) +# Flush the course logs so reverse user roles immediately updated + &Apache::lonnet::flushcourselogs(); $r->print(''); } @@ -1049,7 +1085,7 @@ sub handler { my $r = shift; if ($r->header_only) { - $r->content_type('text/html'); + &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; return OK; } @@ -1060,7 +1096,7 @@ sub handler { (&Apache::lonnet::allowed('cep',$ENV{'request.course.id'})) || (&Apache::lonnet::allowed('cca',$ENV{'request.role.domain'})) || (&Apache::lonnet::allowed('mau',$ENV{'request.role.domain'}))) { - $r->content_type('text/html'); + &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; unless ($ENV{'form.phase'}) { &print_username_entry_form($r);
RevokeDeleteRoleExtentStartEndStartEnd