%PDF- %PDF-
| Direktori : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/common/ |
| Current File : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/common/exception.php |
<?php
/*
* Copyright 2004-2014, AfterLogic Corp.
* Licensed under AGPLv3 license or AfterLogic license
* if commercial version of the product was purchased.
* See the LICENSE file for a full license statement.
*/
/**
* @package Api
*/
class CApiErrorCodes
{
// users
const UserManager_AccountAlreadyExists = 1001;
const UserManager_AccountCreateFailed = 1002;
const UserManager_AccountUpdateFailed = 1003;
const UserManager_AccountAuthenticationFailed = 1004;
const UserManager_AccountCreateUserLimitReached = 1005;
const UserManager_AccountDoesNotExist = 1006;
const UserManager_LicenseKeyIsOutdated = 1007;
const UserManager_LicenseKeyInvalid = 1008;
const UserManager_IdentityCreateFailed = 1009;
const UserManager_IdentityUpdateFailed = 1010;
const UserManager_AccountConnectToMailServerFailed = 1011;
const UserManager_AccountOldPasswordNotCorrect = 1020;
const UserManager_AccountNewPasswordUpdateError = 1021;
const UserManager_AccountNewPasswordRejected = 1022;
const UserManager_CalUserCreateFailed = 1030;
const UserManager_CalUserUpdateFailed = 1031;
const UserManager_CalUserAlreadyExists = 1032;
// validation
const Validation_InvalidPort = 1101;
const Validation_FieldIsEmpty = 1102;
const Validation_InvalidPort_OutInfo = 1103;
const Validation_FieldIsEmpty_OutInfo = 1104;
const Validation_InvalidParameters = 1105;
const Validation_ObjectNotComplete = 1106;
const Validation_InvalidEmail = 1107;
const Validation_InvalidEmail_OutInfo = 1108;
const Validation_InvalidTenantName = 1109;
const Validation_InvalidChannelName = 1110;
// domains
const DomainsManager_DomainAlreadyExists = 1301;
const DomainsManager_DomainCreateFailed = 1302;
const DomainsManager_DomainUpdateFailed = 1303;
const DomainsManager_DomainNotEmpty = 1304;
const DomainsManager_DomainDoesNotExist = 1305;
// mailsuite
const MailSuiteManager_MailingListAlreadyExists = 1401;
const MailSuiteManager_MailingListCreateFailed = 1402;
const MailSuiteManager_MailingListUpdateFailed = 1403;
const MailSuiteManager_MailingListInvalid = 1404;
const MailSuiteManager_MailingListDeleteFailed = 1405;
// webmail
const WebMailManager_AccountDisabled = 1501;
const WebMailManager_AccountWebmailDisabled = 1502;
const WebMailManager_AccountCreateOnLogin = 1503;
const WebMailManager_NewUserRegistrationDisabled = 1504;
const WebMailManager_AccountAuthentication = 1505;
const WebMailManager_DomainDoesNotExist = 1506;
const WebMailManager_AccountConnectToMailServerFailed = 1507;
// container
const Container_UndefinedProperty = 1601;
// tenants
const TenantsManager_TenantAlreadyExists = 1701;
const TenantsManager_TenantCreateFailed = 1702;
const TenantsManager_TenantUpdateFailed = 1703;
const TenantsManager_TenantDoesNotExist = 1704;
const TenantsManager_AccountCreateUserLimitReached = 1705;
const TenantsManager_DomainCreateUserLimitReached = 1706;
const TenantsManager_QuotaLimitExided = 1707;
const TenantsManager_AccountUpdateUserLimitReached = 1705;
// channels
const ChannelsManager_ChannelAlreadyExists = 1801;
const ChannelsManager_ChannelCreateFailed = 1802;
const ChannelsManager_ChannelUpdateFailed = 1803;
const ChannelsManager_ChannelDoesNotExist = 1804;
// main
const Main_SettingLoadError = 2001;
const Main_UnknownError = 2002;
const Main_CustomError = 2003;
// db
const Db_ExceptionError = 3001;
const Db_PdoExceptionError = 3002;
// mail
const Mail_FolderNameContainDelimiter = 4001;
const Mail_AccountAuthentication = 4002;
const Mail_AccountConnectToMailServerFailed = 4003;
const Mail_AccountLoginFailed = 4004;
const Mail_InvalidRecipients = 4005;
const Mail_CannotRenameNonExistenFolder = 4006;
const Mail_CannotSendMessage = 4007;
const Mail_CannotSaveMessageInSentItems = 4008;
const Mail_MailboxUnavailable = 4009;
// fetcher
const Fetcher_ConnectToMailServerFailed = 4101;
const Fetcher_AuthError = 4102;
// Sabre
const Sabre_Exception = 5001;
const Sabre_PreconditionFailed = 5002;
// Helpdesk
const HelpdeskManager_UserAlreadyExists = 6001;
const HelpdeskManager_UserCreateFailed = 6002;
const HelpdeskManager_UserUpdateFailed = 6003;
const HelpdeskManager_AccountAuthentication = 6004;
const HelpdeskManager_ThreadCreateFailed = 6005;
const HelpdeskManager_ThreadUpdateFailed = 6006;
const HelpdeskManager_PostCreateFailed = 6007;
const HelpdeskManager_AccountSystemAuthentication = 6008;
const HelpdeskManager_AccountCannotBeDeleted = 6009;
const HelpdeskManager_UnactivatedUser = 6010;
/**
* @param int $iCode
* @param array $aParams = array()
* @return string
*/
public static function GetMessageByCode($iCode, $aParams = array())
{
static $aMessages = null;
if (null === $aMessages)
{
$aMessages = array(
self::UserManager_AccountAlreadyExists => CApi::I18N('API/USERMANAGER_ACCOUNT_ALREADY_EXISTS'),
self::UserManager_AccountCreateFailed => CApi::I18N('API/USERMANAGER_ACCOUNT_CREATE_FAILED'),
self::UserManager_AccountUpdateFailed => CApi::I18N('API/USERMANAGER_ACCOUNT_UPDATE_FAILED'),
self::UserManager_AccountAuthenticationFailed => CApi::I18N('API/USERMANAGER_ACCOUNT_AUTHENTICATION_FAILED'),
self::UserManager_AccountCreateUserLimitReached => CApi::I18N('API/USERMANAGER_ACCOUNT_CREATE_USER_LIMIT_REACHED'),
self::UserManager_AccountDoesNotExist => CApi::I18N('API/USERMANAGER_ACCOUNT_DOES_NOT_EXIST'),
self::UserManager_LicenseKeyIsOutdated => CApi::I18N('API/USERMANAGER_LICENSE_KEY_IS_OUTDATED'),
self::UserManager_LicenseKeyInvalid => CApi::I18N('API/USERMANAGER_LICENSE_KEY_INVALID'),
self::UserManager_IdentityCreateFailed => CApi::I18N('API/USERMANAGER_IDENTIFY_CREATE_FAILED'),
self::UserManager_IdentityUpdateFailed => CApi::I18N('API/USERMANAGER_IDENTITI_UPDATE_FAILED'),
self::UserManager_AccountConnectToMailServerFailed => CApi::I18N('API/USERMANAGER_ACCOUNT_CONNECT_TO_MAIL_SERVER_FAILED'),
self::UserManager_AccountOldPasswordNotCorrect => CApi::I18N('API/USERMANAGER_ACCOUNT_OLD_PASSWORD_NOT_CORRECT'),
self::UserManager_AccountNewPasswordUpdateError => CApi::I18N('API/USERMANAGER_ACCOUNT_NEW_PASSWORD_UPDATE_ERROR'),
self::UserManager_AccountNewPasswordRejected => CApi::I18N('API/USERMANAGER_ACCOUNT_NEW_PASSWORD_REJECTED'),
self::UserManager_CalUserCreateFailed => CApi::I18N('API/USERMANAGER_CALUSER_CREATE_FAILED'),
self::UserManager_CalUserUpdateFailed => CApi::I18N('API/USERMANAGER_CALUSER_UPDATE_FAILED'),
self::UserManager_CalUserAlreadyExists => CApi::I18N('API/USERMANAGER_CALUSER_ALREADY_EXISTS'),
self::DomainsManager_DomainAlreadyExists => CApi::I18N('API/DOMAINSMANAGER_DOMAIN_ALREADY_EXISTS'),
self::DomainsManager_DomainCreateFailed => CApi::I18N('API/DOMAINSMANAGER_DOMAIN_CREATE_FAILED'),
self::DomainsManager_DomainUpdateFailed => CApi::I18N('API/DOMAINSMANAGER_DOMAIN_UPDATE_FAILED'),
self::DomainsManager_DomainNotEmpty => CApi::I18N('API/DOMAINSMANAGER_DOMAIN_NOT_EMPTY'),
self::DomainsManager_DomainDoesNotExist => CApi::I18N('API/DOMAINSMANAGER_DOMAIN_DOES_NOT_EXIST'),
self::TenantsManager_TenantAlreadyExists => CApi::I18N('API/TENANTSMANAGER_TENANT_ALREADY_EXISTS'),
self::TenantsManager_TenantCreateFailed => CApi::I18N('API/TENANTSMANAGER_TENANT_CREATE_FAILED'),
self::TenantsManager_TenantUpdateFailed => CApi::I18N('API/TENANTSMANAGER_TENANT_UPDATE_FAILED'),
self::TenantsManager_TenantDoesNotExist => CApi::I18N('API/TENANTSMANAGER_TENANT_DOES_NOT_EXIST'),
self::TenantsManager_AccountCreateUserLimitReached => CApi::I18N('API/TENANTSMANAGER_ACCOUNT_CREATE_USER_LIMIT_REACHED'),
self::TenantsManager_AccountUpdateUserLimitReached => CApi::I18N('API/TENANTSMANAGER_ACCOUNT_UPDATE_USER_LIMIT_REACHED'),
self::TenantsManager_DomainCreateUserLimitReached => CApi::I18N('API/TENANTSMANAGER_DOMAIN_CREATE_USER_LIMIT_REACHED'),
self::TenantsManager_QuotaLimitExided => CApi::I18N('API/TENANTS_MANAGER_QUOTA_LIMIT_EXCEEDED'),
self::ChannelsManager_ChannelAlreadyExists => CApi::I18N('API/CHANNELSMANAGER_CHANNEL_ALREADY_EXISTS'),
self::ChannelsManager_ChannelCreateFailed => CApi::I18N('API/CHANNELSMANAGER_CHANNEL_CREATE_FAILED'),
self::ChannelsManager_ChannelUpdateFailed => CApi::I18N('API/CHANNELSMANAGER_CHANNEL_UPDATE_FAILED'),
self::ChannelsManager_ChannelDoesNotExist => CApi::I18N('API/CHANNELSMANAGER_CHANNEL_DOES_NOT_EXIST'),
self::MailSuiteManager_MailingListAlreadyExists => CApi::I18N('API/MAILSUITEMANAGER_MAILING_LIST_ALREADY_EXISTS'),
self::MailSuiteManager_MailingListCreateFailed => CApi::I18N('API/MAILSUITEMANAGER_MAILING_LIST_CREATE_FAILED'),
self::MailSuiteManager_MailingListUpdateFailed => CApi::I18N('API/MAILSUITEMANAGER_MAILING_LIST_UPDATE_FAILED'),
self::MailSuiteManager_MailingListInvalid => CApi::I18N('API/MAILSUITEMANAGER_MAILING_LIST_INVALID'),
self::WebMailManager_AccountDisabled => CApi::I18N('API/WEBMAILMANAGER_ACCOUNT_DISABLED'),
self::WebMailManager_AccountWebmailDisabled => CApi::I18N('API/WEBMAILMANAGER_ACCOUNT_WEBMAIL_DISABLED'),
self::WebMailManager_AccountCreateOnLogin => CApi::I18N('API/WEBMAILMANAGER_CREATE_ON_LOGIN'),
self::WebMailManager_AccountAuthentication => CApi::I18N('API/WEBMAILMANAGER_ACCOUNT_AUTHENTICATION'),
self::WebMailManager_DomainDoesNotExist => CApi::I18N('API/WEBMAILMANAGER_DOMAIN_DOES_NOT_EXIST'),
self::WebMailManager_AccountConnectToMailServerFailed => CApi::I18N('API/WEBMAILMANAGER_ACCOUNT_CONNECT_TO_MAIL_SERVER_FAILED'),
self::Validation_InvalidPort => CApi::I18N('API/VALIDATION_INVALID_PORT'),
self::Validation_InvalidEmail => CApi::I18N('API/VALIDATION_INVALID_EMAIL'),
self::Validation_FieldIsEmpty => CApi::I18N('API/VALIDATION_FIELD_IS_EMPTY'),
self::Validation_InvalidPort_OutInfo => CApi::I18N('API/VALIDATION_INVALID_PORT_OUTINFO'),
self::Validation_InvalidEmail_OutInfo => CApi::I18N('API/VALIDATION_INVALID_EMAIL_OUTINFO'),
self::Validation_FieldIsEmpty_OutInfo => CApi::I18N('API/VALIDATION_FIELD_IS_EMPTY_OUTINFO'),
self::Validation_InvalidParameters => CApi::I18N('API/VALIDATION_INVALID_PARAMETERS'),
self::Validation_InvalidTenantName => CApi::I18N('API/VALIDATION_INVALID_TENANT_NAME'),
self::Validation_InvalidChannelName => CApi::I18N('API/VALIDATION_INVALID_CHANNEL_NAME'),
self::Container_UndefinedProperty => CApi::I18N('API/CONTAINER_UNDEFINED_PROPERTY'),
self::Main_SettingLoadError => CApi::I18N('API/MAIN_SETTINGS_LOAD_ERROR'),
self::Main_UnknownError => CApi::I18N('API/MAIN_UNKNOWN_ERROR'),
self::Main_CustomError => CApi::I18N('API/MAIN_CUSTOM_ERROR'),
self::Db_ExceptionError => CApi::I18N('API/DB_EXCEPTION_ERROR'),
self::Db_PdoExceptionError => CApi::I18N('API/DB_PDO_EXCEPTION_ERROR'),
self::Mail_FolderNameContainDelimiter => CApi::I18N('API/MAIL_FOLDER_NAME_CONTAIN_DELIMITER'),
self::Mail_AccountAuthentication => CApi::I18N('API/MAIL_ACCOUNT_AUTHENTICATION'),
self::Mail_AccountConnectToMailServerFailed => CApi::I18N('API/MAIL_ACCOUNT_CONNECT_TO_MAIL_SERVER_FAILED'),
self::Mail_CannotRenameNonExistenFolder => CApi::I18N('API/MAIL_CANNOT_RENAME_NON_EXITEN_FOLDER'),
self::Mail_CannotSendMessage => CApi::I18N('API/MAIL_CANNOT_SEND_MESSAGE'),
self::Mail_MailboxUnavailable => CApi::I18N('API/MAIL_MAILBOX_UNAVAILABLE'),
self::Fetcher_ConnectToMailServerFailed => CApi::I18N('API/FETCHER_CONNECT_TO_MAIL_SERVER_FAILED'),
self::Fetcher_AuthError => CApi::I18N('API/FETCHER_AUTH_ERROR'),
self::Sabre_Exception => CApi::I18N('API/SABRE_EXCEPTION'),
self::Sabre_PreconditionFailed => CApi::I18N('API/SABRE_PRECONDITION_FAILED')
);
}
return isset($aMessages[$iCode])
? ((0 < count($aParams)) ? strtr($aMessages[$iCode], $aParams) : $aMessages[$iCode])
: CApi::I18N('API/UNKNOWN_ERROR');
}
}
/**
* Alias
*
* @package Api
*/
class Errs extends CApiErrorCodes {}
/**
* @package Api
*/
class CApiException extends Exception {}
/**
* @package Api
*/
class CApiInvalidArgumentException extends CApiException {}
/**
* @package Api
*/
class CApiDbException extends CApiException {}
/**
* @package Api
*/
class CApiBaseException extends CApiException
{
/**
* @var array
*/
protected $aObjectParams;
/**
* @var Exception
*/
protected $oPrevious;
/**
* @param int $iCode
* @param Exception $oPrevious = null
* @param array $aParams = array()
* @param array $aObjectParams = array()
*/
public function __construct($iCode, $oPrevious = null, $aParams = array(), $aObjectParams = array())
{
if (CApiErrorCodes::Validation_InvalidPort === $iCode)
{
CApi::Log('Exception error: '.CApiErrorCodes::GetMessageByCode($iCode, $aParams), ELogLevel::Error);
$iCode = CApiErrorCodes::Validation_InvalidPort_OutInfo;
}
else if (CApiErrorCodes::Validation_InvalidEmail === $iCode)
{
CApi::Log('Exception error: '.CApiErrorCodes::GetMessageByCode($iCode, $aParams), ELogLevel::Error);
$iCode = CApiErrorCodes::Validation_InvalidEmail_OutInfo;
}
else if (CApiErrorCodes::Validation_FieldIsEmpty === $iCode)
{
CApi::Log('Exception error: '.CApiErrorCodes::GetMessageByCode($iCode, $aParams), ELogLevel::Error);
$iCode = CApiErrorCodes::Validation_FieldIsEmpty_OutInfo;
}
$this->aObjectParams = $aObjectParams;
$this->oPrevious = $oPrevious ? $oPrevious : null;
if ($this->oPrevious)
{
CApi::Log('Previous Exception: '.$this->oPrevious->getMessage(), ELogLevel::Error);
}
parent::__construct(CApiErrorCodes::GetMessageByCode($iCode, $aParams), $iCode);
}
/**
* @return array
*/
public function GetObjectParams()
{
return $this->aObjectParams;
}
/**
* @return string
*/
public function GetPreviousMessage()
{
$sMessage = '';
if ($this->oPrevious instanceof \MailSo\Imap\Exceptions\NegativeResponseException)
{
$oResponse = /* @var $oResponse \MailSo\Imap\Response */ $this->oPrevious->GetLastResponse();
$sMessage = $oResponse instanceof \MailSo\Imap\Response ?
$oResponse->Tag.' '.$oResponse->StatusOrIndex.' '.$oResponse->HumanReadable : '';
}
else if ($this->oPrevious instanceof \MailSo\Smtp\Exceptions\NegativeResponseException)
{
$sMessage = $this->oPrevious->getMessage();
// $oSub = $this->oPrevious->getPrevious();
// $oSub = $oSub instanceof \MailSo\Smtp\Exceptions\NegativeResponseException ? $oSub : null;
//
// $sMessage = $oSub ? $oSub->getMessage() : $this->oPrevious->getMessage();
}
else if ($this->oPrevious instanceof \Exception)
{
$sMessage = $this->oPrevious->getMessage();
}
return $sMessage;
}
/**
* @return string
*/
public function GetPreviousException()
{
return $this->oPrevious;
}
}