version 1.1222, 2015/06/09 21:22:56
|
version 1.1225, 2015/07/14 00:08:06
|
Line 79 use Authen::Captcha;
|
Line 79 use Authen::Captcha;
|
use Captcha::reCAPTCHA; |
use Captcha::reCAPTCHA; |
use Crypt::DES; |
use Crypt::DES; |
use DynaLoader; # for Crypt::DES version |
use DynaLoader; # for Crypt::DES version |
|
use MIME::Lite; |
|
use MIME::Types; |
|
|
# ---------------------------------------------- Designs |
# ---------------------------------------------- Designs |
use vars qw(%defaultdesign); |
use vars qw(%defaultdesign); |
Line 13851 sub build_recipient_list {
|
Line 13853 sub build_recipient_list {
|
|
|
=pod |
=pod |
|
|
|
=over 4 |
|
|
|
=item * &mime_email() |
|
|
|
Sends an email with a possible attachment |
|
|
|
Inputs: |
|
|
|
=over 4 |
|
|
|
from - Sender's email address |
|
|
|
to - Email address of recipient |
|
|
|
subject - Subject of email |
|
|
|
body - Body of email |
|
|
|
cc_string - Carbon copy email address |
|
|
|
bcc - Blind carbon copy email address |
|
|
|
type - File type of attachment |
|
|
|
attachment_path - Path of file to be attached |
|
|
|
file_name - Name of file to be attached |
|
|
|
attachment_text - The body of an attachment of type "TEXT" |
|
|
|
=back |
|
|
|
=back |
|
|
|
=cut |
|
|
|
############################################################ |
|
############################################################ |
|
|
|
sub mime_email { |
|
my ($from, $to, $subject, $body, $cc_string, $bcc, $attachment_path, |
|
$file_name, $attachment_text) = @_; |
|
my $msg = MIME::Lite->new( |
|
From => $from, |
|
To => $to, |
|
Subject => $subject, |
|
Type =>'TEXT', |
|
Data => $body, |
|
); |
|
if ($cc_string ne '') { |
|
$msg->add("Cc" => $cc_string); |
|
} |
|
if ($bcc ne '') { |
|
$msg->add("Bcc" => $bcc); |
|
} |
|
$msg->attr("content-type" => "text/plain"); |
|
$msg->attr("content-type.charset" => "UTF-8"); |
|
# Attach file if given |
|
if ($attachment_path) { |
|
unless ($file_name) { |
|
if ($attachment_path =~ m-/([^/]+)$-) { $file_name = $1; } |
|
} |
|
my ($type, $encoding) = MIME::Types::by_suffix($attachment_path); |
|
$msg->attach(Type => $type, |
|
Path => $attachment_path, |
|
Filename => $file_name |
|
); |
|
# Otherwise attach text if given |
|
} elsif ($attachment_text) { |
|
$msg->attach(Type => 'TEXT', |
|
Data => $attachment_text); |
|
} |
|
# Send it |
|
$msg->send('sendmail'); |
|
} |
|
|
|
############################################################ |
|
############################################################ |
|
|
|
=pod |
|
|
=head1 Course Catalog Routines |
=head1 Course Catalog Routines |
|
|
=over 4 |
=over 4 |
Line 14444 sub check_clone {
|
Line 14527 sub check_clone {
|
$can_clone = 1; |
$can_clone = 1; |
} elsif (grep(/^\*\:\Q$args->{'ccdomain'}\E$/,@cloners)) { |
} elsif (grep(/^\*\:\Q$args->{'ccdomain'}\E$/,@cloners)) { |
$can_clone = 1; |
$can_clone = 1; |
|
} elsif (grep(/^\Q$args->{'ccuname'}\E:\Q$args->{'ccdomain'}\E$/,@cloners)) { |
|
$can_clone = 1; |
} |
} |
unless ($can_clone) { |
unless ($can_clone) { |
if (($clonehash{'internal.coursecode'}) && ($args->{'crscode'}) && ($args->{'clonedomain'} eq $args->{'course_domain'})) { |
if (($clonehash{'internal.coursecode'}) && ($args->{'crscode'}) && |
|
($args->{'clonedomain'} eq $args->{'course_domain'})) { |
my (%gotdomdefaults,%gotcodedefaults); |
my (%gotdomdefaults,%gotcodedefaults); |
foreach my $cloner (@cloners) { |
foreach my $cloner (@cloners) { |
if (($cloner ne '*') && ($cloner !~ /^\*\:$match_domain$/) && |
if (($cloner ne '*') && ($cloner !~ /^\*\:$match_domain$/) && |
Line 14477 sub check_clone {
|
Line 14563 sub check_clone {
|
} |
} |
} |
} |
} |
} |
unless ($can_clone) { |
} |
my $ccrole = 'cc'; |
} |
if ($args->{'crstype'} eq 'Community') { |
unless ($can_clone) { |
$ccrole = 'co'; |
my $ccrole = 'cc'; |
} |
if ($args->{'crstype'} eq 'Community') { |
my %roleshash = |
$ccrole = 'co'; |
&Apache::lonnet::get_my_roles($args->{'ccuname'}, |
} |
$args->{'ccdomain'}, |
my %roleshash = |
'userroles',['active'],[$ccrole], |
&Apache::lonnet::get_my_roles($args->{'ccuname'}, |
[$args->{'clonedomain'}]); |
$args->{'ccdomain'}, |
if (($roleshash{$args->{'clonecourse'}.':'.$args->{'clonedomain'}.':'.$ccrole}) || |
'userroles',['active'],[$ccrole], |
(grep(/^\Q$args->{'ccuname'}\E:\Q$args->{'ccdomain'}\E$/,@cloners))) { |
[$args->{'clonedomain'}]); |
$can_clone = 1; |
if ($roleshash{$args->{'clonecourse'}.':'.$args->{'clonedomain'}.':'.$ccrole}) { |
} elsif (&Apache::lonnet::is_course_owner($args->{'clonedomain'},$args->{'clonecourse'}, |
$can_clone = 1; |
$args->{'ccuname'},$args->{'ccdomain'})) { |
} elsif (&Apache::lonnet::is_course_owner($args->{'clonedomain'},$args->{'clonecourse'}, |
$can_clone = 1; |
$args->{'ccuname'},$args->{'ccdomain'})) { |
} |
$can_clone = 1; |
} |
|
} |
} |
} |
} |
unless ($can_clone) { |
unless ($can_clone) { |