芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/cloud.pulsehost.co.uk/modules/MailWebclient/Module.php
subscribeEvent('Mail::UpdateSettings::after', array($this, 'onAfterUpdateSettings')); } /** * @return Module */ public static function getInstance() { return parent::getInstance(); } /** * @return Module */ public static function Decorator() { return parent::Decorator(); } /** * @return Settings */ public function getModuleSettings() { return $this->oModuleSettings; } public function GetSettings() { \Aurora\System\Api::checkUserRoleIsAtLeast(\Aurora\System\Enums\UserRole::Anonymous); $aSettings = array( 'AllowAppRegisterMailto' => $this->oModuleSettings->AllowAppRegisterMailto, 'AllowChangeInputDirection' => $this->oModuleSettings->AllowChangeInputDirection, 'FoldersExpandedByDefault' => $this->oModuleSettings->FoldersExpandedByDefault, 'AllowSpamFolder' => $this->oModuleSettings->AllowSpamFolder, 'AllowAddNewFolderOnMainScreen' => $this->oModuleSettings->AllowAddNewFolderOnMainScreen, 'ComposeToolbarOrder' => $this->oModuleSettings->ComposeToolbarOrder, 'DefaultFontName' => $this->oModuleSettings->DefaultFontName, 'DefaultFontSize' => $this->oModuleSettings->DefaultFontSize, 'AlwaysTryUseImageWhilePasting' => $this->oModuleSettings->AlwaysTryUseImageWhilePasting, 'AllowHorizontalLineButton' => $this->oModuleSettings->AllowHorizontalLineButton, 'AllowComposePlainText' => $this->oModuleSettings->AllowComposePlainText, 'AllowEditHtmlSource' => $this->oModuleSettings->AllowEditHtmlSource, 'JoinReplyPrefixes' => $this->oModuleSettings->JoinReplyPrefixes, 'MailsPerPage' => $this->oModuleSettings->MailsPerPage, 'AllowChangeStarredMessagesSource' => $this->oModuleSettings->AllowChangeStarredMessagesSource, 'MaxMessagesBodiesSizeToPrefetch' => $this->oModuleSettings->MaxMessagesBodiesSizeToPrefetch, 'MessageBodyTruncationThreshold' => $this->oModuleSettings->MessageBodyTruncationThreshold, // in bytes 'ShowEmailAsTabName' => $this->oModuleSettings->ShowEmailAsTabName, 'AllowOtherModulesToReplaceTabsbarHeader' => $this->oModuleSettings->AllowOtherModulesToReplaceTabsbarHeader, 'AllowShowMessagesCountInFolderList' => $this->oModuleSettings->AllowShowMessagesCountInFolderList, 'AllowSearchMessagesBySubject' => $this->oModuleSettings->AllowSearchMessagesBySubject, 'PrefixesToRemoveBeforeSearchMessagesBySubject' => $this->oModuleSettings->PrefixesToRemoveBeforeSearchMessagesBySubject, 'AllowHorizontalLayout' => $this->oModuleSettings->AllowHorizontalLayout, 'HorizontalLayoutByDefault' => $this->oModuleSettings->HorizontalLayoutByDefault, 'DisableRtlRendering' => $this->oModuleSettings->DisableRtlRendering, 'AllowQuickReply' => $this->oModuleSettings->AllowQuickReply, 'AllowQuickSendOnCompose' => $this->oModuleSettings->AllowQuickSendOnCompose, 'AllowUserGroupsInComposeAutocomplete' => $this->oModuleSettings->AllowUserGroupsInComposeAutocomplete, 'MarkMessageSeenWhenViewing' => $this->oModuleSettings->MarkMessageSeenWhenViewing, 'MarkMessageSeenWhenAnswerForward' => $this->oModuleSettings->MarkMessageSeenWhenAnswerForward, 'UserLoginPartInAccountDropdown' => $this->oModuleSettings->UserLoginPartInAccountDropdown, 'UseMeRecipientForMessages' => $this->oModuleSettings->UseMeRecipientForMessages, 'HorizontalLayout' => $this->oModuleSettings->HorizontalLayoutByDefault, 'ShowMessagesCountInFolderList' => $this->oModuleSettings->AllowShowMessagesCountInFolderList, 'TextEditorImageResizerOptions' => $this->oModuleSettings->TextEditorImageResizerOptions, ); $oUser = \Aurora\System\Api::getAuthenticatedUser(); if ($oUser && $oUser->isNormalOrTenant()) { if (null !== $oUser->getExtendedProp(self::GetName() . '::AllowChangeInputDirection')) { $aSettings['AllowChangeInputDirection'] = $oUser->getExtendedProp(self::GetName() . '::AllowChangeInputDirection'); } if (null !== $oUser->getExtendedProp(self::GetName() . '::MailsPerPage')) { $aSettings['MailsPerPage'] = $oUser->getExtendedProp(self::GetName() . '::MailsPerPage'); } if (null !== $oUser->getExtendedProp(self::GetName() . '::StarredMessagesSource')) { $aSettings['StarredMessagesSource'] = $oUser->getExtendedProp(self::GetName() . '::StarredMessagesSource'); } if (null !== $oUser->getExtendedProp(self::GetName() . '::ShowMessagesCountInFolderList')) { $aSettings['ShowMessagesCountInFolderList'] = $oUser->getExtendedProp(self::GetName() . '::ShowMessagesCountInFolderList'); } if ($this->oModuleSettings->AllowHorizontalLayout && null !== $oUser->getExtendedProp(self::GetName() . '::HorizontalLayout')) { $aSettings['HorizontalLayout'] = $oUser->getExtendedProp(self::GetName() . '::HorizontalLayout'); } } return $aSettings; } public function onAfterUpdateSettings($Args, &$Result) { \Aurora\System\Api::checkUserRoleIsAtLeast(\Aurora\System\Enums\UserRole::NormalUser); $oUser = \Aurora\System\Api::getAuthenticatedUser(); if ($oUser) { if ($oUser->isNormalOrTenant()) { $oCoreDecorator = \Aurora\Modules\Core\Module::Decorator(); if (isset($Args['MailsPerPage'])) { $oUser->setExtendedProp(self::GetName() . '::MailsPerPage', $Args['MailsPerPage']); } if (isset($Args['StarredMessagesSource'])) { $oUser->setExtendedProp(self::GetName() . '::StarredMessagesSource', $Args['StarredMessagesSource']); } if (isset($Args['AllowChangeInputDirection'])) { $oUser->setExtendedProp(self::GetName() . '::AllowChangeInputDirection', $Args['AllowChangeInputDirection']); } if (isset($Args['ShowMessagesCountInFolderList'])) { $oUser->setExtendedProp(self::GetName() . '::ShowMessagesCountInFolderList', $Args['ShowMessagesCountInFolderList']); } if ($this->oModuleSettings->AllowHorizontalLayout && isset($Args['HorizontalLayout'])) { $oUser->setExtendedProp(self::GetName() . '::HorizontalLayout', $Args['HorizontalLayout']); } return $oCoreDecorator->UpdateUserObject($oUser); } if ($oUser->Role === \Aurora\System\Enums\UserRole::SuperAdmin) { if (isset($Args['MailsPerPage'])) { $this->setConfig('MailsPerPage', $Args['MailsPerPage']); } if (isset($Args['AllowChangeInputDirection'])) { $this->setConfig('AllowChangeInputDirection', $Args['AllowChangeInputDirection']); } if ($this->oModuleSettings->AllowHorizontalLayout && isset($Args['HorizontalLayoutByDefault'])) { $this->setConfig('HorizontalLayoutByDefault', $Args['HorizontalLayoutByDefault']); } return $this->saveModuleConfig(); } } } }