version 1.406.2.7, 2016/11/13 15:47:04
|
version 1.406.2.9, 2017/01/21 23:30:18
|
Line 531 sub domainrole_req {
|
Line 531 sub domainrole_req {
|
&Apache::loncommon::end_data_table(); |
&Apache::loncommon::end_data_table(); |
} |
} |
|
|
sub domadhocroles { |
|
my ($ccuname,$ccdomain) = @_; |
|
my $confname = &Apache::lonnet::get_domainconfiguser($env{'request.role.domain'}); |
|
my %existing=&Apache::lonnet::dump('roles',$env{'request.role.domain'}, |
|
$confname,'rolesdef_'); |
|
my ($output,$canmodify); |
|
if (&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) { |
|
$canmodify = 1; |
|
} |
|
if (keys(%existing) > 0) { |
|
my @current; |
|
my $curradhoc = 'adhocroles.'.$env{'request.role.domain'}; |
|
my %userenv = &Apache::lonnet::userenvironment($ccdomain,$ccuname,$curradhoc); |
|
if ($userenv{$curradhoc}) { |
|
@current = split(/,/,$userenv{$curradhoc}); |
|
} |
|
if (!$canmodify && !@current) { |
|
return; |
|
} |
|
my %customroles; |
|
foreach my $key (keys(%existing)) { |
|
if ($key=~/^rolesdef\_(\w+)$/) { |
|
my $rolename = $1; |
|
my %privs; |
|
($privs{'system'},$privs{'domain'},$privs{'course'}) = split(/\_/,$existing{$key}); |
|
$customroles{$rolename} = \%privs; |
|
} |
|
} |
|
$output = '<br /><h3>'. |
|
&mt('Ad Hoc Course Roles Selectable via Helpdesk Role'). |
|
'</h3>'."\n". |
|
&Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_header_row(); |
|
if ($canmodify) { |
|
$output .= '<th>'.&mt('Action').'</th>'; |
|
} |
|
$output .= '<th>'.&mt('Role').'</th>'. |
|
'<th>'.&mt('Privileges in Course').'<th>'. |
|
&Apache::loncommon::end_data_table_header_row(); |
|
foreach my $key (sort(keys(%customroles))) { |
|
next if ((!$canmodify) && (!grep(/^\Q$key\E$/,@current))); |
|
$output .= &Apache::loncommon::start_data_table_row(); |
|
if ($canmodify) { |
|
if (grep(/^\Q$key\E$/,@current)) { |
|
$output .= '<td><label>'. |
|
'<input type="checkbox" name="adhocroledel" value="'.$key.'" />'. |
|
&mt('Delete').'</label>'. |
|
'</td>'; |
|
} else { |
|
$output .= '<td><label>'. |
|
'<input type="checkbox" name="adhocroleadd" value="'.$key.'" />'. |
|
&mt('Add').'</label>'. |
|
'</td>'; |
|
} |
|
} |
|
$output .= '<td>'.$key.'</td><td>'; |
|
foreach my $level ('course','domain','system') { |
|
if ($customroles{$key}{$level}) { |
|
my $suffix; |
|
if (($level eq 'domain') || ($level eq 'system')) { |
|
$suffix = ' ('.&mt($level).')'; |
|
} |
|
my @privs = split(/:/,$customroles{$key}{$level}); |
|
foreach my $item (@privs) { |
|
next if ($item eq ''); |
|
my ($priv,$cond) = split(/\&/,$item); |
|
$output .= &Apache::lonnet::plaintext($priv,'Course').$suffix.'<br />'; |
|
} |
|
} |
|
} |
|
$output .= '</td>'. |
|
&Apache::loncommon::end_data_table_row(); |
|
} |
|
$output .= &Apache::loncommon::end_data_table(); |
|
} |
|
return $output; |
|
} |
|
|
|
sub courserequest_titles { |
sub courserequest_titles { |
my %titles = &Apache::lonlocal::texthash ( |
my %titles = &Apache::lonlocal::texthash ( |
official => 'Official', |
official => 'Official', |
Line 1357 ENDFORMINFO
|
Line 1279 ENDFORMINFO
|
} |
} |
my $title = ''; |
my $title = ''; |
if ($newuser) { |
if ($newuser) { |
my ($portfolioform,$domroleform,$adhocroleform); |
my ($portfolioform,$domroleform); |
if ((&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) || |
if ((&Apache::lonnet::allowed('mpq',$env{'request.role.domain'})) || |
(&Apache::lonnet::allowed('mut',$env{'request.role.domain'}))) { |
(&Apache::lonnet::allowed('mut',$env{'request.role.domain'}))) { |
# Current user has quota or user tools modification privileges |
# Current user has quota or user tools modification privileges |
Line 1367 ENDFORMINFO
|
Line 1289 ENDFORMINFO
|
($ccdomain eq $env{'request.role.domain'})) { |
($ccdomain eq $env{'request.role.domain'})) { |
$domroleform = '<br />'.&domainrole_req($ccuname,$ccdomain); |
$domroleform = '<br />'.&domainrole_req($ccuname,$ccdomain); |
} |
} |
if (&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) { |
|
$adhocroleform = &domadhocroles($ccuname,$ccdomain); |
|
if ($adhocroleform) { |
|
$adhocroleform = '<br />'.$adhocroleform; |
|
} |
|
} |
|
&initialize_authen_forms($ccdomain,$formname); |
&initialize_authen_forms($ccdomain,$formname); |
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |
'lg' => 'Login Data', |
'lg' => 'Login Data', |
Line 1483 ENDAUTH
|
Line 1399 ENDAUTH
|
} else { |
} else { |
$r->print(&Apache::lonuserutils::set_login($ccdomain,$authformkrb,$authformint,$authformloc)); |
$r->print(&Apache::lonuserutils::set_login($ccdomain,$authformkrb,$authformint,$authformloc)); |
} |
} |
$r->print($portfolioform.$domroleform.$adhocroleform); |
$r->print($portfolioform.$domroleform); |
if ($env{'form.action'} eq 'singlestudent') { |
if ($env{'form.action'} eq 'singlestudent') { |
$r->print(&date_sections_select($context,$newuser,$formname, |
$r->print(&date_sections_select($context,$newuser,$formname, |
$permission,$crstype,$ccuname, |
$permission,$crstype,$ccuname, |
Line 1526 ENDAUTH
|
Line 1442 ENDAUTH
|
$r->print(&Apache::loncommon::end_data_table()); |
$r->print(&Apache::loncommon::end_data_table()); |
} |
} |
$r->print('</div>'); |
$r->print('</div>'); |
my @order = ('auth','quota','tools','requestauthor','adhocroles'); |
my @order = ('auth','quota','tools','requestauthor'); |
my %user_text; |
my %user_text; |
my ($isadv,$isauthor) = |
my ($isadv,$isauthor) = |
&Apache::lonnet::is_advanced_user($ccdomain,$ccuname); |
&Apache::lonnet::is_advanced_user($ccdomain,$ccuname); |
Line 1536 ENDAUTH
|
Line 1452 ENDAUTH
|
($env{'request.role.domain'} eq $ccdomain)) { |
($env{'request.role.domain'} eq $ccdomain)) { |
$user_text{'requestauthor'} = &domainrole_req($ccuname,$ccdomain); |
$user_text{'requestauthor'} = &domainrole_req($ccuname,$ccdomain); |
} |
} |
if ((&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) || |
|
(&Apache::lonnet::allowed('udp',$env{'request.role.domain'}))) { |
|
$user_text{'adhocroles'} = &domadhocroles($ccuname,$ccdomain); |
|
} |
|
$user_text{'auth'} = &user_authentication($ccuname,$ccdomain,$formname); |
$user_text{'auth'} = &user_authentication($ccuname,$ccdomain,$formname); |
if ((&Apache::lonnet::allowed('mpq',$ccdomain)) || |
if ((&Apache::lonnet::allowed('mpq',$ccdomain)) || |
(&Apache::lonnet::allowed('mut',$ccdomain)) || |
(&Apache::lonnet::allowed('mut',$ccdomain)) || |
Line 2299 ENDBADAUTH
|
Line 2211 ENDBADAUTH
|
$result = &mt('Currently Kerberos authenticated, Version [_1].',$krbver); |
$result = &mt('Currently Kerberos authenticated, Version [_1].',$krbver); |
} else { |
} else { |
$result = &mt('Currently Kerberos authenticated with domain [_1] Version [_2].', |
$result = &mt('Currently Kerberos authenticated with domain [_1] Version [_2].', |
$krbver,$krbrealm); |
$krbrealm,$krbver); |
} |
} |
} elsif ($currentauth =~ /^internal:/) { |
} elsif ($currentauth =~ /^internal:/) { |
$result = &mt('Currently internally authenticated.'); |
$result = &mt('Currently internally authenticated.'); |
Line 2924 sub update_user_data {
|
Line 2836 sub update_user_data {
|
$newcustom{'requestauthor'}, |
$newcustom{'requestauthor'}, |
\%changeHash,'requestauthor'); |
\%changeHash,'requestauthor'); |
} |
} |
if (&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) { |
|
my @adds = &Apache::loncommon::get_env_multiple('form.adhocroleadd'); |
|
if (&adhocrole_changes(\%changeHash)) { |
|
$changed{'adhocroles.'.$env{'request.role.domain'}} = $changeHash{'adhocroles.'.$env{'request.role.domain'}}; |
|
} |
|
} |
|
} |
} |
if ($canmodify_status{'inststatus'}) { |
if ($canmodify_status{'inststatus'}) { |
if (exists($env{'form.inststatus'})) { |
if (exists($env{'form.inststatus'})) { |
Line 2993 sub update_user_data {
|
Line 2899 sub update_user_data {
|
'requestcourses.community','requestcourses.textbook', |
'requestcourses.community','requestcourses.textbook', |
'reqcrsotherdom.official','reqcrsotherdom.unofficial', |
'reqcrsotherdom.official','reqcrsotherdom.unofficial', |
'reqcrsotherdom.community','reqcrsotherdom.textbook', |
'reqcrsotherdom.community','reqcrsotherdom.textbook', |
'requestauthor','adhocroles.'.$env{'request.role.domain'}], |
'requestauthor'], |
$env{'form.ccdomain'},$env{'form.ccuname'}); |
$env{'form.ccdomain'},$env{'form.ccuname'}); |
my ($tmp) = keys(%userenv); |
my ($tmp) = keys(%userenv); |
if ($tmp =~ /^(con_lost|error)/i) { |
if ($tmp =~ /^(con_lost|error)/i) { |
Line 3132 sub update_user_data {
|
Line 3038 sub update_user_data {
|
&Apache::loncommon::default_quota($env{'form.ccdomain'},$oldinststatus,$name); |
&Apache::loncommon::default_quota($env{'form.ccdomain'},$oldinststatus,$name); |
($newdefquota{$name},$newsettingstatus{$name}) = ($olddefquota{$name},$oldsettingstatus{$name}); |
($newdefquota{$name},$newsettingstatus{$name}) = ($olddefquota{$name},$oldsettingstatus{$name}); |
} |
} |
push(@disporder,'adhocroles'); |
|
my %canshow; |
my %canshow; |
if (&Apache::lonnet::allowed('mpq',$env{'form.ccdomain'})) { |
if (&Apache::lonnet::allowed('mpq',$env{'form.ccdomain'})) { |
$canshow{'quota'} = 1; |
$canshow{'quota'} = 1; |
Line 3151 sub update_user_data {
|
Line 3056 sub update_user_data {
|
if (&Apache::lonnet::allowed('cau',$env{'form.ccdomain'})) { |
if (&Apache::lonnet::allowed('cau',$env{'form.ccdomain'})) { |
$canshow{'requestauthor'} = 1; |
$canshow{'requestauthor'} = 1; |
} |
} |
if (&Apache::lonnet::allowed('cdh',$env{'request.role.domain'})) { |
|
$canshow{'adhocroles'} = 1; |
|
} |
|
my (%changeHash,%changed); |
my (%changeHash,%changed); |
if ($oldinststatus eq '') { |
if ($oldinststatus eq '') { |
$oldsettings{'inststatus'} = $othertitle; |
$oldsettings{'inststatus'} = $othertitle; |
Line 3267 sub update_user_data {
|
Line 3169 sub update_user_data {
|
&tool_changes('reqcrsotherdom',\@requestcourses,\%oldsettings,\%oldsettingstext, |
&tool_changes('reqcrsotherdom',\@requestcourses,\%oldsettings,\%oldsettingstext, |
\%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext); |
\%userenv,\%changeHash,\%changed,\%newsettings,\%newsettingstext); |
} |
} |
if ($userenv{'adhocroles.'.$env{'request.role.domain'}}) { |
|
$changeHash{'adhocroles.'.$env{'request.role.domain'}} = $userenv{'adhocroles.'.$env{'request.role.domain'}}; |
|
} |
|
if (&adhocrole_changes(\%changeHash,\%userenv)) { |
|
$changed{'adhocroles'} = 1; |
|
$oldsettings{'adhocroles'} = $userenv{'adhocroles.'.$env{'request.role.domain'}}; |
|
$newsettings{'adhocroles'} = $changeHash{'adhocroles.'.$env{'request.role.domain'}}; |
|
} |
|
} |
} |
foreach my $item (@userinfo) { |
foreach my $item (@userinfo) { |
if ($env{'form.c'.$item} ne $userenv{$item}) { |
if ($env{'form.c'.$item} ne $userenv{$item}) { |
Line 3316 sub update_user_data {
|
Line 3210 sub update_user_data {
|
&Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'}, |
&Apache::lonnet::usertools_access($env{'user.name'},$env{'user.domain'}, |
$key,'reload','requestauthor'); |
$key,'reload','requestauthor'); |
} |
} |
} elsif ($key eq 'adhocroles') { |
|
$newenvhash{'adhocroles.'.$env{'request.role.domain'}} = |
|
$changeHash{'adhocroles.'.$env{'request.role.domain'}}; |
|
} elsif ($key ne 'quota') { |
} elsif ($key ne 'quota') { |
$newenvhash{'environment.tools.'.$key} = |
$newenvhash{'environment.tools.'.$key} = |
$changeHash{'tools.'.$key}; |
$changeHash{'tools.'.$key}; |
Line 3510 sub display_userinfo {
|
Line 3401 sub display_userinfo {
|
'community' => 'Can Request Communities', |
'community' => 'Can Request Communities', |
'textbook' => 'Can Request Textbook Courses', |
'textbook' => 'Can Request Textbook Courses', |
'requestauthor' => 'Can Request Author Role', |
'requestauthor' => 'Can Request Author Role', |
'adhocroles' => 'Ad Hoc Roles Selectable via Helpdesk Role', |
|
'inststatus' => "Affiliation", |
'inststatus' => "Affiliation", |
'prvs' => 'Previous Value:', |
'prvs' => 'Previous Value:', |
'chto' => 'Changed To:' |
'chto' => 'Changed To:' |
Line 3876 sub tool_changes {
|
Line 3766 sub tool_changes {
|
return; |
return; |
} |
} |
|
|
sub adhocrole_changes { |
|
my ($changehashref,$userenv) = @_; |
|
my @adds = &Apache::loncommon::get_env_multiple('form.adhocroleadd'); |
|
my @dels = &Apache::loncommon::get_env_multiple('form.adhocroledel'); |
|
my (@saved,@added,@alladhoc,$changed); |
|
my $adhoc_key = 'adhocroles.'.$env{'request.role.domain'}; |
|
if (!$env{'form.makeuser'}) { |
|
if (ref($userenv) eq 'HASH') { |
|
my @current; |
|
if ($userenv->{$adhoc_key}) { |
|
@current = split(/,/,$userenv->{$adhoc_key}); |
|
if (@dels) { |
|
foreach my $curr (@current) { |
|
next if ($curr eq ''); |
|
unless (grep(/\Q$curr\E$/,@dels)) { |
|
push(@saved,$curr); |
|
} |
|
} |
|
$changed = 1; |
|
} else { |
|
@saved = @current; |
|
} |
|
} |
|
} |
|
} |
|
if (@adds) { |
|
my $confname = &Apache::lonnet::get_domainconfiguser($env{'request.role.domain'}); |
|
my %existing=&Apache::lonnet::dump('roles',$env{'request.role.domain'}, |
|
$confname,'rolesdef_'); |
|
foreach my $poss (@adds) { |
|
if (exists($existing{'rolesdef_'.$poss})) { |
|
push(@added,$poss); |
|
$changed = 1; |
|
} |
|
} |
|
} |
|
if (@added) { |
|
if (@saved) { |
|
foreach my $add (@added) { |
|
unless (grep(/^\Q$add\E$/,@saved)) { |
|
push(@alladhoc,$add); |
|
} |
|
} |
|
} else { |
|
push(@alladhoc,@added); |
|
} |
|
} |
|
if (@saved) { |
|
push(@alladhoc,@saved); |
|
} |
|
if (@alladhoc) { |
|
my $adhocstr = join(',',sort(@alladhoc)); |
|
$changehashref->{$adhoc_key} = $adhocstr; |
|
} elsif (@dels) { |
|
&Apache::lonnet::del('environment',[$adhoc_key],$env{'form.ccdomain'},$env{'form.ccuname'}); |
|
delete($changehashref->{$adhoc_key}); |
|
if (($env{'form.ccdomain'} eq $env{'user.domain'}) && |
|
($env{'form.ccuname'} eq $env{'user.name'})) { |
|
&Apache::lonnet::delenv($adhoc_key); |
|
} |
|
} |
|
return $changed; |
|
} |
|
|
|
sub update_roles { |
sub update_roles { |
my ($r,$context,$showcredits) = @_; |
my ($r,$context,$showcredits) = @_; |
my $now=time; |
my $now=time; |
Line 5520 sub print_main_menu {
|
Line 5346 sub print_main_menu {
|
{ |
{ |
linktext => 'User Access Log', |
linktext => 'User Access Log', |
icon => 'document-properties.png', |
icon => 'document-properties.png', |
#help => 'User_Access_Logs', |
#help => 'Domain_User_Access_Logs', |
url => '/adm/createuser?action=accesslogs', |
url => '/adm/createuser?action=accesslogs', |
permission => $permission->{'activity'}, |
permission => $permission->{'activity'}, |
linktitle => 'View user access log.', |
linktitle => 'View user access log.', |
Line 6845 sub print_useraccesslogs_display {
|
Line 6671 sub print_useraccesslogs_display {
|
push(@{$brcrum}, |
push(@{$brcrum}, |
{href => '/adm/createuser?action=accesslogs', |
{href => '/adm/createuser?action=accesslogs', |
text => 'User access logs', |
text => 'User access logs', |
help => 'User_Access_Logs'}); |
help => 'Domain_User_Access_Logs'}); |
my $bread_crumbs_component = 'User Access Logs'; |
my $bread_crumbs_component = 'User Access Logs'; |
my $args = { bread_crumbs => $brcrum, |
my $args = { bread_crumbs => $brcrum, |
bread_crumbs_component => 'User Management'}; |
bread_crumbs_component => 'User Management'}; |
|
if ($env{'form.popup'}) { |
|
$args->{'no_nav_bar'} = 1; |
|
} |
|
|
# set javascript |
# set javascript |
my ($jsback,$elements) = &crumb_utilities(); |
my ($jsback,$elements) = &crumb_utilities(); |
Line 7054 ENDSCRIPT
|
Line 6883 ENDSCRIPT
|
.'</p>'); |
.'</p>'); |
} |
} |
|
|
|
if ($env{'form.popup'} == 1) { |
|
$r->print('<input type="hidden" name="popup" value="1" />'."\n"); |
|
} |
|
|
# Form Footer |
# Form Footer |
$r->print( |
$r->print( |
'<input type="hidden" name="currstate" value="" />' |
'<input type="hidden" name="currstate" value="" />' |