[LON-CAPA-cvs] cvs: loncom /auth roles.tab rolesplain.tab /interface londropadd.pm
matthew
lon-capa-cvs@mail.lon-capa.org
Fri, 12 Nov 2004 16:34:15 -0000
This is a MIME encoded message
--matthew1100277255
Content-Type: text/plain
matthew Fri Nov 12 11:34:15 2004 EDT
Modified files:
/loncom/auth roles.tab rolesplain.tab
/loncom/interface londropadd.pm
Log:
Added 'vcl' permission.
londropadd.pm: rewrote &print_main_menu to only show actions the user has
the ability to perfrom. Modified &handler to restrict access to functions
based on vcl & cst permissions.
--matthew1100277255
Content-Type: text/plain
Content-Disposition: attachment; filename="matthew-20041112113415.txt"
Index: loncom/auth/roles.tab
diff -u loncom/auth/roles.tab:1.31 loncom/auth/roles.tab:1.32
--- loncom/auth/roles.tab:1.31 Tue Nov 2 18:22:47 2004
+++ loncom/auth/roles.tab Fri Nov 12 11:34:15 2004
@@ -1,10 +1,10 @@
su:s csu&U:sma:mau:cdc&U:dro:psa:adv
dc:s bre:sma:adv
dc:d cli&UIK:cau&U:cdg&UIK:mau:ccc&U:cin&UIK:cta&UIK:cep&UIK:ccr&UIK:cst&UIK:cad&UIK:csc&UIK:dro:mky:psa:usc
-cc:s bre:sma:mcr:vsa:adv
-cc:c cin&IK:cta&IK:cep&IK:ccr&IK:cst&IK:are:cre:ere:vgr:gan:srm:opa:mgr:rin:pch:plc:mdc:usc:vsa
-in:s sma:vgr:mgr:adv
-in:c vgr:mgr:gan:dcm:srm:pch&C:plc&C:dch:pac:rin:las:opa:bre
+cc:s bre:sma:mcr:vsa:adv:vcl
+cc:c cin&IK:cta&IK:cep&IK:ccr&IK:cst&IK:are:cre:ere:vgr:gan:srm:opa:mgr:rin:pch:plc:mdc:usc:vsa:vcl
+in:s sma:vgr:mgr:adv:vcl
+in:c vgr:mgr:gan:dcm:srm:pch&C:plc&C:dch:pac:rin:las:opa:bre:vcl
ta:d sma
ta:c bre&RL:vgr&CR:mgr&CR:srm:pch&C:plc&C:dch:pac
ep:s adv
Index: loncom/auth/rolesplain.tab
diff -u loncom/auth/rolesplain.tab:1.13 loncom/auth/rolesplain.tab:1.14
--- loncom/auth/rolesplain.tab:1.13 Tue Nov 2 18:22:47 2004
+++ loncom/auth/rolesplain.tab Fri Nov 12 11:34:15 2004
@@ -50,6 +50,7 @@
mme:Modify metadata for a resource
vgr:View grades
vsa:View student activity
+vcl:View class list
mgr:Modify grades
gan:Generate anonymous statistics
dcm:Disable all communication among students
Index: loncom/interface/londropadd.pm
diff -u loncom/interface/londropadd.pm:1.120 loncom/interface/londropadd.pm:1.121
--- loncom/interface/londropadd.pm:1.120 Tue Oct 26 11:04:20 2004
+++ loncom/interface/londropadd.pm Fri Nov 12 11:34:15 2004
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to drop and add students in courses
#
-# $Id: londropadd.pm,v 1.120 2004/10/26 15:04:20 albertel Exp $
+# $Id: londropadd.pm,v 1.121 2004/11/12 16:34:15 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -136,52 +136,61 @@
###############################################################
# Menu Phase One
sub print_main_menu {
- my $r=shift;
- my %Text = &Apache::lonlocal::texthash
- ('upload' => 'Upload a class list',
- 'enrollone' => 'Enroll a single student',
- 'modify' => 'Modify student data',
- 'view' => 'View Class List',
- 'drop' => 'Drop Students',
- 'populate' => 'Automated Enrollment Manager');
- my %help=();
- foreach ('Course_Drop_Student','Course_Add_Student',
- 'Course_Modify_Student_Data','Course_View_Class_List',
- 'Course_Create_Class_List') {
- $help{$_}=&Apache::loncommon::help_open_topic($_);
- }
-
- $r->print(<<END);
-<p>
-<font size="+1">
-<a href="/adm/dropadd?action=upload">$Text{'upload'}</a>
-</font>$help{'Course_Create_Class_List'}
-</p><p>
-<font size="+1">
- <a href="/adm/dropadd?action=enrollstudent">$Text{'enrollone'}</a>
- </font>$help{'Course_Add_Student'}
-</p><p>
-<font size="+1">
- <a href="/adm/dropadd?action=modifystudent">$Text{'modify'}</a>
- </font>$help{'Course_Modify_Student_Data'}
-</p><p>
-<font size="+1">
- <a href="/adm/dropadd?action=classlist">$Text{'view'}</a>
- </font>$help{'Course_View_Class_List'}
-</p><p>
-<font size="+1">
- <a href="/adm/dropadd?action=drop">$Text{'drop'}</a>
- </font>$help{'Course_Drop_Student'}
-</p><p>
-END
+ my ($r,$enrl_permission,$view_permission)=@_;
+ #
my ($cdom,$cnum) = split/_/,$ENV{'request.course.id'};
- if (&Apache::lonnet::auto_run($cnum,$cdom) ) {
- $r->print(<<END);
-<font size="+1">
- <a href="/adm/populate">$Text{'populate'}</a>
-</font>
-END
+ my @menu =
+ (
+ { text => 'Uploade a class list',
+ help => 'Course_Create_Class_List',
+ action => 'upload',
+ permission => $enrl_permission,
+ },
+ { text => 'Enroll a single student',
+ help => 'Course_Add_Student',
+ action => 'enrollstudent',
+ permission => $enrl_permission,
+ },
+ { text => 'Modify student data',
+ help => 'Course_Modify_Student_Data',
+ action => 'modifystudent',
+ permission => $enrl_permission,
+ },
+ { text => 'View Class List',
+ help => 'Course_View_Class_List',
+ action => 'classlist',
+ permission => $view_permission,
+ },
+ { text => 'Drop Students',
+ help => 'Course_Drop_Student',
+ action => 'drop',
+ permission => $enrl_permission,
+ },
+ { text => 'Automated Enrollment Manager',
+ permission => &Apache::lonnet::auto_run($cnum,$cdom),
+ url => '/adm/populate',
+ },
+ );
+ my $menu_html = '';
+ foreach my $menu_item (@menu) {
+ next if (! $menu_item->{'permission'});
+ $menu_html.='<p>';
+ $menu_html.='<font size="+1">';
+ if (exists($menu_item->{'url'})) {
+ $menu_html.=qq{<a href="$menu_item->{'url'}">};
+ } else {
+ $menu_html.=
+ qq{<a href="/adm/dropadd?action=$menu_item->{'action'}">};
+ }
+ $menu_html.= &mt($menu_item->{'text'}).'</a></font>';
+ if (exists($menu_item->{'help'})) {
+ $menu_html.=
+ &Apache::loncommon::help_open_topic($menu_item->{'help'});
+ }
+ $menu_html.='</p>'.$/;
}
+ $r->print($menu_html);
+ return;
}
###############################################################
@@ -2268,14 +2277,23 @@
text=>"Enrollment Manager",
faq=>9,bug=>'Instructor Interface',});
# Needs to be in a course
- if (! (($ENV{'request.course.fn'}) &&
- (&Apache::lonnet::allowed('cst',$ENV{'request.course.id'})))) {
- # Not in a course, or not allowed to modify parms
+ if (! ($ENV{'request.course.fn'})) {
+ # Not in a course
$ENV{'user.error.msg'}=
"/adm/dropadd:cst:0:0:Cannot drop or add students";
return HTTP_NOT_ACCEPTABLE;
}
#
+ my $view_permission =
+ &Apache::lonnet::allowed('vcl',$ENV{'request.course.id'});
+ my $enrl_permission =
+ &Apache::lonnet::allowed('cst',$ENV{'request.course.id'});
+ if (! $view_permission && ! $enrl_permission) {
+ $ENV{'user.error.msg'}=
+ "/adm/dropadd:cst:0:0:Cannot drop or add students";
+ return HTTP_NOT_ACCEPTABLE;
+ }
+ #
# Only output the header information if they did not request csv format
#
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
@@ -2289,8 +2307,8 @@
if (! exists($ENV{'form.action'})) {
$r->print(&Apache::lonhtmlcommon::breadcrumbs
(undef,'Enrollment Manager'));
- &print_main_menu($r);
- } elsif ($ENV{'form.action'} eq 'upload') {
+ &print_main_menu($r,$enrl_permission,$view_permission);
+ } elsif ($ENV{'form.action'} eq 'upload' && $enrl_permission) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/dropadd?action=upload&state=',
text=>"Upload Classlist"});
@@ -2309,7 +2327,7 @@
} else {
&print_first_courselist_upload_form($r);
}
- } elsif ($ENV{'form.action'} eq 'drop') {
+ } elsif ($ENV{'form.action'} eq 'drop' && $enrl_permission) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/dropadd?action=drop',
text=>"Drop Students"});
@@ -2322,7 +2340,7 @@
} else {
&print_drop_menu($r);
}
- } elsif ($ENV{'form.action'} eq 'enrollstudent') {
+ } elsif ($ENV{'form.action'} eq 'enrollstudent' && $enrl_permission) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/dropadd?action=enrollstudent',
text=>"Enroll Student"});
@@ -2337,7 +2355,7 @@
} else {
&get_student_username_domain_form($r);
}
- } elsif ($ENV{'form.action'} eq 'classlist') {
+ } elsif ($ENV{'form.action'} eq 'classlist' && $view_permission) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/dropadd?action=classlist',
text=>"View Classlist"});
@@ -2352,7 +2370,7 @@
} else {
&print_html_classlist($r,undef);
}
- } elsif ($ENV{'form.action'} eq 'modifystudent') {
+ } elsif ($ENV{'form.action'} eq 'modifystudent' && $enrl_permission) {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/dropadd?action=modifystudent',
text=>"Modify Student Data"});
@@ -2374,7 +2392,7 @@
"Someone should fix this.");
$r->print(&Apache::lonhtmlcommon::breadcrumbs
(undef,'Enrollment Manager'));
- &print_main_menu($r);
+ &print_main_menu($r,$enrl_permission,$view_permission);
}
#
# Finish up
--matthew1100277255--