Diff for /loncom/interface/loncommon.pm between versions 1.1222 and 1.1225

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) {

Removed from v.1.1222  
changed lines
  Added in v.1.1225


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>