--- loncom/interface/loncreateuser.pm 2007/12/13 01:08:47 1.208 +++ loncom/interface/loncreateuser.pm 2007/12/14 21:27:07 1.211 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.208 2007/12/13 01:08:47 raeburn Exp $ +# $Id: loncreateuser.pm,v 1.211 2007/12/14 21:27:07 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -115,15 +115,6 @@ sub auth_abbrev { return %abv_auth; } -# ==================================================== Figure out author access - -sub authorpriv { - my ($auname,$audom)=@_; - unless ((&Apache::lonnet::allowed('cca',$audom.'/'.$auname)) - || (&Apache::lonnet::allowed('caa',$audom.'/'.$auname))) { return ''; } - return 1; -} - # ==================================================== sub portfolio_quota { @@ -304,7 +295,7 @@ $userpicker ENDBLOCK - if ($cancreate) { + if ($cancreate && $env{'form.phase'} eq '') { my $defdom=$env{'request.role.domain'}; my $domform = &Apache::loncommon::select_dom_form($defdom,'srchdomain'); my $helpcrt=&Apache::loncommon::help_open_topic('Course_Change_Privileges'); @@ -747,8 +738,8 @@ $loginscript ENDTITLE $r->print('
'); my $personal_table = - &personal_data_display($ccuname,$ccdomain,$newuser, - $context,%inst_results); + &personal_data_display($ccuname,$ccdomain,$newuser,$context, + $inst_results{$ccuname.':'.$ccdomain}); $r->print($personal_table); my ($home_server_pick,$numlib) = &Apache::loncommon::home_server_form_item($ccdomain,'hserver', @@ -828,8 +819,8 @@ $forminfo ENDCHANGEUSER $r->print('
'); my ($personal_table,$showforceid) = - &personal_data_display($ccuname,$ccdomain,$newuser, - $context,%inst_results); + &personal_data_display($ccuname,$ccdomain,$newuser,$context, + $inst_results{$ccuname.':'.$ccdomain}); $r->print($personal_table); if ($showforceid) { $r->print(&Apache::lonuserutils::forceid_change($context)); @@ -970,7 +961,7 @@ ENDNOPORTPRIV } if (($role_code eq 'ca') || ($role_code eq 'aa')) { $area=~m{/($match_domain)/($match_username)}; - if (&authorpriv($2,$1)) { + if (&Apache::lonuserutils::authorpriv($2,$1)) { $allowed=1; } else { $allowed=0; @@ -1063,7 +1054,8 @@ ENDNOPORTPRIV # # Co-Author # - if (&authorpriv($env{'user.name'},$env{'request.role.domain'}) && + if (&Apache::lonuserutils::authorpriv($env{'user.name'}, + $env{'request.role.domain'}) && ($env{'user.name'} ne $ccuname || $env{'user.domain'} ne $ccdomain)) { # No sense in assigning co-author role to yourself $addrolesdisplay = 1; @@ -1114,7 +1106,8 @@ ENDNOPORTPRIV &Apache::loncommon::end_data_table_row()."\n". &Apache::loncommon::end_data_table()); } elsif ($env{'request.role'} =~ /^au\./) { - if (!(&authorpriv($env{'user.name'},$env{'request.role.domain'}))) { + if (!(&Apache::lonuserutils::authorpriv($env{'user.name'}, + $env{'request.role.domain'}))) { $r->print(''. &mt('You do not have privileges to assign co-author roles.'). ''); @@ -1360,7 +1353,7 @@ sub modify_login_block { } sub personal_data_display { - my ($ccuname,$ccdomain,$newuser,$context,%inst_results) = @_; + my ($ccuname,$ccdomain,$newuser,$context,$inst_results) = @_; my ($output,$showforceid,%userenv,%domconfig); if (!$newuser) { # Get the users information @@ -1401,8 +1394,12 @@ sub personal_data_display { } $output .= &Apache::lonhtmlcommon::row_title($rowtitle,undef,'LC_oddrow_value')."\n"; if ($newuser) { - if ($inst_results{$item} ne '') { - $output .= ''.$inst_results{$item}; + if (ref($inst_results) eq 'HASH') { + if ($inst_results->{$item} ne '') { + $output .= ''.$inst_results->{$item}; + } else { + $output .= ''; + } } else { $output .= ''; } @@ -2618,7 +2615,8 @@ sub handler { ({href=>"/adm/createuser", text=>"User Management"}); } - my ($permission,$allowed) = &get_permission($context); + my ($permission,$allowed) = + &Apache::lonuserutils::get_permission($context); if (!$allowed) { $env{'user.error.msg'}= "/adm/createuser:cst:0:0:Cannot create/modify user data ". @@ -2936,60 +2934,6 @@ sub print_main_menu { return $menu_html; } -sub get_permission { - my ($context) = @_; - my %permission; - if ($context eq 'course') { - if ((&Apache::lonnet::allowed('cta',$env{'request.course.id'})) || - (&Apache::lonnet::allowed('cin',$env{'request.course.id'})) || - (&Apache::lonnet::allowed('ccr',$env{'request.course.id'})) || - (&Apache::lonnet::allowed('cep',$env{'request.course.id'})) || - (&Apache::lonnet::allowed('cst',$env{'request.course.id'}))) { - $permission{'cusr'} = 1; - $permission{'view'} = - &Apache::lonnet::allowed('vcl',$env{'request.course.id'}); - - } - if (&Apache::lonnet::allowed('ccr',$env{'request.course.id'})) { - $permission{'custom'} = 1; - } - if (&Apache::lonnet::allowed('vcl',$env{'request.course.id'})) { - $permission{'view'} = 1; - } - if (!$permission{'view'}) { - my $scope = $env{'request.course.id'}.'/'.$env{'request.course.sec'}; - $permission{'view'} = &Apache::lonnet::allowed('vcl',$scope); - if ($permission{'view'}) { - $permission{'view_section'} = $env{'request.course.sec'}; - } - } - if (&Apache::lonnet::allowed('mdg',$env{'request.course.id'})) { - $permission{'grp_manage'} = 1; - } - } elsif ($context eq 'author') { - $permission{'cusr'} = &authorpriv($env{'user.name'},$env{'request.role.domain'}); - $permission{'view'} = $permission{'cusr'}; - } else { - if ((&Apache::lonnet::allowed('cad',$env{'request.role.domain'})) || - (&Apache::lonnet::allowed('cli',$env{'request.role.domain'})) || - (&Apache::lonnet::allowed('cau',$env{'request.role.domain'})) || - (&Apache::lonnet::allowed('csc',$env{'request.role.domain'})) || - (&Apache::lonnet::allowed('cdg',$env{'request.role.domain'})) || - (&Apache::lonnet::allowed('mau',$env{'request.role.domain'}))) { - $permission{'cusr'} = 1; - } - if (&Apache::lonnet::allowed('ccr',$env{'request.role.domain'})) { - $permission{'custom'} = 1; - } - $permission{'view'} = $permission{'cusr'}; - } - my $allowed = 0; - foreach my $perm (values(%permission)) { - if ($perm) { $allowed=1; last; } - } - return (\%permission,$allowed); -} - sub restore_prev_selections { my %saveable_parameters = ('srchby' => 'scalar', 'srchin' => 'scalar', @@ -3411,8 +3355,18 @@ sub crumb_utilities { my $jsback .= qq| function backPage(formname,prevphase,prevstate) { - formname.phase.value = prevphase; - formname.currstate.value = prevstate; + if (typeof prevphase == 'undefined') { + formname.phase.value = ''; + } + else { + formname.phase.value = prevphase; + } + if (typeof prevstate == 'undefined') { + formname.currstate.value = ''; + } + else { + formname.currstate.value = prevstate; + } formname.submit(); } |;