[LON-CAPA-cvs] cvs: loncom /interface loncreateuser.pm
raeburn
lon-capa-cvs-allow@mail.lon-capa.org
Thu, 17 Jul 2008 20:05:16 -0000
raeburn Thu Jul 17 16:05:16 2008 EDT
Modified files:
/loncom/interface loncreateuser.pm
Log:
- Moving evaluation of modifiable user information fields in selfcreate context to &selfcreate_canmodify().
- Escaping institutional status types in form elements included in self-enrollment configuration screen.
Index: loncom/interface/loncreateuser.pm
diff -u loncom/interface/loncreateuser.pm:1.256 loncom/interface/loncreateuser.pm:1.257
--- loncom/interface/loncreateuser.pm:1.256 Wed Jul 16 08:06:28 2008
+++ loncom/interface/loncreateuser.pm Thu Jul 17 16:05:14 2008
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.256 2008/07/16 12:06:28 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.257 2008/07/17 20:05:14 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1397,30 +1397,24 @@
sub personal_data_display {
my ($ccuname,$ccdomain,$newuser,$context,$inst_results,$rolesarray) = @_;
- my ($output,$showforceid,%userenv,%canmodify,@inststatuses);
+ my ($output,$showforceid,%userenv,%canmodify);
my @userinfo = ('firstname','middlename','lastname','generation',
'permanentemail','id');
my $rowcount = 0;
my $editable = 0;
- if ($context eq 'selfcreate') {
- if (ref($inst_results) eq 'HASH') {
- @inststatuses = &get_inststatuses($inst_results);
- if (@inststatuses == 0) {
- @inststatuses = ('default');
- }
- $rolesarray = \@inststatuses;
- }
- }
if (!$newuser) {
# Get the users information
%userenv = &Apache::lonnet::get('environment',
['firstname','middlename','lastname','generation',
'permanentemail','id'],$ccdomain,$ccuname);
}
- if ((!$newuser) || ($context eq 'selfcreate')) {
+ if (!$newuser) {
%canmodify =
&Apache::lonuserutils::can_modify_userinfo($context,$ccdomain,
\@userinfo,$rolesarray);
+ } elsif ($context eq 'selfcreate') {
+ %canmodify = &selfcreate_canmodify($context,$ccdomain,\@userinfo,
+ $inst_results,$rolesarray);
}
my %lt=&Apache::lonlocal::texthash(
'pd' => "Personal Data",
@@ -1506,6 +1500,21 @@
}
}
+sub selfcreate_canmodify {
+ my ($context,$dom,$userinfo,$inst_results,$rolesarray) = @_;
+ if (ref($inst_results) eq 'HASH') {
+ my @inststatuses = &get_inststatuses($inst_results);
+ if (@inststatuses == 0) {
+ @inststatuses = ('default');
+ }
+ $rolesarray = \@inststatuses;
+ }
+ my %canmodify =
+ &Apache::lonuserutils::can_modify_userinfo($context,$dom,$userinfo,
+ $rolesarray);
+ return %canmodify;
+}
+
sub get_inststatuses {
my ($insthashref) = @_;
my @inststatuses = ();
@@ -3738,13 +3747,14 @@
$output .= '</tr><tr>';
}
if (defined($usertypes->{$type})) {
+ my $esc_type = &escape($type);
$output .= '<td><span class="LC_nobreak"><label><input type = "checkbox" value="'.
- $type.'" ';
+ $esc_type.'" ';
if (ref($currinsttypes) eq 'ARRAY') {
if (@{$currinsttypes} > 0) {
if (grep(/^any$/,@{$currinsttypes})) {
$output .= 'checked="checked"';
- } elsif (grep(/^\Q$type\E$/,@{$currinsttypes})) {
+ } elsif (grep(/^\Q$esc_type\E$/,@{$currinsttypes})) {
$output .= 'checked="checked"';
}
} else {
@@ -4734,8 +4744,9 @@
my $othervalue = 'any';
if ((ref($types) eq 'ARRAY') && (ref($usertypes) eq 'HASH')) {
if (@{$types} > 0) {
+ my @esc_types = map { &escape($_); } @{$types};
$othervalue = 'other';
- $typestr = join(',',(@{$types},$othervalue));
+ $typestr = join(',',($othervalue,@esc_types));
}
$typestr = $othervalue;
} else {