--- loncom/auth/lonroles.pm 2004/11/12 15:33:32 1.108
+++ loncom/auth/lonroles.pm 2004/11/14 18:27:08 1.110
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# User Roles Screen
#
-# $Id: lonroles.pm,v 1.108 2004/11/12 15:33:32 raeburn Exp $
+# $Id: lonroles.pm,v 1.110 2004/11/14 18:27:08 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -84,6 +84,10 @@ sub handler {
my $envkey;
my %dcroles = ();
my $numdc = &check_fordc(\%dcroles,$then);
+ my %recentroles;
+ if ($numdc > 0) {
+ %recentroles = &Apache::lonnet::dump(&recent_filename('roles'));
+ }
# ================================================================== Roles Init
if ($ENV{'form.selectrole'}) {
@@ -100,20 +104,29 @@ sub handler {
"request.role.adv" => $ENV{'user.adv'},
"request.role.domain" => $ENV{'user.domain'});
-# Check to see if the user is a DC trying to enter a course and needs privs to be created
+# Check if user is a DC trying to enter a course and needs privs to be created
if ($numdc > 0) {
foreach my $envkey (keys %ENV) {
if ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-) {
if ($dcroles{$1}) {
- unless ($ENV{'user.role.cc./'.$1.'/'.$2}) {
- &set_privileges($1,$2);
- }
+ my $cckey = 'user.role.cc./'.$1.'/'.$2;
+ &check_privs($cckey,$then,$now);
}
last;
}
}
}
+# Check if user is a DC with courses in the recent list which need privs.
+# if ($numdc > 0) {
+# %recentroles = &Apache::lonnet::dump(&recent_filename('recent_roles'));
+# foreach my $rolekey (keys %recentroles) {
+# if ($rolekey =~ m-^user\.role.cc\./\w+/\w+$-) {
+# &check_privs($rolekey,$then,$now);
+# }
+# }
+# }
+
foreach $envkey (keys %ENV) {
next if ($envkey!~/^user\.role\./);
my ($where,$trolecode,$role,$tstatus,$tend,$tstart);
@@ -261,8 +274,8 @@ ENDENTERKEY
my $formaction = '/adm/roles/';
my ($dcdom,$pickedcourse) = split/_/,$courseid;
if ($ENV{'user.role.dc./'.$dcdom.'/'}) {
- &Apache::lonhtmlcommon::store_recent('recent_roles',
- $courseid,$formaction);
+ &Apache::lonhtmlcommon::store_recent('roles',
+ $envkey,$formaction);
}
}
#
@@ -544,40 +557,7 @@ ENDHEADER
}
$roletext.='
';
- unless ($nochoose) {
- if (!$button) {
- if ($switchserver) {
- $roletext.='