version 1.576, 2007/08/31 03:21:27
|
version 1.578, 2007/09/03 15:34:12
|
Line 5695 sub user_picker {
|
Line 5695 sub user_picker {
|
if (ref($srch) eq 'HASH') { |
if (ref($srch) eq 'HASH') { |
if ($srch->{'srchby'} eq 'uname' && $srch->{'srchtype'} eq 'exact' && $srch->{'srchin'} eq 'dom' && $srch->{'srchdomain'} eq $env{'request.role.domain'}) { |
if ($srch->{'srchby'} eq 'uname' && $srch->{'srchtype'} eq 'exact' && $srch->{'srchin'} eq 'dom' && $srch->{'srchdomain'} eq $env{'request.role.domain'}) { |
$new_user_create = '<p> <input type="submit" name="forcenew" value="'.&HTML::Entities::encode(&mt('Make new user "[_1]"',$srchterm),'<>&"').'" onclick="javascript:setSearch(\'1\','.$caller.');" /> </p>'; |
$new_user_create = '<p> <input type="submit" name="forcenew" value="'.&HTML::Entities::encode(&mt('Make new user "[_1]"',$srchterm),'<>&"').'" onclick="javascript:setSearch(\'1\','.$caller.');" /> </p>'; |
} else { |
|
$new_user_create = &newuser_radio($caller); |
|
} |
} |
} else { |
|
$new_user_create = &newuser_radio($caller); |
|
} |
} |
|
|
$newuserscript = <<"ENDSCRIPT"; |
$newuserscript = <<"ENDSCRIPT"; |
Line 5827 END_BLOCK
|
Line 5823 END_BLOCK
|
return $output; |
return $output; |
} |
} |
|
|
sub newuser_radio { |
|
my ($caller) = @_; |
|
return '<span class="LC_nobreak">'.&mt('Make new user if no match found: ').'<input type="radio" name="forcenew" value="1" onclick="javascript:setSearch(\'1\','.$caller.')" />'.&mt('Yes').' <input type="radio" name="forcenew" value="0" checked="checked" />'.&mt('No').'</span><br />'; |
|
} |
|
|
|
|
|
|
|
=pod |
=pod |
|
|
=back |
=back |
Line 6994 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 7002 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 7012 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 7040 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; |
|
|