%PDF- %PDF-
Direktori : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/common/managers/users/classes/ |
Current File : //www/varak.net/mail2.varak.net_old/libraries/afterlogic/common/managers/users/classes/user.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. */ /** * @property int $IdUser * @property int $IdSubscription * @property int $IdHelpdeskUser * @property int $MailsPerPage * @property int $ContactsPerPage * @property int $AutoCheckMailInterval * @property int $CreatedTime * @property int $LastLogin * @property int $LastLoginNow * @property int $LoginsCount * @property string $DefaultSkin * @property string $DefaultLanguage * @property int $DefaultEditor * @property int $SaveMail * @property int $Layout * @property string $DefaultIncomingCharset * @property int $DefaultTimeZone * @property int $DefaultTimeFormat * @property string $DefaultDateFormat * @property string $Question1 * @property string $Question2 * @property string $Answer1 * @property string $Answer2 * @property string $Capa * @property string $ClientTimeZone * @property bool $UseThreads * @property bool $SaveRepliedMessagesToCurrentFolder * @property bool $DesktopNotifications * @property bool $AllowChangeInputDirection * @property bool $EnableOpenPgp * @property bool $AllowAutosaveInDrafts * @property bool $AutosignOutgoingEmails * @property bool $AllowHelpdeskNotifications * @property mixed $CustomFields * @property bool $SipEnable * @property string $SipImpi * @property string $SipPassword * @property string $TwilioNumber * @property bool $TwilioEnable * @property bool $TwilioDefaultNumber * @property bool $FilesEnable * * @package Users * @subpackage Classes */ class CUser extends api_AContainer { /** * @var CSubscription */ private $oSubCache; /** * @return void */ public function __construct(CDomain $oDomain) { parent::__construct(get_class($this), 'IdUser'); $oSettings =& CApi::GetSettings(); $iSaveMail = $oSettings->GetConf('WebMail/SaveMail'); $iSaveMail = ESaveMail::Always !== $iSaveMail ? $oSettings->GetConf('WebMail/SaveMail') : ESaveMail::DefaultOn; $this->oSubCache = null; $this->__USE_TRIM_IN_STRINGS__ = true; $this->SetUpper(array('Capa')); $this->SetDefaults(array( 'IdUser' => 0, 'IdSubscription' => 0, 'IdHelpdeskUser' => 0, 'MailsPerPage' => $oDomain->MailsPerPage, 'ContactsPerPage' => $oDomain->ContactsPerPage, 'AutoCheckMailInterval' => $oDomain->AutoCheckMailInterval, 'CreatedTime' => 0, 'LastLogin' => 0, 'LastLoginNow' => 0, 'LoginsCount' => 0, 'DefaultSkin' => $oDomain->DefaultSkin, 'DefaultLanguage' => $oDomain->DefaultLanguage, 'DefaultEditor' => EUserHtmlEditor::Html, 'SaveMail' => $iSaveMail, 'Layout' => $oDomain->Layout, 'DefaultTimeZone' => 0, // $oDomain->DefaultTimeZone, // TODO 'DefaultTimeFormat' => $oDomain->DefaultTimeFormat, 'DefaultDateFormat' => $oDomain->DefaultDateFormat, 'DefaultIncomingCharset' => CApi::GetConf('webmail.default-inc-charset', 'iso-8859-1'), 'Question1' => '', 'Question2' => '', 'Answer1' => '', 'Answer2' => '', 'TwilioNumber' => '', 'TwilioEnable' => true, 'TwilioDefaultNumber' => false, 'SipEnable' => true, 'SipImpi' => '', 'SipPassword' => '', 'Capa' => '', 'ClientTimeZone' => '', 'UseThreads' => $oDomain->UseThreads, 'SaveRepliedMessagesToCurrentFolder' => false, 'DesktopNotifications' => false, 'AllowChangeInputDirection' => false, 'EnableOpenPgp' => false, 'AllowAutosaveInDrafts' => true, 'AutosignOutgoingEmails' => false, 'AllowHelpdeskNotifications' => false, 'CustomFields' => '', 'FilesEnable' => true )); CApi::Plugin()->RunHook('api-user-construct', array(&$this)); } /** * @todo * @param string $sCapaName * * @return bool */ public function GetCapa($sCapaName) { return true; // TODO if (!CApi::GetConf('capa', false) || '' === $this->Capa || 0 === $this->IdSubscription) { return true; } $sCapaName = preg_replace('/[^A-Z0-9_=]/', '', strtoupper($sCapaName)); $aCapa = explode(' ', $this->Capa); return in_array($sCapaName, $aCapa); } /** * @return void */ public function AllowAllCapas() { $this->Capa = ''; } /** * @return void */ public function RemoveAllCapas() { $this->Capa = ECapa::NO; } /** * @param CTenant $oTenant * @param string $sCapaName * @param bool $bValue * * @return bool */ public function SetCapa($oTenant, $sCapaName, $bValue) { if (!CApi::GetConf('capa', false) || !$oTenant) { return true; } // TODO subscriptions // $oSub = null; // if (0 < $this->IdSubscription) // { // if ($this->oSubCache && $this->IdSubscription === $this->oSubCache->IdSubscription) // { // $oSub = $this->oSubCache; // } // else // { // $oApiSubscriptionsManager = /* @var $oApiSubscriptionsManager CApiSubscriptionsManager */ CApi::Manager('subscriptions'); // if ($oApiSubscriptionsManager) // { // $oSub = $oApiSubscriptionsManager->GetSubscriptionById($this->IdSubscription); // $oSub = $oSub && $this->IdSubscription === $oSub->IdSubscription ? $oSub : null; // if ($oSub) // { // $this->oSubCache = $oSub; // } // } // } // } // // $sSubCapa = $oSub ? $oSub->Capa : $oTenant->Capa; // // $sCapaName = preg_replace('/[^A-Z0-9_]/', '', strtoupper($sCapaName)); // if ('' === $sSubCapa || false !== strpos($sSubCapa, $sCapaName)) // { // if ($bValue && '' === $this->Capa) // { // $this->Capa = ''; // } // else if ($bValue && 0 < strlen($this->Capa)) // { // $aCapa = explode(' ', $this->Capa); // $aCapa[] = $sCapaName; // $this->Capa = 0 < count($aCapa) ? implode(' ', $aCapa) : ECapa::NO; // } // else if (!$bValue && '' === $this->Capa) // { // $aCapa = array(); // if ('' === $sSubCapa) // { // $oApiTenantsManager = /* @var $oApiTenantsManager CApiTenantsManager */ CApi::Manager('tenants'); // if ($oApiTenantsManager) // { // $oTenant = $oApiTenantsManager->GetTenantById($oTenant->IdTenant); // if ($oTenant) // { // if ('' === $oTenant->Capa) // { // $oApiCapabilityManager = /* @var $oApiCapabilityManager CApiCapabilityManager */ CApi::Manager('capability'); // if ($oApiCapabilityManager) // { // $aCapa = explode(' ', $oApiCapabilityManager->GetSystemCapaAsString()); // } // } // else // { // $aCapa = explode(' ', $oTenant->Capa); // } // } // } // } // else // { // $aCapa = explode(' ', $sSubCapa); // } // // $aCapa = array_diff($aCapa, array($sCapaName)); // $this->Capa = 0 < count($aCapa) ? implode(' ', $aCapa) : ECapa::NO; // } // else if (!$bValue && 0 < strlen($this->Capa)) // { // $aCapa = explode(' ', $this->Capa); // $aCapa = array_diff($aCapa, array($sCapaName)); // $this->Capa = 0 < count($aCapa) ? implode(' ', $aCapa) : ECapa::NO; // } // } // else // { // return false; // } // // if ('' !== $this->Capa && ECapa::NO !== $this->Capa) // { // $aResult = array(); // $aCapa = explode(' ', $this->Capa); // foreach ($aCapa as $sItem) // { // if ('' === $sSubCapa || false !== strpos($sSubCapa, $sItem)) // { // $aResult[] = $sItem; // } // } // // $aResult = array_unique($aResult); // $aResult = array_values($aResult); // $this->Capa = 0 < count($aResult) ? implode(' ', $aResult) : ECapa::NO; // } return true; } /** * @return bool */ public function Validate() { switch (true) { case false: throw new CApiValidationException(Errs::Validation_FieldIsEmpty, null, array( '{{ClassName}}' => 'CUser', '{{ClassField}}' => 'Error')); } return true; } /** * @return array */ public function GetMap() { return self::GetStaticMap(); } /** * @return array */ public static function GetStaticMap() { return array( 'IdUser' => array('int', 'id_user'), 'IdSubscription' => array('int', 'id_subscription'), 'IdHelpdeskUser' => array('int', 'id_helpdesk_user'), 'MailsPerPage' => array('int', 'msgs_per_page'), 'ContactsPerPage' => array('int', 'contacts_per_page'), 'AutoCheckMailInterval' => array('int', 'auto_checkmail_interval'), 'CreatedTime' => array('datetime', 'created_time'), 'LastLogin' => array('datetime', 'last_login', true, false), 'LastLoginNow' => array('datetime', 'last_login_now', true, false), 'LoginsCount' => array('int', 'logins_count', true, false), 'DefaultSkin' => array('string(255)', 'def_skin'), 'DefaultLanguage' => array('string(255)', 'def_lang'), 'DefaultEditor' => array('int', 'def_editor'), 'SaveMail' => array('int', 'save_mail'), 'Layout' => array('int', 'layout'), 'DefaultIncomingCharset' => array('string(30)', 'incoming_charset'), 'DefaultTimeZone' => array('int', 'def_timezone'), 'DefaultTimeFormat' => array('int', 'def_time_fmt'), 'DefaultDateFormat' => array('string(100)', 'def_date_fmt'), 'ClientTimeZone' => array('string(100)', 'client_timezone'), 'Question1' => array('string(255)', 'question_1'), 'Question2' => array('string(255)', 'question_2'), 'Answer1' => array('string(255)', 'answer_1'), 'Answer2' => array('string(255)', 'answer_2'), 'SipEnable' => array('bool', 'sip_enable'), 'SipImpi' => array('string', 'sip_impi'), 'SipPassword' => array('password', 'sip_password'), 'TwilioNumber' => array('string', 'twilio_number'), 'TwilioEnable' => array('bool', 'twilio_enable'), 'TwilioDefaultNumber' => array('bool', 'twilio_default_number'), 'UseThreads' => array('bool', 'use_threads'), 'SaveRepliedMessagesToCurrentFolder' => array('bool', 'save_replied_messages_to_current_folder'), 'DesktopNotifications' => array('bool', 'desktop_notifications'), 'AllowChangeInputDirection' => array('bool', 'allow_change_input_direction'), 'AllowHelpdeskNotifications' => array('bool', 'allow_helpdesk_notifications'), 'EnableOpenPgp' => array('bool', 'enable_open_pgp'), 'AllowAutosaveInDrafts' => array('bool', 'allow_autosave_in_drafts'), 'AutosignOutgoingEmails' => array('bool', 'autosign_outgoing_emails'), 'Capa' => array('string(255)', 'capa'), 'CustomFields' => array('serialize', 'custom_fields'), 'FilesEnable' => array('bool', 'files_enable') ); } }