'."\n");
+ &print_selfenroll_menu($r,'course',$cid,$cdom,$cnum,\%currsettings,'',1);
} else {
$r->print(&header(undef,{'no_nav_bar' => 1}).
''.&mt('You do not have permission to configure self-enrollment').'');
@@ -5381,6 +5568,26 @@ sub handler {
$r->print(&header(undef,{'no_nav_bar' => 1}).
''.&mt('You do not have permission to view helpdesk access').'');
}
+ } elsif ($env{'form.action'} eq 'rolerequests') {
+ if ($permission->{cusr} || $permission->{view}) {
+ &print_queued_roles($r,$context,$permission,$brcrum);
+ }
+ } elsif ($env{'form.action'} eq 'queuedroles') {
+ if (($permission->{cusr}) && ($context eq 'domain')) {
+ if (&show_role_requests($context,$env{'request.role.domain'})) {
+ if ($env{'form.state'} eq 'done') {
+ &process_pendingroles($r,$context,$permission,$brcrum);
+ } else {
+ &print_pendingroles($r,$context,$permission,$brcrum);
+ }
+ } else {
+ $r->print(&header(undef,{'no_nav_bar' => 1}).
+ ''.&mt('Domain coordinator approval of requests from other domains for assignment of roles to users from this domain not in use.').'');
+ }
+ } else {
+ $r->print(&header(undef,{'no_nav_bar' => 1}).
+ ''.&mt('You do not have permission to view queued requests from other domains for assignment of roles to users from this domain.').'');
+ }
} else {
$bread_crumbs_component = 'User Management';
$args = { bread_crumbs => $brcrum,
@@ -5632,6 +5839,7 @@ sub print_main_menu {
listusers => 'Show and manage users in this community.',
},
);
+
if ($linkcontext eq 'domain') {
unless ($permission->{'cusr'}) {
$links{'domain'}{'singleuser'} = 'View a User';
@@ -5833,7 +6041,7 @@ sub print_main_menu {
icon => 'selfenrl-queue.png',
#help => 'Course_Approve_Selfenroll',
url => '/adm/createuser?action=selfenrollqueue',
- permission => $permission->{'selfenrolladmin'},
+ permission => $permission->{'selfenrolladmin'} || $permission->{'selfenrollview'},
linktitle =>'Approve or reject enrollment requests.',
},
);
@@ -5860,7 +6068,7 @@ sub print_main_menu {
icon => 'self_enroll.png',
#help => 'Course_Self_Enrollment',
url => '/adm/createuser?action=selfenroll',
- permission => $permission->{'selfenrolladmin'},
+ permission => $permission->{'selfenrolladmin'} || $permission->{'selfenrollview'},
linktitle => 'Configure user self-enrollment.',
},
);
@@ -5877,6 +6085,28 @@ sub print_main_menu {
},
);
}
+ push(@{ $menu[2]->{items} },
+ {
+ linktext => 'Role Requests (other domains)',
+ icon => 'edit-find.png',
+ #help => 'Role_Requests',
+ url => '/adm/createuser?action=rolerequests',
+ permission => $permission->{'cusr'},
+ linktitle => 'Role requests for users in other domains',
+ },
+ );
+ if (&show_role_requests($context,$env{'request.role.domain'})) {
+ push(@{ $menu[2]->{items} },
+ {
+ linktext => 'Queued Role Assignments (this domain)',
+ icon => 'edit-find.png',
+ #help => 'Role_Approvals',
+ url => '/adm/createuser?action=queuedroles',
+ permission => $permission->{'cusr'},
+ linktitle => "Role requests for this domain's users",
+ },
+ );
+ }
return Apache::lonhtmlcommon::generate_menu(@menu);
# { text => 'View Log-in History',
# help => 'Course_User_Logins',
@@ -6109,8 +6339,7 @@ ENDSCRIPT
'// ]]>'."\n".
''."\n".
'
'.$lt->{'selfenroll'}.'
'."\n";
-
- my $visactions = &cat_visibility();
+ my $visactions = &cat_visibility($cdom);
my ($cathash,%cattype);
my %domconfig = &Apache::lonnet::get_dom('configuration',['coursecategories'],$cdom);
if (ref($domconfig{'coursecategories'}) eq 'HASH') {
@@ -6656,6 +6885,7 @@ sub visible_in_stdcat {
}
sub cat_visibility {
+ my ($cdom) = @_;
my %visactions = &Apache::lonlocal::texthash(
vis => 'This course/community currently appears in the Course/Community Catalog for this domain.',
gen => 'Courses can be both self-cataloging, based on an institutional code (e.g., fs08phy231), or can be assigned categories from a hierarchy defined for the domain.',
@@ -6668,13 +6898,24 @@ sub cat_visibility {
dc_chgconf => 'Ask a domain coordinator to change the Catalog type for this domain.',
dc_setcode => 'Ask a domain coordinator to assign a six character code to the course',
dc_unhide => 'Ask a domain coordinator to change the "Exclude from course catalog" setting.',
- dc_addinst => 'Ask a domain coordinator to enable display the catalog of "Official courses (with institutional codes)".',
+ dc_addinst => 'Ask a domain coordinator to enable catalog display of "Official courses (with institutional codes)".',
dc_instcode => 'Ask a domain coordinator to assign an institutional code (if this is an official course).',
dc_catalog => 'Ask a domain coordinator to enable or create at least one course category in the domain.',
dc_categories => 'Ask a domain coordinator to create a hierarchy of categories and sub categories for courses in the domain.',
dc_chgcat => 'Ask a domain coordinator to change the category assigned to the course, as the one currently assigned is no longer used in the domain',
dc_addcat => 'Ask a domain coordinator to assign a category to the course.',
);
+ if ($env{'request.role'} eq "dc./$cdom/") {
+ $visactions{'dc_chgconf'} = &mt('Use: "Main menu" [_1] "Set domain configuration" [_1] "Cataloging of courses/communities" to change the Catalog type for this domain.','»');
+ $visactions{'dc_setcode'} = &mt('Use: "Main menu" [_1] "Set domain configuration" [_1] "Cataloging of courses/communities" to assign a six character code to the course.','»');
+ $visactions{'dc_unhide'} = &mt('Use: "Main menu" [_1] "Set domain configuration" [_1] "Cataloging of courses/communities" to change the "Exclude from course catalog" setting.','»');
+ $visactions{'dc_addinst'} = &mt('Use: "Main menu" [_1] "Set domain configuration" [_1] "Cataloging of courses/communities" to enable catalog display of "Official courses (with institutional codes)".','»');
+ $visactions{'dc_instcode'} = &mt('Use: "Main menu" [_1] "View or modify a course or community" [_1] "View/Modify course owner, institutional code ... " to assign an institutional code (if this is an official course).','»');
+ $visactions{'dc_catalog'} = &mt('Use: "Main menu" [_1] "Set domain configuration" [_1] "Cataloging of courses/communities" to enable or create at least one course category in the domain.','»');
+ $visactions{'dc_categories'} = &mt('Use: "Main menu" [_1] "Set domain configuration" [_1] "Cataloging of courses/communities" to create a hierarchy of categories and sub categories for courses in the domain.','»');
+ $visactions{'dc_chgcat'} = &mt('Use: "Main menu" [_1] "View or modify a course or community" [_1] "View/Modify catalog settings for course" to change the category assigned to the course, as the one currently assigned is no longer used in the domain.','»');
+ $visactions{'dc_addcat'} = &mt('Use: "Main menu" [_1] "View or modify a course or community" [_1] "View/Modify catalog settings for course" to assign a category to the course.','»');
+ }
$visactions{'unhide'} = &mt('Use [_1]Categorize course[_2] to change the "Exclude from course catalog" setting.','','"');
$visactions{'chgcat'} = &mt('Use [_1]Categorize course[_2] to change the category assigned to the course, as the one currently assigned is no longer used in the domain.','"','"');
$visactions{'addcat'} = &mt('Use [_1]Categorize course[_2] to assign a category to the course.','"','"');
@@ -6853,12 +7094,13 @@ ENDSCRIPT
chgcontext => 'any',
rolelog_start_date => $defstart,
rolelog_end_date => $now,
+ approvals => 'any',
);
my $more_records = 0;
# set current
my %curr;
- foreach my $item ('show','page','role','chgcontext') {
+ foreach my $item ('show','page','role','chgcontext','approvals') {
$curr{$item} = $env{'form.'.$item};
}
my ($startdate,$enddate) =
@@ -6932,6 +7174,11 @@ ENDSCRIPT
if (($context eq 'course') && ($viewablesec ne '')) {
next if ($roleslog{$id}{'logentry'}{'section'} ne $viewablesec);
}
+ if ($curr{'approvals'} eq 'none') {
+ next if ($roleslog{$id}{'logentry'}{'approval'});
+ } elsif ($curr{'approvals'} ne 'any') {
+ next if ($roleslog{$id}{'logentry'}{'approval'} ne $curr{'approvals'});
+ }
$count ++;
next if ($count < $minshown);
unless ($showntableheader) {
@@ -6978,11 +7225,30 @@ ENDSCRIPT
if ($chgcontext ne '' && $lt{$chgcontext} ne '') {
$chgcontext = $lt{$chgcontext};
}
+ my ($showreqby,%reqby);
+ if (($roleslog{$id}{'logentry'}{'approval'}) &&
+ ($roleslog{$id}{'logentry'}{'requester'})) {
+ if ($reqby{$roleslog{$id}{'logentry'}{'requester'}} eq '') {
+ my ($requname,$requdom) = split(/:/,$roleslog{$id}{'logentry'}{'requester'});
+ $reqby{$roleslog{$id}{'logentry'}{'requester'}} =
+ &Apache::loncommon::plainname($requname,$requdom);
+ }
+ $showreqby = &mt('Requester').': '.$reqby{$roleslog{$id}{'logentry'}{'requester'}}.' ';
+ if ($roleslog{$id}{'logentry'}{'approval'} eq 'domain') {
+ $showreqby .= &mt('Adjudicator').': '.
+ $whodunit{$roleslog{$id}{'exe_uname'}.':'.$roleslog{$id}{'exe_udom'}}.
+ '';
+ } else {
+ $showreqby .= ''.&mt('User approved').'';
+ }
+ } else {
+ $showreqby = $whodunit{$roleslog{$id}{'exe_uname'}.':'.$roleslog{$id}{'exe_udom'}};
+ }
$r->print(
&Apache::loncommon::start_data_table_row()
.'