version 1.1133, 2013/06/05 12:39:34
|
version 1.1134, 2013/07/02 19:04:36
|
Line 8561 sub get_user_info {
|
Line 8561 sub get_user_info {
|
|
|
=item * &get_user_quota() |
=item * &get_user_quota() |
|
|
Retrieves quota assigned for storage of portfolio files for a user |
Retrieves quota assigned for storage of user files. |
|
Default is to report quota for portfolio files. |
|
|
Incoming parameters: |
Incoming parameters: |
1. user's username |
1. user's username |
2. user's domain |
2. user's domain |
|
3. quota name - portfolio, author, or course |
|
(if no quota name provided, defaults to portfolio). |
|
|
Returns: |
Returns: |
1. Disk quota (in Mb) assigned to student. |
1. Disk quota (in Mb) assigned to student. |
Line 8579 Returns:
|
Line 8582 Returns:
|
|
|
If a value has been stored in the user's environment, |
If a value has been stored in the user's environment, |
it will return that, otherwise it returns the maximal default |
it will return that, otherwise it returns the maximal default |
defined for the user's instituional status(es) in the domain. |
defined for the user's institutional status(es) in the domain. |
|
|
=cut |
=cut |
|
|
Line 8587 defined for the user's instituional stat
|
Line 8590 defined for the user's instituional stat
|
|
|
|
|
sub get_user_quota { |
sub get_user_quota { |
my ($uname,$udom) = @_; |
my ($uname,$udom,$quotaname) = @_; |
my ($quota,$quotatype,$settingstatus,$defquota); |
my ($quota,$quotatype,$settingstatus,$defquota); |
if (!defined($udom)) { |
if (!defined($udom)) { |
$udom = $env{'user.domain'}; |
$udom = $env{'user.domain'}; |
Line 8602 sub get_user_quota {
|
Line 8605 sub get_user_quota {
|
$defquota = 0; |
$defquota = 0; |
} else { |
} else { |
my $inststatus; |
my $inststatus; |
if ($udom eq $env{'user.domain'} && $uname eq $env{'user.name'}) { |
if ($quotaname eq 'course') { |
$quota = $env{'environment.portfolioquota'}; |
if (($env{'course.'.$udom.'_'.$uname.'.num'} eq $uname) && |
$inststatus = $env{'environment.inststatus'}; |
($env{'course.'.$udom.'_'.$uname.'.domain'} eq $udom)) { |
|
$quota = $env{'course.'.$udom.'_'.$uname.'.internal.uploadquota'}; |
|
} else { |
|
my %cenv = &Apache::lonnet::coursedescription("$udom/$uname"); |
|
$quota = $cenv{'internal.uploadquota'}; |
|
} |
} else { |
} else { |
my %userenv = |
if ($udom eq $env{'user.domain'} && $uname eq $env{'user.name'}) { |
&Apache::lonnet::get('environment',['portfolioquota', |
if ($quotaname eq 'author') { |
'inststatus'],$udom,$uname); |
$quota = $env{'environment.authorquota'}; |
my ($tmp) = keys(%userenv); |
} else { |
if ($tmp !~ /^(con_lost|error|no_such_host)/i) { |
$quota = $env{'environment.portfolioquota'}; |
$quota = $userenv{'portfolioquota'}; |
} |
$inststatus = $userenv{'inststatus'}; |
$inststatus = $env{'environment.inststatus'}; |
} else { |
} else { |
undef(%userenv); |
my %userenv = |
|
&Apache::lonnet::get('environment',['portfolioquota', |
|
'authorquota','inststatus'],$udom,$uname); |
|
my ($tmp) = keys(%userenv); |
|
if ($tmp !~ /^(con_lost|error|no_such_host)/i) { |
|
if ($quotaname eq 'author') { |
|
$quota = $userenv{'authorquota'}; |
|
} else { |
|
$quota = $userenv{'portfolioquota'}; |
|
} |
|
$inststatus = $userenv{'inststatus'}; |
|
} else { |
|
undef(%userenv); |
|
} |
} |
} |
} |
} |
($defquota,$settingstatus) = &default_quota($udom,$inststatus); |
if ($quota eq '' || wantarray) { |
if ($quota eq '') { |
if ($quotaname eq 'course') { |
$quota = $defquota; |
my %domdefs = &Apache::lonnet::get_domain_defaults($udom); |
$quotatype = 'default'; |
$defquota = $domdefs{'uploadquota'}; |
} else { |
} else { |
$quotatype = 'custom'; |
($defquota,$settingstatus) = &default_quota($udom,$inststatus,$quotaname); |
|
} |
|
if ($quota eq '') { |
|
$quota = $defquota; |
|
$quotatype = 'default'; |
|
} else { |
|
$quotatype = 'custom'; |
|
} |
} |
} |
} |
} |
if (wantarray) { |
if (wantarray) { |
Line 8647 Incoming parameters:
|
Line 8675 Incoming parameters:
|
status types (e.g., faculty, staff, student etc.) |
status types (e.g., faculty, staff, student etc.) |
which apply to the user for whom the default is being retrieved. |
which apply to the user for whom the default is being retrieved. |
If the institutional status string in undefined, the domain |
If the institutional status string in undefined, the domain |
default quota will be returned. |
default quota will be returned. |
|
3. quota name - portfolio, author, or course |
|
(if no quota name provided, defaults to portfolio). |
|
|
Returns: |
Returns: |
1. Default disk quota (in Mb) for user portfolios in the domain. |
1. Default disk quota (in Mb) for user portfolios in the domain. |
Line 8671 default quota returned.
|
Line 8701 default quota returned.
|
|
|
|
|
sub default_quota { |
sub default_quota { |
my ($udom,$inststatus) = @_; |
my ($udom,$inststatus,$quotaname) = @_; |
my ($defquota,$settingstatus); |
my ($defquota,$settingstatus); |
my %quotahash = &Apache::lonnet::get_dom('configuration', |
my %quotahash = &Apache::lonnet::get_dom('configuration', |
['quotas'],$udom); |
['quotas'],$udom); |
|
my $key = 'defaultquota'; |
|
if ($quotaname eq 'author') { |
|
$key = 'authorquota'; |
|
} |
if (ref($quotahash{'quotas'}) eq 'HASH') { |
if (ref($quotahash{'quotas'}) eq 'HASH') { |
if ($inststatus ne '') { |
if ($inststatus ne '') { |
my @statuses = map { &unescape($_); } split(/:/,$inststatus); |
my @statuses = map { &unescape($_); } split(/:/,$inststatus); |
foreach my $item (@statuses) { |
foreach my $item (@statuses) { |
if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { |
if (ref($quotahash{'quotas'}{$key}) eq 'HASH') { |
if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') { |
if ($quotahash{'quotas'}{$key}{$item} ne '') { |
if ($defquota eq '') { |
if ($defquota eq '') { |
$defquota = $quotahash{'quotas'}{'defaultquota'}{$item}; |
$defquota = $quotahash{'quotas'}{$key}{$item}; |
$settingstatus = $item; |
$settingstatus = $item; |
} elsif ($quotahash{'quotas'}{'defaultquota'}{$item} > $defquota) { |
} elsif ($quotahash{'quotas'}{$key}{$item} > $defquota) { |
$defquota = $quotahash{'quotas'}{'defaultquota'}{$item}; |
$defquota = $quotahash{'quotas'}{$key}{$item}; |
$settingstatus = $item; |
$settingstatus = $item; |
} |
} |
} |
} |
} else { |
} elsif ($key eq 'defaultquota') { |
if ($quotahash{'quotas'}{$item} ne '') { |
if ($quotahash{'quotas'}{$item} ne '') { |
if ($defquota eq '') { |
if ($defquota eq '') { |
$defquota = $quotahash{'quotas'}{$item}; |
$defquota = $quotahash{'quotas'}{$item}; |
Line 8703 sub default_quota {
|
Line 8737 sub default_quota {
|
} |
} |
} |
} |
if ($defquota eq '') { |
if ($defquota eq '') { |
if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { |
if (ref($quotahash{'quotas'}{$key}) eq 'HASH') { |
$defquota = $quotahash{'quotas'}{'defaultquota'}{'default'}; |
$defquota = $quotahash{'quotas'}{$key}{'default'}; |
} else { |
} elsif ($key eq 'defaultquota') { |
$defquota = $quotahash{'quotas'}{'default'}; |
$defquota = $quotahash{'quotas'}{'default'}; |
} |
} |
$settingstatus = 'default'; |
$settingstatus = 'default'; |
} |
} |
} else { |
} else { |
$settingstatus = 'default'; |
$settingstatus = 'default'; |
$defquota = 20; |
if ($quotaname eq 'author') { |
|
$defquota = 500; |
|
} else { |
|
$defquota = 20; |
|
} |
} |
} |
if (wantarray) { |
if (wantarray) { |
return ($defquota,$settingstatus); |
return ($defquota,$settingstatus); |