[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm
raeburn
raeburn@source.lon-capa.org
Sun, 08 Feb 2009 20:28:52 -0000
raeburn Sun Feb 8 20:28:52 2009 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
Log:
- Work on ability of individual users to request creation of (a) official courses,
and (b) unofficial courses.
&usertools_access
- Additional argument for &usertools_access() - $context (requestcourses to check for rights to request creation of a course). If no defaults set in a domain, system default is not to allow course requests.
- When action is 'reload', get individual settings from %userenv, not %env.
&get_domain_defaults()
- Updated to cache requestcourses defaults in a domain.
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.984 loncom/lonnet/perl/lonnet.pm:1.985
--- loncom/lonnet/perl/lonnet.pm:1.984 Thu Feb 5 14:56:55 2009
+++ loncom/lonnet/perl/lonnet.pm Sun Feb 8 20:28:52 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.984 2009/02/05 14:56:55 neumanie Exp $
+# $Id: lonnet.pm,v 1.985 2009/02/08 20:28:52 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1259,7 +1259,7 @@
$domdefaults{'auth_def'} = $domconfig{'defaults'}{'auth_def'};
$domdefaults{'auth_arg_def'} = $domconfig{'defaults'}{'auth_arg_def'};
$domdefaults{'timezone_def'} = $domconfig{'defaults'}{'timezone_def'};
- $domdefaults{'datelocale_def'} = $domconfig{'defaults'}{'datelocale_def'}
+ $domdefaults{'datelocale_def'} = $domconfig{'defaults'}{'datelocale_def'};
} else {
$domdefaults{'lang_def'} = &domain($domain,'lang_def');
$domdefaults{'auth_def'} = &domain($domain,'auth_def');
@@ -1278,6 +1278,11 @@
}
}
}
+ if (ref($domconfig{'requestcourses'}) eq 'HASH') {
+ foreach my $item ('official','unofficial') {
+ $domdefaults{$item} = $domconfig{'requestcourses'}{$item};
+ }
+ }
&Apache::lonnet::do_cache_new('domdefaults',$domain,\%domdefaults,
$cachetime);
return %domdefaults;
@@ -4427,13 +4432,23 @@
}
sub usertools_access {
- my ($uname,$udom,$tool,$action) = @_;
- my $access;
- my %tools = (
- aboutme => 1,
- blog => 1,
- portfolio => 1,
- );
+ my ($uname,$udom,$tool,$action,$context) = @_;
+ my ($access,%tools);
+ if ($context eq '') {
+ $context = 'tools';
+ }
+ if ($context eq 'requestcourses') {
+ %tools = (
+ official => 1,
+ unofficial => 1,
+ );
+ } else {
+ %tools = (
+ aboutme => 1,
+ blog => 1,
+ portfolio => 1,
+ );
+ }
return if (!defined($tools{$tool}));
if ((!defined($udom)) || (!defined($uname))) {
@@ -4443,18 +4458,23 @@
if (($udom eq $env{'user.domain'}) && ($uname eq $env{'user.name'})) {
if ($action ne 'reload') {
- return $env{'environment.availabletools.'.$tool};
- }
+ if ($context eq 'requestcourses') {
+ return $env{'environment.canrequest.'.$tool};
+ } else {
+ return $env{'environment.availabletools.'.$tool};
+ }
+ }
}
my ($toolstatus,$inststatus);
- if (($udom eq $env{'user.domain'}) && ($uname eq $env{'user.name'})) {
- $toolstatus = $env{'environment.tools.'.$tool};
+ if (($udom eq $env{'user.domain'}) && ($uname eq $env{'user.name'}) &&
+ ($action ne 'reload')) {
+ $toolstatus = $env{'environment.'.$context.'.'.$tool};
$inststatus = $env{'environment.inststatus'};
} else {
- my %userenv = &userenvironment($udom,$uname,'tools.'.$tool);
- $toolstatus = $userenv{'tools.'.$tool};
+ my %userenv = &userenvironment($udom,$uname,$context.'.'.$tool);
+ $toolstatus = $userenv{$context.'.'.$tool};
$inststatus = $userenv{'inststatus'};
}
@@ -4510,7 +4530,11 @@
}
}
} else {
- $access = 1;
+ if ($context eq 'tools') {
+ $access = 1;
+ } else {
+ $access = 0;
+ }
return $access;
}
}