version 1.207, 2007/12/12 23:59:41
|
version 1.210, 2007/12/14 17:35:52
|
Line 115 sub auth_abbrev {
|
Line 115 sub auth_abbrev {
|
return %abv_auth; |
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 { |
sub portfolio_quota { |
Line 747 $loginscript
|
Line 738 $loginscript
|
ENDTITLE |
ENDTITLE |
$r->print('<div class="LC_left_float">'); |
$r->print('<div class="LC_left_float">'); |
my $personal_table = |
my $personal_table = |
&personal_data_display($ccuname,$ccdomain,$newuser, |
&personal_data_display($ccuname,$ccdomain,$newuser,$context, |
$context,%inst_results); |
$inst_results{$ccuname.':'.$ccdomain}); |
$r->print($personal_table); |
$r->print($personal_table); |
my ($home_server_pick,$numlib) = |
my ($home_server_pick,$numlib) = |
&Apache::loncommon::home_server_form_item($ccdomain,'hserver', |
&Apache::loncommon::home_server_form_item($ccdomain,'hserver', |
Line 828 $forminfo
|
Line 819 $forminfo
|
ENDCHANGEUSER |
ENDCHANGEUSER |
$r->print('<div class="LC_left_float">'); |
$r->print('<div class="LC_left_float">'); |
my ($personal_table,$showforceid) = |
my ($personal_table,$showforceid) = |
&personal_data_display($ccuname,$ccdomain,$newuser, |
&personal_data_display($ccuname,$ccdomain,$newuser,$context, |
$context,%inst_results); |
$inst_results{$ccuname.':'.$ccdomain}); |
$r->print($personal_table); |
$r->print($personal_table); |
if ($showforceid) { |
if ($showforceid) { |
$r->print(&Apache::lonuserutils::forceid_change($context)); |
$r->print(&Apache::lonuserutils::forceid_change($context)); |
Line 970 ENDNOPORTPRIV
|
Line 961 ENDNOPORTPRIV
|
} |
} |
if (($role_code eq 'ca') || ($role_code eq 'aa')) { |
if (($role_code eq 'ca') || ($role_code eq 'aa')) { |
$area=~m{/($match_domain)/($match_username)}; |
$area=~m{/($match_domain)/($match_username)}; |
if (&authorpriv($2,$1)) { |
if (&Apache::lonuserutils::authorpriv($2,$1)) { |
$allowed=1; |
$allowed=1; |
} else { |
} else { |
$allowed=0; |
$allowed=0; |
Line 1063 ENDNOPORTPRIV
|
Line 1054 ENDNOPORTPRIV
|
# |
# |
# Co-Author |
# 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)) { |
($env{'user.name'} ne $ccuname || $env{'user.domain'} ne $ccdomain)) { |
# No sense in assigning co-author role to yourself |
# No sense in assigning co-author role to yourself |
$addrolesdisplay = 1; |
$addrolesdisplay = 1; |
Line 1114 ENDNOPORTPRIV
|
Line 1106 ENDNOPORTPRIV
|
&Apache::loncommon::end_data_table_row()."\n". |
&Apache::loncommon::end_data_table_row()."\n". |
&Apache::loncommon::end_data_table()); |
&Apache::loncommon::end_data_table()); |
} elsif ($env{'request.role'} =~ /^au\./) { |
} 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('<span class="LC_error">'. |
$r->print('<span class="LC_error">'. |
&mt('You do not have privileges to assign co-author roles.'). |
&mt('You do not have privileges to assign co-author roles.'). |
'</span>'); |
'</span>'); |
Line 1360 sub modify_login_block {
|
Line 1353 sub modify_login_block {
|
} |
} |
|
|
sub personal_data_display { |
sub personal_data_display { |
my ($ccuname,$ccdomain,$newuser,$context,%inst_results) = @_; |
my ($ccuname,$ccdomain,$newuser,$context,$inst_results) = @_; |
my ($output,$showforceid,%userenv,%domconfig); |
my ($output,$showforceid,%userenv,%domconfig); |
if (!$newuser) { |
if (!$newuser) { |
# Get the users information |
# Get the users information |
Line 1401 sub personal_data_display {
|
Line 1394 sub personal_data_display {
|
} |
} |
$output .= &Apache::lonhtmlcommon::row_title($rowtitle,undef,'LC_oddrow_value')."\n"; |
$output .= &Apache::lonhtmlcommon::row_title($rowtitle,undef,'LC_oddrow_value')."\n"; |
if ($newuser) { |
if ($newuser) { |
if ($inst_results{$item} ne '') { |
if (ref($inst_results) eq 'HASH') { |
$output .= '<input type="hidden" name="c'.$item.'" value="'.$inst_results{$item}.'" />'.$inst_results{$item}; |
if ($inst_results->{$item} ne '') { |
|
$output .= '<input type="hidden" name="c'.$item.'" value="'.$inst_results->{$item}.'" />'.$inst_results->{$item}; |
|
} else { |
|
$output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; |
|
} |
} else { |
} else { |
$output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; |
$output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; |
} |
} |
Line 2618 sub handler {
|
Line 2615 sub handler {
|
({href=>"/adm/createuser", |
({href=>"/adm/createuser", |
text=>"User Management"}); |
text=>"User Management"}); |
} |
} |
my ($permission,$allowed) = &get_permission($context); |
my ($permission,$allowed) = |
|
&Apache::lonuserutils::get_permission($context); |
if (!$allowed) { |
if (!$allowed) { |
$env{'user.error.msg'}= |
$env{'user.error.msg'}= |
"/adm/createuser:cst:0:0:Cannot create/modify user data ". |
"/adm/createuser:cst:0:0:Cannot create/modify user data ". |
Line 2633 sub handler {
|
Line 2631 sub handler {
|
if (! exists($env{'form.action'})) { |
if (! exists($env{'form.action'})) { |
$r->print(&header()); |
$r->print(&header()); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management')); |
$r->print(&Apache::lonhtmlcommon::breadcrumbs('User Management')); |
$r->print(&print_main_menu($permission)); |
$r->print(&print_main_menu($permission,$context)); |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
} elsif ($env{'form.action'} eq 'upload' && $permission->{'cusr'}) { |
} elsif ($env{'form.action'} eq 'upload' && $permission->{'cusr'}) { |
$r->print(&header()); |
$r->print(&header()); |
Line 2853 END
|
Line 2851 END
|
############################################################### |
############################################################### |
# Menu Phase One |
# Menu Phase One |
sub print_main_menu { |
sub print_main_menu { |
my ($permission) = @_; |
my ($permission,$context) = @_; |
|
my %links = ( |
|
domain => { |
|
upload => 'Upload a File of Users', |
|
singleuser => 'Add/Manage a Single User', |
|
listusers => 'Manage Multiple Users', |
|
}, |
|
author => { |
|
upload => 'Upload a File of Co-authors', |
|
singleuser => 'Add/Manage a Single Co-author', |
|
listusers => 'Display Co-authors and Manage Multiple Users', |
|
}, |
|
course => { |
|
upload => 'Upload a File of Course Users', |
|
singleuser => 'Add/Manage a Single Course User', |
|
listusers => 'Display Class Lists and Manage Multiple Users', |
|
}, |
|
); |
my @menu = |
my @menu = |
( |
( |
{ text => 'Upload a File of Users to Modify/Create Users and/or Add roles', |
{ text => $links{$context}{'upload'}, |
help => 'User_Management_Upload', |
help => 'User_Management_Upload', |
action => 'upload', |
action => 'upload', |
permission => $permission->{'cusr'}, |
permission => $permission->{'cusr'}, |
}, |
}, |
{ text => 'Create User/Set User Roles for a single user', |
{ text => $links{$context}{'singleuser'}, |
help => 'User_Management_Single_User', |
help => 'User_Management_Single_User', |
action => 'singleuser', |
action => 'singleuser', |
permission => $permission->{'cusr'}, |
permission => $permission->{'cusr'}, |
}, |
}, |
{ text => 'Display Lists of Users', |
{ text => $links{$context}{'listusers'}, |
help => 'User_Management_List', |
help => 'User_Management_List', |
action => 'listusers', |
action => 'listusers', |
permission => $permission->{'view'}, |
permission => ($permission->{'view'} || $permission->{'cusr'}), |
}, |
|
# { text => 'Expire User Roles', |
|
# help => 'User_Management_Drops', |
|
# action => 'expire', |
|
# permission => $permission->{'cusr'}, |
|
# }, |
|
{ text => 'Edit Custom Roles', |
|
help => 'Custom_Role_Edit', |
|
action => 'custom', |
|
permission => $permission->{'custom'}, |
|
}, |
}, |
); |
); |
|
if ($context eq 'domain' || $context eq 'course') { |
|
my $customlink = { text => 'Edit Custom Roles', |
|
help => 'Custom_Role_Edit', |
|
action => 'custom', |
|
permission => $permission->{'custom'}, |
|
}; |
|
push(@menu,$customlink); |
|
} |
|
if ($context eq 'course') { |
|
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
my @courselinks = |
|
( |
|
{ text => 'Automated Enrollment Manager', |
|
permission => (&Apache::lonnet::auto_run($cnum,$cdom) |
|
&& $permission->{'cusr'}), |
|
url => '/adm/populate', |
|
}, |
|
{ text => 'Manage Course Groups', |
|
help => 'Course_Manage_Group', |
|
permission => $permission->{'grp_manage'}, |
|
url => '/adm/coursegroups?refpage=cusr', |
|
}, |
|
); |
|
push(@menu,@courselinks); |
|
} |
my $menu_html = ''; |
my $menu_html = ''; |
foreach my $menu_item (@menu) { |
foreach my $menu_item (@menu) { |
next if (! $menu_item->{'permission'}); |
next if (! $menu_item->{'permission'}); |
Line 2903 sub print_main_menu {
|
Line 2934 sub print_main_menu {
|
return $menu_html; |
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 { |
sub restore_prev_selections { |
my %saveable_parameters = ('srchby' => 'scalar', |
my %saveable_parameters = ('srchby' => 'scalar', |
'srchin' => 'scalar', |
'srchin' => 'scalar', |