[LON-CAPA-cvs] cvs: loncom / loncapa_apache.conf /interface longroupchat.pm
raeburn
raeburn at source.lon-capa.org
Fri Jan 23 14:24:00 EST 2026
raeburn Fri Jan 23 19:24:00 2026 EDT
Modified files:
/loncom/interface longroupchat.pm
/loncom loncapa_apache.conf
Log:
- Display roles page unless course role active.
- Display appropriate error messages if group missing from query string,
group name is invalid, or user is not authorized to access group's chat.
Index: loncom/interface/longroupchat.pm
diff -u loncom/interface/longroupchat.pm:1.10 loncom/interface/longroupchat.pm:1.11
--- loncom/interface/longroupchat.pm:1.10 Tue Feb 24 18:20:49 2009
+++ loncom/interface/longroupchat.pm Fri Jan 23 19:23:58 2026
@@ -1,7 +1,7 @@
# The LearningOnline Network
# "Group Chat Room Frame" Personal Information
#
-# $Id: longroupchat.pm,v 1.10 2009/02/24 18:20:49 hauer Exp $
+# $Id: longroupchat.pm,v 1.11 2026/01/23 19:23:58 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -28,30 +28,55 @@
package Apache::longroupchat;
use strict;
-use Apache::Constants qw(:common);
+use Apache::Constants qw(:common :http);
use Apache::lonnet;
use Apache::loncommon();
use Apache::lonlocal;
use Apache::longroup();
use lib '/home/httpd/lib/perl/';
+use HTML::Entities();
use LONCAPA;
sub handler {
my ($r) = @_;
+ if ($env{'request.course.id'} eq '') {
+ my $requrl = $r->uri;
+ $env{'user.error.msg'} = "$requrl:bre:0:0:Choose course";
+ return HTTP_NOT_ACCEPTABLE;
+ }
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['group']);
my $group = $env{'form.group'};
- my $grouptitle;
- if (defined($group)) {
+ my $grouptitle = &mt('Group Chat Room');
+ if ($group ne '') {
my $cnum=$env{'course.'.$env{'request.course.id'}.'.num'};
my $cdom=$env{'course.'.$env{'request.course.id'}.'.domain'};
my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum,$group);
- if (%curr_groups) {
- my %group_info =
- &Apache::longroup::get_group_settings($curr_groups{$group});
- $grouptitle = &mt('Group Chat Room:').' '.
- &unescape($group_info{description});
+ if ((keys(%curr_groups)) && ($curr_groups{$group} ne '')) {
+ my %group_info =
+ &Apache::longroup::get_group_settings($curr_groups{$group});
+ if ($group_info{description} ne '') {
+ $grouptitle .= ': '.&unescape($group_info{description});
+ }
+ $grouptitle = &HTML::Entities::encode($grouptitle,'<>');
+ if ((! &Apache::lonnet::allowed('pgc',$env{'request.course.id'}.'/'.$group)) &&
+ (! &Apache::lonnet::allowed('vcg',$env{'request.course.id'}.
+ ($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:'')))) {
+ &Apache::loncommon::simple_error_page($r,$grouptitle,&mt('Access Denied'),
+ {'only_body' => 1});
+ return OK;
+ }
+ } else {
+ $grouptitle = &HTML::Entities::encode($grouptitle,'<>');
+ &Apache::loncommon::simple_error_page($r,$grouptitle,&mt('Invalid group'),
+ {'only_body' => 1});
+ return OK;
}
+ } else {
+ $grouptitle = &HTML::Entities::encode($grouptitle,'<>');
+ &Apache::loncommon::simple_error_page($r,$grouptitle,&mt('Missing group name'),
+ {'only_body' => 1});
+ return OK;
}
&Apache::loncommon::content_type($r,'text/html');
Index: loncom/loncapa_apache.conf
diff -u loncom/loncapa_apache.conf:1.288 loncom/loncapa_apache.conf:1.289
--- loncom/loncapa_apache.conf:1.288 Wed Dec 31 23:44:30 2025
+++ loncom/loncapa_apache.conf Fri Jan 23 19:24:00 2026
@@ -2,7 +2,7 @@
## loncapa_apache.conf -- Apache HTTP LON-CAPA configuration file
##
-# $Id: loncapa_apache.conf,v 1.288 2025/12/31 23:44:30 raeburn Exp $
+# $Id: loncapa_apache.conf,v 1.289 2026/01/23 19:24:00 raeburn Exp $
#
# LON-CAPA Section (extensions to httpd.conf daemon configuration)
@@ -1500,6 +1500,7 @@
SetHandler perl-script
PerlHandler Apache::longroupchat
ErrorDocument 403 /adm/login
+ErrorDocument 406 /adm/roles
ErrorDocument 500 /adm/errorhandler
</Location>
More information about the LON-CAPA-cvs
mailing list