--- loncom/interface/loncreateuser.pm 2007/06/07 22:23:11 1.150 +++ loncom/interface/loncreateuser.pm 2007/07/20 23:52:55 1.157 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.150 2007/06/07 22:23:11 banghart Exp $ +# $Id: loncreateuser.pm,v 1.157 2007/07/20 23:52:55 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -222,10 +222,10 @@ sub print_username_entry_form { $r->print(<<"ENDDOCUMENT"); $start_page
- +

$lt{siur}$helpsiur

-
$lt{usr}: +
$lt{usr}: $sellink
$lt{'dom'}:$domform
@@ -235,7 +235,7 @@ ENDDOCUMENT if (&Apache::lonnet::allowed('mcr','/')) { $r->print(< - +

$lt{'ecrp'}$helpecpr

$lt{'nr'}: $choice
@@ -506,12 +506,12 @@ ENDSECCODE my $forminfo =<<"ENDFORMINFO"; - - - - - - + + + + + + ENDFORMINFO my $uhome=&Apache::lonnet::homeserver($ccuname,$ccdomain); my %inccourses; @@ -730,7 +730,7 @@ END my $active=1; $active=0 if (($role_end_time) && ($now>$role_end_time)); if (($active) && ($allowed)) { - $row.= ''; + $row.= ''; } else { if ($active) { $row.=' '; @@ -740,13 +740,13 @@ END } $row.=''; if ($allowed && !$active) { - $row.= ''; + $row.= ''; } else { $row.=' '; } $row.=''; if ($delallowed) { - $row.= ''; + $row.= ''; } else { $row.=' '; } @@ -999,13 +999,13 @@ ENDNOPRIV $num_domain_level ++; $domaintext .= &Apache::loncommon::start_data_table_row(). -' +' '.$plrole.' '.$thisdomain.' - + '.$lt{'ssd'}.' - + '.$lt{'sed'}.''. &Apache::loncommon::end_data_table_row(); @@ -1022,10 +1022,10 @@ ENDNOPRIV if ($env{'request.role'} =~ m{^dc\./($match_domain)/$}) { $r->print(&course_level_dc($1,'Course')); - $r->print('
'."\n"); + $r->print('
'."\n"); } else { $r->print(&course_level_table(%inccourses)); - $r->print('
'."\n"); + $r->print('
'."\n"); } $r->print("".&Apache::loncommon::end_page()); } @@ -1611,43 +1611,29 @@ sub custom_role_editor { &print_username_entry_form($r); return; } - my $head_script = < - function setchecks() { - document.form1.bre_c.checked = false; - } - -END_SCRIPT - - $r->print(&Apache::loncommon::start_page('Custom Role Editor',$head_script)); +# ------------------------------------------------------- What can be assigned? + my %full=(); + my %courselevel=(); + my %courselevelcurrent=(); my $syspriv=''; my $dompriv=''; my $coursepriv=''; + my $body_top; my ($disp_dummy,$disp_roles) = &Apache::lonnet::get('roles',["st"]); my ($rdummy,$roledef)= &Apache::lonnet::get('roles',["rolesdef_$rolename"]); # ------------------------------------------------------- Does this role exist? - $r->print('

'); + $body_top .= '

'; if (($rdummy ne 'con_lost') && ($roledef ne '')) { - $r->print(&mt('Existing Role').' "'); + $body_top .= &mt('Existing Role').' "'; # ------------------------------------------------- Get current role privileges ($syspriv,$dompriv,$coursepriv)=split(/\_/,$roledef); } else { - $r->print(&mt('New Role').' "'); + $body_top .= &mt('New Role').' "'; $roledef=''; } - $r->print($rolename.'"

'); -# ------------------------------------------------------- What can be assigned? - my %full=(); - my %courselevel=(); - my %courselevelcurrent=(); - my @roles = ("st:c","st:d"); - foreach my $item (@roles) { - &Apache::lonnet::logthis(" roles for $item: ".$Apache::lonnet::pr{$item}); - } - + $body_top .= $rolename.'"'; foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:c'})) { - my ($priv,$restrict)=split(/\&/,$item); if (!$restrict) { $restrict='F'; } $courselevel{$priv}=$restrict; @@ -1678,12 +1664,26 @@ END_SCRIPT } $full{$priv}=1; } + my $button_code = "\n"; + my $head_script = "\n"; + $head_script .= ''."\n"; + $r->print(&Apache::loncommon::start_page('Custom Role Editor',$head_script)); + $r->print($body_top); my %lt=&Apache::lonlocal::texthash( 'prv' => "Privilege", 'crl' => "Course Level", 'dml' => "Domain Level", 'ssl' => "System Level"); - $r->print('
'); + $r->print('Select a Template
'); + $r->print('
'); + $r->print($button_code); + $r->print('
'); $r->print(< @@ -1710,10 +1710,81 @@ ENDCCF &Apache::loncommon::end_data_table_row()); } $r->print(&Apache::loncommon::end_data_table(). - ''. + ''. &Apache::loncommon::end_page()); } - +# -------------------------------------------------------- +sub make_script_template { + my ($role) = @_; + my %full_c=(); + my %full_d=(); + my %full_s=(); + my $return_script; + foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:c'})) { + my ($priv,$restrict)=split(/\&/,$item); + $full_c{$priv}=1; + } + foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:d'})) { + my ($priv,$restrict)=split(/\&/,$item); + $full_d{$priv}=1; + } + foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:s'})) { + my ($priv,$restrict)=split(/\&/,$item); + $full_s{$priv}=1; + } + $return_script .= 'function set_'.$role.'() {'."\n"; + my @temp = split(/:/,$Apache::lonnet::pr{$role.':c'}); + my %role_c; + foreach my $priv (@temp) { + my ($priv_item, $dummy) = split(/\&/,$priv); + $role_c{$priv_item} = 1; + } + foreach my $priv_item (keys(%full_c)) { + my ($priv, $dummy) = split(/\&/,$priv_item); + if (exists($role_c{$priv})) { + $return_script .= "document.form1.$priv"."_c.checked = true;\n"; + } else { + $return_script .= "document.form1.$priv"."_c.checked = false;\n"; + } + } + my %role_d; + @temp = split(/:/,$Apache::lonnet::pr{$role.':d'}); + foreach my $priv(@temp) { + my ($priv_item, $dummy) = split(/\&/,$priv); + $role_d{$priv_item} = 1; + } + foreach my $priv_item (keys(%full_d)) { + my ($priv, $dummy) = split(/\&/,$priv_item); + if (exists($role_d{$priv})) { + $return_script .= "document.form1.$priv"."_d.checked = true;\n"; + } else { + $return_script .= "document.form1.$priv"."_d.checked = false;\n"; + } + } + my %role_s; + @temp = split(/:/,$Apache::lonnet::pr{$role.':s'}); + foreach my $priv(@temp) { + my ($priv_item, $dummy) = split(/\&/,$priv); + $role_s{$priv_item} = 1; + } + foreach my $priv_item (keys(%full_s)) { + my ($priv, $dummy) = split(/\&/,$priv_item); + if (exists($role_s{$priv})) { + $return_script .= "document.form1.$priv"."_s.checked = true;\n"; + } else { + $return_script .= "document.form1.$priv"."_s.checked = false;\n"; + } + } + $return_script .= '}'."\n"; + return ($return_script); +} +# ---------------------------------------------------------- +sub make_button_code { + my ($role) = @_; + my $label = &Apache::lonnet::plaintext($role); + my $button_code = ''; + return ($button_code); +} # ---------------------------------------------------------- Call to definerole sub set_custom_role { my ($r) = @_; @@ -1862,7 +1933,7 @@ sub course_level_table { if (&Apache::lonnet::allowed('c'.$role,$thiscourse)) { my $plrole=&Apache::lonnet::plaintext($role); $table .= &Apache::loncommon::start_data_table_row(). -' +' '.$plrole.' '.$area.'
Domain: '.$domain.''."\n"; if ($role ne 'cc') { @@ -1875,22 +1946,22 @@ sub course_level_table { $currsec.''. '  '. ' '.$lt{'new'}.'
'. - ''. + ''. ''. + 'name="sec_'.$protectedcourse.'_'.$role.'" />'. ''; } else { $table .= ''; + 'name="sec_'.$protectedcourse.'_'.$role.'" />'; } } else { $table .= ' '; } $table .= < + $lt{'ssd'} - + $lt{'sed'} ENDTIMEENTRY @@ -1903,7 +1974,7 @@ ENDTIMEENTRY my $customrole=$protectedcourse.'_cr_cr_'.$env{'user.domain'}. '_'.$env{'user.name'}.'_'.$plrole; $table .= &Apache::loncommon::start_data_table_row(). -' +' '.$plrole.' '.$area.''."\n"; if (%sections_count) { @@ -1916,17 +1987,17 @@ ENDTIMEENTRY ' '.$lt{'new'}.'
'. ''. ''. + 'name="sec_'.$customrole.'" />'. ''; } else { $table .= ''; + 'name="sec_'.$customrole.'" />'; } $table .= < + $lt{'ssd'} - + $lt{'sed'} ENDENTRY @@ -1943,9 +2014,7 @@ ENDENTRY ''.$lt{'act'}.''.$lt{'rol'}.''.$lt{'ext'}.' '.$lt{'grs'}.''.$lt{'sta'}.''.$lt{'end'}.''. &Apache::loncommon::end_data_table_header_row(). -&Apache::loncommon::start_data_table_row(). $table. -&Apache::loncommon::end_data_table_row(). &Apache::loncommon::end_data_table(); return $result; } @@ -2020,10 +2089,10 @@ sub course_level_dc { ''. ''; $otheritems .= < + $lt{'ssd'} - + $lt{'sed'} ENDTIMEENTRY