--- loncom/interface/lonsimplepage.pm 2006/03/29 20:07:00 1.36
+++ loncom/interface/lonsimplepage.pm 2006/07/07 21:25:02 1.43
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Simple Page Editor
#
-# $Id: lonsimplepage.pm,v 1.36 2006/03/29 20:07:00 raeburn Exp $
+# $Id: lonsimplepage.pm,v 1.43 2006/07/07 21:25:02 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -37,6 +37,7 @@ use Apache::lonfeedback;
use Apache::lonlocal;
use Apache::lonprintout;
use Apache::lonxml;
+use Apache::longroup;
sub handler {
my $r = shift;
@@ -48,15 +49,15 @@ sub handler {
if ($target eq 'tex') {
$r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}));
}
- my (undef,undef,undef,undef,$marker,$caller)=split(/\//,$r->uri);
+ my (undef,undef,$udom,$uname,$marker,$caller)=split(/\//,$r->uri);
# Is this even in a course?
unless ($env{'request.course.id'}) {
if ($target ne 'tex') {
- return &Apache::loncommon::simple_error_page($r,'',
- 'Not in a course');
+ &Apache::loncommon::simple_error_page($r,'','Not in a course');
} else {
$r->print('\textbf{Not in a course}\end{document}');
}
+ return OK;
}
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
@@ -64,26 +65,29 @@ sub handler {
my $grp_view_permission = &Apache::lonnet::allowed('vcg',
$env{'request.course.id'});
my $namespace;
+ my $group;
my %curr_group = ();
my %groupinfo = ();
- if ($caller eq 'grppg') {
+ if ($dom && $crs && ($udom eq $dom) && ($uname eq $crs)) {
$marker =~ s/\W//g;
- $namespace = 'grppage_'.$marker;
- my %curr_groups;
- if (!&Apache::loncommon::coursegroups(\%curr_groups,$dom,$crs,$marker)) {
- return &Apache::loncommon::simple_error_page($r,'',
- 'Invalid group name');
+ $group = $marker;
+ my %curr_groups = &Apache::longroup::coursegroups($dom,$crs,$group);
+ if (!%curr_groups) {
+ &Apache::loncommon::simple_error_page($r,'','Invalid group name');
+ return OK;
}
%groupinfo =
- &Apache::loncommon::get_group_settings($curr_groups{$marker});
- } else {
+ &Apache::longroup::get_group_settings($curr_groups{$group});
+ $namespace = 'grppage_'.$group;
+ } else {
$marker=~s/\D//g;
$namespace = 'smppage_'.$marker;
}
if (!$marker) {
- return &Apache::loncommon::simple_error_page($r,'','Invalid call');
+ &Apache::loncommon::simple_error_page($r,'','Invalid call');
+ return OK;
}
# --------------------------------------------------------- The syllabus fields
@@ -91,7 +95,7 @@ sub handler {
'aaa_title' => 'Page Title',
'bbb_content' => 'Content',
'ccc_webreferences' => 'Web References');
- if ($caller eq 'grppg') {
+ if ($group ne '') {
$syllabusfields{'abb_links'} = &mt('Functionality');
}
@@ -99,17 +103,11 @@ sub handler {
# ------------------------------------------------------------ Get query string
&Apache::loncommon::get_unprocessed_cgi
($ENV{'QUERY_STRING'},['forcestudent','forceedit','register']);
-# ----------------------------------------------------- Force menu registration
- my $addentries='';
- if ($env{'form.register'}) {
- $addentries=' onLoad="'.&Apache::lonmenu::loadevents().
- '" onUnload="'.&Apache::lonmenu::unloadevents().'"';
- }
# --------------------------------------------------------------- Force Student
my $forcestudent='';
if ($env{'form.forcestudent'} || $target eq 'tex' ) { $forcestudent='student'; };
- my $forceedit='';
- if ($env{'form.forceedit'}) { $forceedit='edit'; }
+ my $forceedit='';
+ if ($env{'form.forceedit'}) { $forceedit='edit'; }
my %syllabus=&Apache::lonnet::dump($namespace,$dom,$crs);
@@ -118,24 +116,25 @@ sub handler {
if ($target ne 'tex') {
my $title = 'Course Page';
- if ($caller eq 'grppg') {
+ if ($group ne '') {
$title = 'Group Page';
}
my $start_page =
&Apache::loncommon::start_page($title,undef,
{'function' => $forcestudent,
- 'add_entries' => $addentries,
'domain' => $dom,
'force_register' =>
$env{'form.register'},});
$r->print($start_page);
}
- if ($caller eq 'grppg') {
+ if ($group ne '') {
if (($grp_view_permission) ||
- (&Apache::loncommon::check_group_access($caller))) {
- unless(&Apache::lonnet::allowed('vgh',
- $env{'request.course.id'}.'/'.$marker)) {
+ (&Apache::longroup::check_group_access($caller))) {
+ if ((!&Apache::lonnet::allowed('vgh',
+ $env{'request.course.id'}.'/'.$marker))
+ && (!&Apache::lonnet::allowed('mdg',
+ $env{'request.course.id'}.'/'.$marker))) {
&display_group_links($r,$target,$marker,'view',%groupinfo);
return OK;
}
@@ -153,9 +152,9 @@ sub handler {
}
my $allowed;
- if ($caller eq 'grppg') {
- $allowed = $grp_view_permission;
- unless ($allowed) {
+ if ($group ne '') {
+ $allowed = &Apache::lonnet::allowed('mdg',$env{'request.course.id'});
+ if (!$allowed) {
$allowed = &Apache::lonnet::allowed('mgh',$env{'request.course.id'}.
'/'.$marker);
}
@@ -239,7 +238,7 @@ sub handler {
$message=&Apache::lonspeller::markeduptext($message);
}
$message=&Apache::lontexconvert::msgtexconverted($message);
- if ($_ eq 'abb_links' && $caller eq 'grppg') {
+ if ($_ eq 'abb_links' && $group ne '') {
$r->print('
');
&display_group_links($r,$target,$marker,'edit',%groupinfo);