--- loncom/interface/loncreateuser.pm 2003/07/18 13:45:14 1.60
+++ loncom/interface/loncreateuser.pm 2003/07/19 00:51:05 1.63
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.60 2003/07/18 13:45:14 www Exp $
+# $Id: loncreateuser.pm,v 1.63 2003/07/19 00:51:05 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -25,28 +25,6 @@
#
# http://www.lon-capa.org/
#
-# (Create a course
-# (My Desk
-#
-# (Internal Server Error Handler
-#
-# (Login Screen
-# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,
-# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)
-#
-# YEAR=2001
-# 3/1/1 Gerd Kortemeyer)
-#
-# 3/1 Gerd Kortemeyer)
-#
-# 2/14 Gerd Kortemeyer)
-#
-# 2/14,2/17,2/19,2/20,2/21,2/22,2/23,3/2,3/17,3/24,04/12 Gerd Kortemeyer
-# April Guy Albertelli
-# 05/10,10/16 Gerd Kortemeyer
-# 02/11/02 Matthew Hall
-#
-# $Id: loncreateuser.pm,v 1.60 2003/07/18 13:45:14 www Exp $
###
package Apache::loncreateuser;
@@ -90,7 +68,7 @@ sub my_custom_roles {
my %rolehash=&Apache::lonnet::dump('roles');
foreach (keys %rolehash) {
if ($_=~/^rolesdef\_(\w+)$/) {
- $returnhash{$_}=$_;
+ $returnhash{$1}=$1;
}
}
return %returnhash;
@@ -336,8 +314,8 @@ END
}
# Compute the background color based on $area
$bgcol=$1.'_'.$2;
- $bgcol=~s/[^8-9b-e]//g;
- $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',0,6);
+ $bgcol=~s/[^7-9a-e]//g;
+ $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6);
if ($area=~/^\/(\w+)\/(\d\w+)\/(\w+)/) {
$carea.=' Section/Group: '.$3;
}
@@ -369,7 +347,7 @@ END
}
}
my $row = '';
- $row.='
';
+ $row.='
';
my $active=1;
$active=0 if (($role_end_time) && ($now>$role_end_time));
if (($active) && ($allowed)) {
@@ -864,7 +842,7 @@ sub custom_role_editor {
$rolename=$ENV{'form.newrolename'};
}
- $rolename=~s/\W//gs;
+ $rolename=~s/[^A-Za-z0-9]//gs;
unless ($rolename) {
&print_username_entry_form($r);
@@ -873,11 +851,16 @@ sub custom_role_editor {
$r->print(&Apache::loncommon::bodytag(
'Create Users, Change User Privileges').'
');
+ my $syspriv='';
+ my $dompriv='';
+ my $coursepriv='';
my ($rdummy,$roledef)=
&Apache::lonnet::get('roles',["rolesdef_$rolename"]);
# ------------------------------------------------------- Does this role exist?
if (($rdummy ne 'con_lost') && ($roledef ne '')) {
$r->print('Existing Role "');
+# ------------------------------------------------- Get current role privileges
+ ($syspriv,$dompriv,$coursepriv)=split(/\_/,$roledef);
} else {
$r->print('New Role "');
$roledef='';
@@ -886,26 +869,129 @@ sub custom_role_editor {
# ------------------------------------------------------- What can be assigned?
my %full=();
my %courselevel=();
+ my %courselevelcurrent=();
foreach (split(/\:/,$Apache::lonnet::pr{'cr:c'})) {
my ($priv,$restrict)=split(/\&/,$_);
unless ($restrict) { $restrict='F'; }
$courselevel{$priv}=$restrict;
+ if ($coursepriv=~/\:$priv/) {
+ $courselevelcurrent{$priv}=1;
+ }
$full{$priv}=1;
}
my %domainlevel=();
+ my %domainlevelcurrent=();
foreach (split(/\:/,$Apache::lonnet::pr{'cr:d'})) {
my ($priv,$restrict)=split(/\&/,$_);
unless ($restrict) { $restrict='F'; }
$domainlevel{$priv}=$restrict;
+ if ($dompriv=~/\:$priv/) {
+ $domainlevelcurrent{$priv}=1;
+ }
$full{$priv}=1;
}
- $r->print('
Privilege
Course Level
Domain Level
');
+ my %systemlevel=();
+ my %systemlevelcurrent=();
+ foreach (split(/\:/,$Apache::lonnet::pr{'cr:s'})) {
+ my ($priv,$restrict)=split(/\&/,$_);
+ unless ($restrict) { $restrict='F'; }
+ $systemlevel{$priv}=$restrict;
+ if ($syspriv=~/\:$priv/) {
+ $systemlevelcurrent{$priv}=1;
+ }
+ $full{$priv}=1;
+ }
+ $r->print(<
+
+
+