[LON-CAPA-cvs] cvs: loncom /interface loncreateuser.pm
raeburn
raeburn at source.lon-capa.org
Sat Apr 1 10:00:24 EDT 2017
raeburn Sat Apr 1 14:00:24 2017 EDT
Modified files:
/loncom/interface loncreateuser.pm
Log:
- Show appropriate help for the user's context (i.e., domain, author or
course), and user's permissions (i.e., edit versus view privilege).
-------------- next part --------------
Index: loncom/interface/loncreateuser.pm
diff -u loncom/interface/loncreateuser.pm:1.438 loncom/interface/loncreateuser.pm:1.439
--- loncom/interface/loncreateuser.pm:1.438 Thu Mar 30 14:08:18 2017
+++ loncom/interface/loncreateuser.pm Sat Apr 1 14:00:23 2017
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.438 2017/03/30 14:08:18 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.439 2017/04/01 14:00:23 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -647,7 +647,8 @@
# =================================================================== Phase one
sub print_username_entry_form {
- my ($r,$context,$response,$srch,$forcenewuser,$crstype,$brcrum) = @_;
+ my ($r,$context,$response,$srch,$forcenewuser,$crstype,$brcrum,
+ $permission) = @_;
my $defdom=$env{'request.role.domain'};
my $formtoset = 'crtuser';
if (exists($env{'form.startrolename'})) {
@@ -673,11 +674,25 @@
}
my $helpitem = 'Course_Change_Privileges';
if ($env{'form.action'} eq 'custom') {
- $helpitem = 'Course_Editing_Custom_Roles';
+ if ($context eq 'course') {
+ $helpitem = 'Course_Editing_Custom_Roles';
+ } elsif ($context eq 'domain') {
+ $helpitem = 'Domain_Editing_Custom_Roles';
+ }
} elsif ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
} elsif ($env{'form.action'} eq 'accesslogs') {
$helpitem = 'Domain_User_Access_Logs';
+ } elsif ($context eq 'author') {
+ $helpitem = 'Author_Change_Privileges';
+ } elsif ($context eq 'domain') {
+ if ($permission->{'cusr'}) {
+ $helpitem = 'Domain_Change_Privileges';
+ } elsif ($permission->{'view'}) {
+ $helpitem = 'Domain_View_Privileges';
+ } else {
+ undef($helpitem);
+ }
}
my %breadcrumb_text = &singleuser_breadcrumb($crstype,$context,$defdom);
if ($env{'form.action'} eq 'custom') {
@@ -768,6 +783,7 @@
} elsif (($env{'form.action'} eq 'singleuser') &&
($context eq 'domain') && (!&Apache::lonnet::allowed('mau',$defdom))) {
$actiontext = $lt{'srvu'};
+ $fixeddom = 1;
}
$r->print("<h3>$actiontext</h3>");
if ($env{'form.origform'} ne 'crtusername') {
@@ -1006,6 +1022,10 @@
$helpitem = 'Course_Change_Privileges';
} elsif ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
+ } elsif ($context eq 'author') {
+ $helpitem = 'Author_Change_Privileges';
+ } elsif ($context eq 'domain') {
+ $helpitem = 'Domain_Change_Privileges';
}
push (@{$brcrum},
{href => "javascript:backPage(document.usersrchform,'','')",
@@ -1132,7 +1152,8 @@
if (($ccuname eq '') || ($ccdomain eq '')) {
my $usermsg = &mt('No username and/or domain provided.');
$env{'form.phase'} = '';
- &print_username_entry_form($r,$context,$usermsg,'','',$crstype,$brcrum);
+ &print_username_entry_form($r,$context,$usermsg,'','',$crstype,$brcrum,
+ $permission);
return;
}
my ($form,$formname);
@@ -1181,7 +1202,8 @@
}
$response .= '</p><br />';
$env{'form.phase'} = '';
- &print_username_entry_form($r,$context,$response,undef,undef,$crstype,$brcrum);
+ &print_username_entry_form($r,$context,$response,undef,undef,$crstype,$brcrum,
+ $permission);
return;
}
$newuser = 1;
@@ -1205,7 +1227,8 @@
'username');
}
$env{'form.phase'} = '';
- &print_username_entry_form($r,$context,$userchkmsg,undef,undef,$crstype,$brcrum);
+ &print_username_entry_form($r,$context,$userchkmsg,undef,undef,$crstype,$brcrum,
+ $permission);
return;
}
}
@@ -1230,6 +1253,10 @@
my $helpitem = 'Course_Change_Privileges';
if ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
+ } elsif ($context eq 'author') {
+ $helpitem = 'Author_Change_Privileges';
+ } elsif ($context eq 'domain') {
+ $helpitem = 'Domain_Change_Privileges';
}
push (@{$brcrum},
{href => "javascript:backPage($form)",
@@ -2648,6 +2675,10 @@
my $helpitem = 'Course_Change_Privileges';
if ($env{'form.action'} eq 'singlestudent') {
$helpitem = 'Course_Add_Student';
+ } elsif ($context eq 'author') {
+ $helpitem = 'Author_Change_Privileges';
+ } elsif ($context eq 'domain') {
+ $helpitem = 'Domain_Change_Privileges';
}
push(@{$brcrum},
{href => "javascript:backPage(document.userupdate,'$env{'form.prevphase'}','modify')",
@@ -4312,9 +4343,9 @@
# ========================================================== Custom Role Editor
sub custom_role_editor {
- my ($r,$brcrum,$prefix) = @_;
+ my ($r,$context,$brcrum,$prefix,$permission) = @_;
my $action = $env{'form.customroleaction'};
- my $rolename;
+ my ($rolename,$helpitem);
if ($action eq 'new') {
$rolename=$env{'form.newrolename'};
} else {
@@ -4325,14 +4356,17 @@
if ($env{'request.course.id'}) {
$crstype = &Apache::loncommon::course_type();
$context = 'course';
+ $helpitem = 'Course_Editing_Custom_Roles';
} else {
$context = 'domain';
$crstype = 'course';
+ $helpitem = 'Domain_Editing_Custom_Roles';
}
$rolename=~s/[^A-Za-z0-9]//gs;
if (!$rolename || $env{'form.phase'} eq 'pickrole') {
- &print_username_entry_form($r,undef,undef,undef,undef,$crstype,$brcrum);
+ &print_username_entry_form($r,$context,undef,undef,undef,$crstype,$brcrum,
+ $permission);
return;
}
@@ -4387,7 +4421,7 @@
text => "Edit custom role",
faq => 282,
bug => 'Instructor Interface',
- help => 'Course_Editing_Custom_Roles'}
+ help => $helpitem}
);
my $args = { bread_crumbs => $brcrum,
bread_crumbs_component => 'User Management'};
@@ -4414,11 +4448,11 @@
# ---------------------------------------------------------- Call to definerole
sub set_custom_role {
- my ($r,$context,$brcrum,$prefix) = @_;
+ my ($r,$context,$brcrum,$prefix,$permission) = @_;
my $rolename=$env{'form.rolename'};
$rolename=~s/[^A-Za-z0-9]//gs;
if (!$rolename) {
- &custom_role_editor($r,$brcrum,$prefix);
+ &custom_role_editor($r,$context,$brcrum,$prefix,$permission);
return;
}
my ($jsback,$elements) = &crumb_utilities();
@@ -4427,6 +4461,10 @@
.$jsback."\n"
.'// ]]>'."\n"
.'</script>'."\n";
+ my $helpitem = 'Course_Editing_Custom_Roles';
+ if ($context eq 'domain') {
+ $helpitem = 'Domain_Editing_Custom_Roles';
+ }
push(@{$brcrum},
{href => "javascript:backPage(document.customresult,'pickrole','')",
text => "Pick custom role",
@@ -4440,7 +4478,7 @@
text => "Result",
faq => 282,
bug => 'Instructor Interface',
- help => 'Course_Editing_Custom_Roles'},
+ help => $helpitem,}
);
my $args = { bread_crumbs => $brcrum,
bread_crumbs_component => 'User Management'};
@@ -4511,7 +4549,8 @@
$r->send_http_header;
return OK;
}
- my ($context,$crstype);
+ my ($context,$crstype,$cid,$cnum,$cdom,$allhelpitems);
+
if ($env{'request.course.id'}) {
$context = 'course';
$crstype = &Apache::loncommon::course_type();
@@ -4521,6 +4560,69 @@
$context = 'domain';
}
+ my ($permission,$allowed) =
+ &Apache::lonuserutils::get_permission($context,$crstype);
+
+ if ($allowed) {
+ my @allhelp;
+ if ($context eq 'course') {
+ $cid = $env{'request.course.id'};
+ $cdom = $env{'course.'.$cid.'.domain'};
+ $cnum = $env{'course.'.$cid.'.num'};
+
+ if ($permission->{'cusr'}) {
+ push(@allhelp,'Course_Create_Class_List');
+ }
+ if ($permission->{'view'} || $permission->{'cusr'}) {
+ push(@allhelp,('Course_Change_Privileges','Course_View_Class_List'));
+ }
+ if ($permission->{'custom'}) {
+ push(@allhelp,'Course_Editing_Custom_Roles');
+ }
+ if ($permission->{'cusr'}) {
+ push(@allhelp,('Course_Add_Student','Course_Drop_Student'));
+ }
+ unless ($permission->{'cusr_section'}) {
+ if (&Apache::lonnet::auto_run($cnum,$cdom) && (($permission->{'cusr'}) || ($permission->{'view'}))) {
+ push(@allhelp,'Course_Automated_Enrollment');
+ }
+ if ($permission->{'selfenrolladmin'}) {
+ push(@allhelp,'Course_Approve_Selfenroll');
+ }
+ }
+ if ($permission->{'grp_manage'}) {
+ push(@allhelp,'Course_Manage_Group');
+ }
+ if ($permission->{'view'} || $permission->{'cusr'}) {
+ push(@allhelp,'Course_User_Logs');
+ }
+ } elsif ($context eq 'author') {
+ push(@allhelp,('Author_Change_Privileges','Author_Create_Coauthor_List',
+ 'Author_View_Coauthor_List','Author_User_Logs'));
+ } else {
+ if ($permission->{'cusr'}) {
+ push(@allhelp,'Domain_Change_Privileges');
+ if ($permission->{'activity'}) {
+ push(@allhelp,'Domain_User_Access_Logs');
+ }
+ push(@allhelp,('Domain_Create_Users','Domain_View_Users_List'));
+ if ($permission->{'custom'}) {
+ push(@allhelp,'Domain_Editing_Custom_Roles');
+ }
+ push(@allhelp,('Domain_Role_Approvals','Domain_Username_Approvals','Domain_Change_Logs'));
+ } elsif ($permission->{'view'}) {
+ push(@allhelp,'Domain_View_Privileges');
+ if ($permission->{'activity'}) {
+ push(@allhelp,'Domain_User_Access_Logs');
+ }
+ push(@allhelp,('Domain_View_Users_List','Domain_Change_Logs'));
+ }
+ }
+ if (@allhelp) {
+ $allhelpitems = join(',', at allhelp);
+ }
+ }
+
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['action','state','callingform','roletype','showrole','bulkaction','popup','phase',
'username','domain','srchterm','srchdomain','srchin','srchby','srchtype','queue']);
@@ -4531,7 +4633,7 @@
if (($env{'form.action'} ne 'dateselect') && ($env{'form.action'} ne 'displayuserreq')) {
$brcrum = [{href=>"/adm/createuser",
text=>"User Management",
- help=>'Course_Create_Class_List,Course_Change_Privileges,Course_View_Class_List,Course_Editing_Custom_Roles,Course_Add_Student,Course_Drop_Student,Course_Automated_Enrollment,Course_Self_Enrollment,Course_Manage_Group'}
+ help=>$allhelpitems}
];
}
#SD Following files not added to help, because the corresponding .tex-files seem to
@@ -4569,10 +4671,16 @@
$r->print(&header(undef,$args));
$r->print(&print_main_menu($permission,$context,$crstype));
} elsif ($env{'form.action'} eq 'upload' && $permission->{'cusr'}) {
+ my $helpitem = 'Course_Create_Class_List';
+ if ($context eq 'author') {
+ $helpitem = 'Author_Create_Coauthor_List';
+ } elsif ($context eq 'domain') {
+ $helpitem = 'Domain_Create_Users';
+ }
push(@{$brcrum},
{ href => '/adm/createuser?action=upload&state=',
text => 'Upload Users List',
- help => 'Course_Create_Class_List',
+ help => $helpitem,
});
$bread_crumbs_component = 'Upload Users List';
$args = {bread_crumbs => $brcrum,
@@ -4617,7 +4725,7 @@
.'</span>';
$env{'form.phase'} = '';
&print_username_entry_form($r,$context,$response,$srch,undef,
- $crstype,$brcrum,$showcredits);
+ $crstype,$brcrum,$permission);
} else {
my $ccuname =&LONCAPA::clean_username($srch->{'srchterm'});
my $ccdomain=&LONCAPA::clean_domain($srch->{'srchdomain'});
@@ -4662,7 +4770,8 @@
# }
#}
&print_username_entry_form($r,$context,$response,$srch,
- $forcenewuser,$crstype,$brcrum);
+ $forcenewuser,$crstype,$brcrum,
+ $permission);
} else {
&print_useraccesslogs_display($r,$ccuname,$ccdomain,$permission,$brcrum);
}
@@ -4679,7 +4788,8 @@
} else {
$env{'form.phase'} = '';
&print_username_entry_form($r,$context,$response,$srch,
- $forcenewuser,$crstype,$brcrum);
+ $forcenewuser,$crstype,$brcrum,
+ $permission);
}
} elsif ($env{'form.phase'} eq 'userpicked') {
my $ccuname = &LONCAPA::clean_username($env{'form.seluname'});
@@ -4700,14 +4810,14 @@
&update_user_data($r,$context,$crstype,$brcrum,$showcredits);
} else {
&print_username_entry_form($r,$context,undef,$srch,undef,$crstype,
- $brcrum);
+ $brcrum,$permission);
}
} elsif ($env{'form.action'} eq 'custom' && $permission->{'custom'}) {
my $prefix;
if ($env{'form.phase'} eq 'set_custom_roles') {
- &set_custom_role($r,$context,$brcrum,$prefix);
+ &set_custom_role($r,$context,$brcrum,$prefix,$permission);
} else {
- &custom_role_editor($r,$brcrum,$prefix);
+ &custom_role_editor($r,$context,$brcrum,$prefix,$permission);
}
} elsif (($env{'form.action'} eq 'processauthorreq') &&
($permission->{'cusr'}) &&
@@ -4856,13 +4966,19 @@
}
} elsif (($env{'form.action'} eq 'listusers') &&
($permission->{'view'} || $permission->{'cusr'})) {
+ my $helpitem = 'Course_View_Class_List';
+ if ($context eq 'author') {
+ $helpitem = 'Author_View_Coauthor_List';
+ } elsif ($context eq 'domain') {
+ $helpitem = 'Domain_View_Users_List';
+ }
if ($env{'form.phase'} eq 'bulkchange') {
push(@{$brcrum},
{href => '/adm/createuser?action=listusers',
text => "List Users"},
{href => "/adm/createuser",
text => "Result",
- help => 'Course_View_Class_List'});
+ help => $helpitem});
$bread_crumbs_component = 'Update Users';
$args = {bread_crumbs => $brcrum,
bread_crumbs_component => $bread_crumbs_component};
@@ -4879,7 +4995,7 @@
push(@{$brcrum},
{href => '/adm/createuser?action=listusers',
text => "List Users",
- help => 'Course_View_Class_List'});
+ help => $helpitem});
$bread_crumbs_component = 'List Users';
$args = {bread_crumbs => $brcrum,
bread_crumbs_component => $bread_crumbs_component};
@@ -4960,9 +5076,6 @@
}
} elsif ($env{'form.action'} eq 'selfenroll') {
if ($permission->{selfenrolladmin}) {
- my $cid = $env{'request.course.id'};
- my $cdom = $env{'course.'.$cid.'.domain'};
- my $cnum = $env{'course.'.$cid.'.num'};
my %currsettings = (
selfenroll_types => $env{'course.'.$cid.'.internal.selfenroll_types'},
selfenroll_registered => $env{'course.'.$cid.'.internal.selfenroll_registered'},
@@ -5008,21 +5121,18 @@
push(@{$brcrum},
{href => '/adm/createuser?action=selfenrollqueue',
text => 'Enrollment requests',
- help => 'Course_Self_Enrollment'});
+ help => 'Course_Approve_Selfenroll'});
$bread_crumbs_component = 'Enrollment requests';
if ($env{'form.state'} eq 'done') {
push(@{$brcrum},
{href => '/adm/createuser?action=selfenrollqueue',
text => 'Result',
- help => 'Course_Self_Enrollment'});
+ help => 'Course_Approve_Selfenroll'});
$bread_crumbs_component = 'Enrollment result';
}
$args = { bread_crumbs => $brcrum,
bread_crumbs_component => $bread_crumbs_component};
$r->print(&header(undef,$args));
- my $cid = $env{'request.course.id'};
- my $cdom = $env{'course.'.$cid.'.domain'};
- my $cnum = $env{'course.'.$cid.'.num'};
my $coursedesc = $env{'course.'.$cid.'.description'};
if (!exists($env{'form.state'})) {
$r->print('<h3>'.&mt('Pending enrollment requests').'</h3>'."\n");
@@ -6491,6 +6601,10 @@
my $helpitem;
if ($context eq 'course') {
$helpitem = 'Course_User_Logs';
+ } elsif ($context eq 'domain') {
+ $helpitem = 'Domain_Role_Logs';
+ } elsif ($context eq 'author') {
+ $helpitem = 'Author_User_Logs';
}
push (@{$brcrum},
{href => '/adm/createuser?action=changelogs',
More information about the LON-CAPA-cvs
mailing list