version 1.61, 2003/07/18 19:50:28
|
version 1.64, 2003/07/19 21:44:51
|
Line 280 END
|
Line 280 END
|
<table border=2> |
<table border=2> |
<tr><th>Revoke</th><th>Delete</th><th>Role</th><th>Extent</th><th>Start</th><th>End</th> |
<tr><th>Revoke</th><th>Delete</th><th>Role</th><th>Extent</th><th>Start</th><th>End</th> |
END |
END |
foreach my $area (keys(%rolesdump)) { |
foreach my $area (sort keys(%rolesdump)) { |
next if ($area =~ /^rolesdef/); |
next if ($area =~ /^rolesdef/); |
my $role = $rolesdump{$area}; |
my $role = $rolesdump{$area}; |
my $thisrole=$area; |
my $thisrole=$area; |
$area =~ s/\_\w\w$//; |
$area =~ s/\_\w\w$//; |
my ($role_code,$role_end_time,$role_start_time) = |
my ($role_code,$role_end_time,$role_start_time) = |
split(/_/,$role); |
split(/_/,$role); |
|
# Is this a custom role? Get role owner and title. |
|
my ($croleudom,$croleuname,$croletitle)= |
|
($role_code=~/^cr\/(\w+)\/(\w+)\/(\w+)$/); |
my $bgcol='ffffff'; |
my $bgcol='ffffff'; |
my $allowed=0; |
my $allowed=0; |
my $delallowed=0; |
my $delallowed=0; |
Line 312 END
|
Line 315 END
|
(&Apache::lonnet::allowed('dro',$ccdomain))) { |
(&Apache::lonnet::allowed('dro',$ccdomain))) { |
$delallowed=1; |
$delallowed=1; |
} |
} |
|
# - custom role. Needs more info, too |
|
if ($croletitle) { |
|
if (&Apache::lonnet::allowed('ccr',$1.'/'.$2)) { |
|
$allowed=1; |
|
$thisrole.='.'.$role_code; |
|
} |
|
} |
# Compute the background color based on $area |
# Compute the background color based on $area |
$bgcol=$1.'_'.$2; |
$bgcol=$1.'_'.$2; |
$bgcol=~s/[^8-9b-e]//g; |
$bgcol=~s/[^7-9a-e]//g; |
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',0,6); |
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6); |
if ($area=~/^\/(\w+)\/(\d\w+)\/(\w+)/) { |
if ($area=~/^\/(\w+)\/(\d\w+)\/(\w+)/) { |
$carea.='<br>Section/Group: '.$3; |
$carea.='<br>Section/Group: '.$3; |
} |
} |
Line 347 END
|
Line 357 END
|
} |
} |
} |
} |
my $row = ''; |
my $row = ''; |
$row.='<tr bgcolor=#"'.$bgcol.'"><td>'; |
$row.='<tr bgcolor="#'.$bgcol.'"><td>'; |
my $active=1; |
my $active=1; |
$active=0 if (($role_end_time) && ($now>$role_end_time)); |
$active=0 if (($role_end_time) && ($now>$role_end_time)); |
if (($active) && ($allowed)) { |
if (($active) && ($allowed)) { |
Line 365 END
|
Line 375 END
|
} else { |
} else { |
$row.=' '; |
$row.=' '; |
} |
} |
$row.= '</td><td>'.&Apache::lonnet::plaintext($role_code). |
my $plaintext=''; |
|
unless ($croletitle) { |
|
$plaintext=&Apache::lonnet::plaintext($role_code); |
|
} else { |
|
$plaintext= |
|
"Customrole '$croletitle' defined by $croleuname\@$croleudom"; |
|
} |
|
$row.= '</td><td>'.$plaintext. |
'</td><td>'.$area. |
'</td><td>'.$area. |
'</td><td>'.($role_start_time?localtime($role_start_time) |
'</td><td>'.($role_start_time?localtime($role_start_time) |
: ' ' ). |
: ' ' ). |
Line 735 END
|
Line 752 END
|
next if (! $ENV{$_}); |
next if (! $ENV{$_}); |
# Revoke roles |
# Revoke roles |
if ($_=~/^form\.rev/) { |
if ($_=~/^form\.rev/) { |
if ($_=~/^form\.rev\:([^\_]+)\_([^\_]+)$/) { |
if ($_=~/^form\.rev\:([^\_]+)\_([^\_\.]+)$/) { |
|
# Revoke standard role |
$r->print('Revoking '.$2.' in '.$1.': <b>'. |
$r->print('Revoking '.$2.' in '.$1.': <b>'. |
&Apache::lonnet::assignrole($ENV{'form.ccdomain'}, |
&Apache::lonnet::assignrole($ENV{'form.ccdomain'}, |
$ENV{'form.ccuname'},$1,$2,$now).'</b><br>'); |
$ENV{'form.ccuname'},$1,$2,$now).'</b><br>'); |
Line 752 END
|
Line 770 END
|
$ENV{'course.'.$cid.'.home'}).'</b><br>'); |
$ENV{'course.'.$cid.'.home'}).'</b><br>'); |
} |
} |
} |
} |
|
if ($_=~/^form\.rev\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) { |
|
# Revoke custom role |
|
$r->print( |
|
'Revoking custom role '.$4.' by '.$3.'\@'.$2.' in '.$1.': <b>'. |
|
'</b><br>'); |
|
} |
} elsif ($_=~/^form\.del/) { |
} elsif ($_=~/^form\.del/) { |
if ($_=~/^form\.del\:([^\_]+)\_([^\_]+)$/) { |
if ($_=~/^form\.del\:([^\_]+)\_([^\_]+)$/) { |
$r->print('Deleting '.$2.' in '.$1.': '. |
$r->print('Deleting '.$2.' in '.$1.': '. |
Line 826 END
|
Line 850 END
|
$ENV{'form.ccdomain'},$ENV{'form.ccuname'}, |
$ENV{'form.ccdomain'},$ENV{'form.ccuname'}, |
$url,$2,$end,$start) |
$url,$2,$end,$start) |
.'</b><br>'); |
.'</b><br>'); |
} |
} else { |
|
$r->print('<p>ERROR: Unknown command <tt>'.$_.'</tt></p><br>'); |
|
} |
} |
} |
} # End of foreach (keys(%ENV)) |
} # End of foreach (keys(%ENV)) |
$r->print('</body></html>'); |
$r->print('</body></html>'); |
Line 842 sub custom_role_editor {
|
Line 868 sub custom_role_editor {
|
$rolename=$ENV{'form.newrolename'}; |
$rolename=$ENV{'form.newrolename'}; |
} |
} |
|
|
$rolename=~s/\W//gs; |
$rolename=~s/[^A-Za-z0-9]//gs; |
|
|
unless ($rolename) { |
unless ($rolename) { |
&print_username_entry_form($r); |
&print_username_entry_form($r); |
Line 861 sub custom_role_editor {
|
Line 887 sub custom_role_editor {
|
$r->print('Existing Role "'); |
$r->print('Existing Role "'); |
# ------------------------------------------------- Get current role privileges |
# ------------------------------------------------- Get current role privileges |
($syspriv,$dompriv,$coursepriv)=split(/\_/,$roledef); |
($syspriv,$dompriv,$coursepriv)=split(/\_/,$roledef); |
$r->print($syspriv.' '.$dompriv.' '.$coursepriv); |
|
} else { |
} else { |
$r->print('New Role "'); |
$r->print('New Role "'); |
$roledef=''; |
$roledef=''; |
Line 932 sub set_custom_role {
|
Line 957 sub set_custom_role {
|
|
|
my $rolename=$ENV{'form.rolename'}; |
my $rolename=$ENV{'form.rolename'}; |
|
|
$rolename=~s/\W//gs; |
$rolename=~s/[^A-Za-z0-9]//gs; |
|
|
unless ($rolename) { |
unless ($rolename) { |
&print_username_entry_form($r); |
&print_username_entry_form($r); |
Line 979 sub set_custom_role {
|
Line 1004 sub set_custom_role {
|
$sysrole.=':'.$_; |
$sysrole.=':'.$_; |
} |
} |
} |
} |
$r->print('Defining Role: '. |
$r->print('<br />Defining Role: '. |
&Apache::lonnet::definerole($rolename,$sysrole,$domrole,$courole)); |
&Apache::lonnet::definerole($rolename,$sysrole,$domrole,$courole)); |
|
if ($ENV{'request.course.id'}) { |
|
my $url='/'.$ENV{'request.course.id'}; |
|
$url=~s/\_/\//g; |
|
$r->print('<br />Assigning Role to Self: '. |
|
&Apache::lonnet::assigncustomrole($ENV{'user.domain'}, |
|
$ENV{'user.name'}, |
|
$url, |
|
$ENV{'user.domain'}, |
|
$ENV{'user.name'}, |
|
$rolename)); |
|
} |
$r->print('</body></html>'); |
$r->print('</body></html>'); |
} |
} |
|
|
Line 1026 sub handler {
|
Line 1062 sub handler {
|
sub course_level_table { |
sub course_level_table { |
my %inccourses = @_; |
my %inccourses = @_; |
my $table = ''; |
my $table = ''; |
|
# Custom Roles? |
|
|
|
my %customroles=&my_custom_roles(); |
|
|
foreach (sort( keys(%inccourses))) { |
foreach (sort( keys(%inccourses))) { |
my $thiscourse=$_; |
my $thiscourse=$_; |
my $protectedcourse=$_; |
my $protectedcourse=$_; |
Line 1034 sub course_level_table {
|
Line 1074 sub course_level_table {
|
my $area=$coursedata{'description'}; |
my $area=$coursedata{'description'}; |
if (!defined($area)) { $area='Unavailable course: '.$_; } |
if (!defined($area)) { $area='Unavailable course: '.$_; } |
my $bgcol=$thiscourse; |
my $bgcol=$thiscourse; |
$bgcol=~s/[^8-9b-e]//g; |
$bgcol=~s/[^7-9a-e]//g; |
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',0,6); |
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6); |
foreach ('st','ta','ep','ad','in','cc') { |
foreach ('st','ta','ep','ad','in','cc') { |
if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) { |
if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) { |
my $plrole=&Apache::lonnet::plaintext($_); |
my $plrole=&Apache::lonnet::plaintext($_); |
Line 1065 ENDTIMEENTRY
|
Line 1105 ENDTIMEENTRY
|
$table.= "</tr>\n"; |
$table.= "</tr>\n"; |
} |
} |
} |
} |
|
foreach (sort keys %customroles) { |
|
my $plrole=$_; |
|
$table .= <<ENDENTRY; |
|
<tr bgcolor="#$bgcol"> |
|
<td><input type="checkbox" name="act_$protectedcourse\_$_"></td> |
|
<td>$plrole</td> |
|
<td>$area</td> |
|
<td><input type="text" size="5" name="sec_$protectedcourse\_$_"></td> |
|
<td><input type=hidden name="start_$protectedcourse\_$_" value=''> |
|
<a href= |
|
"javascript:pjump('date_start','Start Date $plrole',document.cu.start_$protectedcourse\_$_.value,'start_$protectedcourse\_$_','cu.pres','dateset')">Set Start Date</a></td> |
|
<td><input type=hidden name="end_$protectedcourse\_$_" value=''> |
|
<a href= |
|
"javascript:pjump('date_end','End Date $plrole',document.cu.end_$protectedcourse\_$_.value,'end_$protectedcourse\_$_','cu.pres','dateset')">Set End Date</a></td></tr> |
|
ENDENTRY |
|
} |
} |
} |
return '' if ($table eq ''); # return nothing if there is nothing |
return '' if ($table eq ''); # return nothing if there is nothing |
# in the table |
# in the table |