version 1.577, 2007/08/31 17:58:47
|
version 1.578, 2007/09/03 15:34:12
|
Line 6983 sub commit_studentrole {
|
Line 6983 sub commit_studentrole {
|
############################################################ |
############################################################ |
|
|
sub check_clone { |
sub check_clone { |
my ($args) = @_; |
my ($args,$linefeed) = @_; |
my $cloneid='/'.$args->{'clonedomain'}.'/'.$args->{'clonecourse'}; |
my $cloneid='/'.$args->{'clonedomain'}.'/'.$args->{'clonecourse'}; |
my ($clonecrsudom,$clonecrsunum)= &LONCAPA::split_courseid($cloneid); |
my ($clonecrsudom,$clonecrsunum)= &LONCAPA::split_courseid($cloneid); |
my $clonehome=&Apache::lonnet::homeserver($clonecrsunum,$clonecrsudom); |
my $clonehome=&Apache::lonnet::homeserver($clonecrsunum,$clonecrsudom); |
Line 6991 sub check_clone {
|
Line 6991 sub check_clone {
|
my $can_clone = 0; |
my $can_clone = 0; |
|
|
if ($clonehome eq 'no_host') { |
if ($clonehome eq 'no_host') { |
$clonemsg = &mt('Attempting to clone non-existing [_1]', |
$clonemsg = &mt('No new course created.').$linefeed.&mt('A new course could not be cloned from the specified original - [_1] - because it is a non-existent course.',$args->{'clonecourse'}.':'.$args->{'clonedomain'}); |
$args->{'crstype'}); |
|
} else { |
} else { |
my %clonedesc = &Apache::lonnet::coursedescription($cloneid,{'one_time' => 1}); |
my %clonedesc = &Apache::lonnet::coursedescription($cloneid,{'one_time' => 1}); |
if ($env{'request.role.domain'} eq $args->{'clonedomain'}) { |
if ($env{'request.role.domain'} eq $args->{'clonedomain'}) { |
Line 7001 sub check_clone {
|
Line 7000 sub check_clone {
|
my %clonehash = &Apache::lonnet::get('environment',['cloners'], |
my %clonehash = &Apache::lonnet::get('environment',['cloners'], |
$args->{'clonedomain'},$args->{'clonecourse'}); |
$args->{'clonedomain'},$args->{'clonecourse'}); |
my @cloners = split(/,/,$clonehash{'cloners'}); |
my @cloners = split(/,/,$clonehash{'cloners'}); |
my %roleshash = |
if (grep(/^\*$/,@cloners)) { |
&Apache::lonnet::get_my_roles($args->{'ccuname'}, |
$can_clone = 1; |
$args->{'ccdomain'},'userroles',['active'],['cc'], |
} elsif (grep(/^\*\:\Q$args->{'ccdomain'}\E$/,@cloners)) { |
[$args->{'clonedomain'}]); |
$can_clone = 1; |
if (($roleshash{$args->{'clonecourse'}.':'.$args->{'clonedomain'}.':cc'}) || (grep(/^\Q$args->{'ccuname'}\E:\Q$args->{'ccdomain'}\E$/,@cloners))) { |
} else { |
$can_clone = 1; |
my %roleshash = |
} else { |
&Apache::lonnet::get_my_roles($args->{'ccuname'}, |
$clonemsg = &mt('The new course was not cloned from an existing course because the new course owner ([_1]) does not have cloning rights in the existing course ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'}); |
$args->{'ccdomain'}, |
|
'userroles',['active'],['cc'], |
|
[$args->{'clonedomain'}]); |
|
if (($roleshash{$args->{'clonecourse'}.':'.$args->{'clonedomain'}.':cc'}) || (grep(/^\Q$args->{'ccuname'}\E:\Q$args->{'ccdomain'}\E$/,@cloners))) { |
|
$can_clone = 1; |
|
} else { |
|
$clonemsg = &mt('No new course created.').$linefeed.&mt('The new course could not be cloned from the existing course because the new course owner ([_1]) does not have cloning rights in the existing course ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'}); |
|
} |
} |
} |
} |
} |
} |
} |
|
|
return ($can_clone, $clonemsg, $cloneid, $clonehome); |
return ($can_clone, $clonemsg, $cloneid, $clonehome); |
} |
} |
|
|
Line 7029 sub construct_course {
|
Line 7034 sub construct_course {
|
# |
# |
my ($can_clone, $clonemsg, $cloneid, $clonehome); |
my ($can_clone, $clonemsg, $cloneid, $clonehome); |
if (($args->{'clonecourse'}) && ($args->{'clonedomain'})) { |
if (($args->{'clonecourse'}) && ($args->{'clonedomain'})) { |
($can_clone, $clonemsg, $cloneid, $clonehome) = &check_clone($args); |
($can_clone, $clonemsg, $cloneid, $clonehome) = &check_clone($args,$linefeed); |
if ($context ne 'auto') { |
if ($context ne 'auto') { |
$clonemsg = '<span class="LC_error">'.$clonemsg.'</span>'; |
if ($clonemsg ne '') { |
|
$clonemsg = '<span class="LC_error">'.$clonemsg.'</span>'; |
|
} |
} |
} |
$outcome .= $clonemsg.$linefeed; |
$outcome .= $clonemsg.$linefeed; |
|
|