--- loncom/interface/loncreateuser.pm 2007/06/07 23:11:05 1.152 +++ loncom/interface/loncreateuser.pm 2007/06/11 19:41:35 1.153 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.152 2007/06/07 23:11:05 banghart Exp $ +# $Id: loncreateuser.pm,v 1.153 2007/06/11 19:41:35 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1611,47 +1611,29 @@ sub custom_role_editor { &print_username_entry_form($r); return; } - my $head_script = "\n"; - $head_script .= ''."\n"; - $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 = ("ta:c","ta:d","ta:s"); + $body_top .= $rolename.'"'; foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:c'})) { - my ($priv,$restrict)=split(/\&/,$item); if (!$restrict) { $restrict='F'; } $courselevel{$priv}=$restrict; @@ -1682,6 +1664,13 @@ sub custom_role_editor { } $full{$priv}=1; } + + 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", @@ -1718,6 +1707,49 @@ ENDCCF ''. &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:d'})) { + 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 = split(/:/,$Apache::lonnet::pr{$role.':d'}); + foreach my $priv_item (@role_d) { + my ($priv, $dummy) = split(/\&/,$priv_item); + $return_script .= "document.form1.$priv"."_d.checked = true;\n"; + } + + $return_script .= '}'."\n"; + return $return_script; +} # ---------------------------------------------------------- Call to definerole sub set_custom_role {