/**
  * @access public
  * @param User         $user    required
  * @param Localization $locale
  * @param string       $charset
  * @return array MailConfigurations
  * @throws MailerException
  */
 public static function listOutboundMailConfigurations(User $user, Localization $locale = null, $charset = null)
 {
     global $app_strings;
     $outboundEmailConfigurations = array();
     $ret = $user->getUsersNameAndEmail();
     $systemDefaultOutbound = null;
     if (empty($ret['email'])) {
         $systemReturn = $user->getSystemDefaultNameAndEmail();
         $ret['email'] = $systemReturn['email'];
         $ret['name'] = $systemReturn['name'];
         $system_replyToAddress = $ret['email'];
     } else {
         $system_replyToAddress = '';
     }
     $system_replyToName = $ret['name'];
     $replyTo = $user->emailAddress->getReplyToAddress($user, true);
     if (!empty($replyTo)) {
         $system_replyToAddress = $replyTo;
     }
     $systemUser = BeanFactory::getBean("Users");
     $systemUser->getSystemUser();
     $oe = static::loadOutboundEmail();
     $systemMailerConfiguration = $oe->getSystemMailerSettings();
     if ($oe->isAllowUserAccessToSystemDefaultOutbound()) {
         $system = $systemMailerConfiguration;
         $personal = false;
     } else {
         $system = $oe->getUsersMailerForSystemOverride($user->id);
         $personal = true;
         if (empty($system)) {
             // Create a User System-Override Configuration
             if ($user->id == $systemUser->id) {
                 $oe = $oe->createUserSystemOverrideAccount($user->id, $systemMailerConfiguration->mail_smtpuser, $systemMailerConfiguration->mail_smtppass);
             } else {
                 $oe = $oe->createUserSystemOverrideAccount($user->id);
             }
             $system = $oe->getUsersMailerForSystemOverride($user->id);
         }
     }
     if (empty($system->id)) {
         throw new MailerException("No Valid Mail Configurations Found", MailerException::InvalidConfiguration);
     }
     // turn the OutboundEmail object into a useable set of mail configurations
     $oe = static::loadOutboundEmail();
     $oe->retrieve($system->id);
     $configurations = array();
     $configurations["config_id"] = $system->id;
     $configurations["config_type"] = "system";
     $configurations["inbox_id"] = null;
     $configurations["from_email"] = $ret["email"];
     $configurations["from_name"] = $ret["name"];
     $configurations["display_name"] = "{$ret['name']} ({$ret['email']}) - [" . ($personal ? $app_strings['LBL_USER_DEFAULT_OUTBOUND_EMAIL_CONFIGURATION'] : $app_strings['LBL_SYSTEM_DEFAULT_OUTBOUND_EMAIL_CONFIGURATION']) . "]";
     $configurations["personal"] = $personal;
     $configurations["replyto_email"] = $system_replyToAddress;
     $configurations["replyto_name"] = $system_replyToName;
     $configurations["inbound_ids"] = array();
     $outboundEmailConfiguration = self::buildOutboundEmailConfiguration($user, $configurations, $oe, $locale, $charset);
     $outboundEmailConfigurations[] = $outboundEmailConfiguration;
     return $outboundEmailConfigurations;
 }
Example #2
0
 public function getUsersNameAndEmail($id)
 {
     $user = new User();
     $user->retrieve($id);
     $expected = array("name" => "firstn lastn", "email" => "*****@*****.**");
     $actual = $user->getUsersNameAndEmail();
     $this->assertEquals($actual, $expected);
 }