version 1.150, 2007/06/07 22:23:11
|
version 1.154, 2007/06/11 22:13:07
|
Line 1611 sub custom_role_editor {
|
Line 1611 sub custom_role_editor {
|
&print_username_entry_form($r); |
&print_username_entry_form($r); |
return; |
return; |
} |
} |
my $head_script = <<END_SCRIPT; |
# ------------------------------------------------------- What can be assigned? |
<script type="text/javascript"> |
my %full=(); |
function setchecks() { |
my %courselevel=(); |
document.form1.bre_c.checked = false; |
my %courselevelcurrent=(); |
} |
|
</script> |
|
END_SCRIPT |
|
|
|
$r->print(&Apache::loncommon::start_page('Custom Role Editor',$head_script)); |
|
my $syspriv=''; |
my $syspriv=''; |
my $dompriv=''; |
my $dompriv=''; |
my $coursepriv=''; |
my $coursepriv=''; |
|
my $body_top; |
my ($disp_dummy,$disp_roles) = &Apache::lonnet::get('roles',["st"]); |
my ($disp_dummy,$disp_roles) = &Apache::lonnet::get('roles',["st"]); |
my ($rdummy,$roledef)= |
my ($rdummy,$roledef)= |
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
# ------------------------------------------------------- Does this role exist? |
# ------------------------------------------------------- Does this role exist? |
$r->print('<h2>'); |
$body_top .= '<h2>'; |
if (($rdummy ne 'con_lost') && ($roledef ne '')) { |
if (($rdummy ne 'con_lost') && ($roledef ne '')) { |
$r->print(&mt('Existing Role').' "'); |
$body_top .= &mt('Existing Role').' "'; |
# ------------------------------------------------- Get current role privileges |
# ------------------------------------------------- Get current role privileges |
($syspriv,$dompriv,$coursepriv)=split(/\_/,$roledef); |
($syspriv,$dompriv,$coursepriv)=split(/\_/,$roledef); |
} else { |
} else { |
$r->print(&mt('New Role').' "'); |
$body_top .= &mt('New Role').' "'; |
$roledef=''; |
$roledef=''; |
} |
} |
$r->print($rolename.'"</h2>'); |
$body_top .= $rolename.'"</h2>'; |
# ------------------------------------------------------- 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}); |
|
} |
|
|
|
foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:c'})) { |
foreach my $item (split(/\:/,$Apache::lonnet::pr{'cr:c'})) { |
|
|
my ($priv,$restrict)=split(/\&/,$item); |
my ($priv,$restrict)=split(/\&/,$item); |
if (!$restrict) { $restrict='F'; } |
if (!$restrict) { $restrict='F'; } |
$courselevel{$priv}=$restrict; |
$courselevel{$priv}=$restrict; |
Line 1678 END_SCRIPT
|
Line 1664 END_SCRIPT
|
} |
} |
$full{$priv}=1; |
$full{$priv}=1; |
} |
} |
|
my $button_code = "\n"; |
|
my $head_script = "\n"; |
|
$head_script .= '<script type="text/javascript">'."\n"; |
|
my @template_roles = ("cc","in","ta","ep","st"); |
|
foreach my $role (@template_roles) { |
|
$head_script .= &make_script_template($role); |
|
$button_code .= &make_button_code($role); |
|
} |
|
$head_script .= '</script>'."\n"; |
|
$r->print(&Apache::loncommon::start_page('Custom Role Editor',$head_script)); |
|
$r->print($body_top); |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'prv' => "Privilege", |
'prv' => "Privilege", |
'crl' => "Course Level", |
'crl' => "Course Level", |
'dml' => "Domain Level", |
'dml' => "Domain Level", |
'ssl' => "System Level"); |
'ssl' => "System Level"); |
$r->print('<form action=""><input type="button" onClick="setchecks()" value="Click" /></form>'); |
$r->print('Select a Template<br />'); |
|
$r->print('<form action="">'); |
|
$r->print($button_code); |
|
$r->print('</form>'); |
$r->print(<<ENDCCF); |
$r->print(<<ENDCCF); |
<form name=form1 method="post"> |
<form name=form1 method="post"> |
<input type="hidden" name="phase" value="set_custom_roles" /> |
<input type="hidden" name="phase" value="set_custom_roles" /> |
Line 1710 ENDCCF
|
Line 1710 ENDCCF
|
&Apache::loncommon::end_data_table_row()); |
&Apache::loncommon::end_data_table_row()); |
} |
} |
$r->print(&Apache::loncommon::end_data_table(). |
$r->print(&Apache::loncommon::end_data_table(). |
'<input type="submit" value="'.&mt('Define Role').'" /></form>'. |
'<input type="reset" value="Reset"><input type="submit" value="'.&mt('Define Role').'" /></form>'. |
&Apache::loncommon::end_page()); |
&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 = '<input type="button" onClick="set_'.$role.'()" value="'.$label.'" />'; |
|
return ($button_code); |
|
} |
# ---------------------------------------------------------- Call to definerole |
# ---------------------------------------------------------- Call to definerole |
sub set_custom_role { |
sub set_custom_role { |
my ($r) = @_; |
my ($r) = @_; |