%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 18.191.237.176
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/blog/lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/blog/lib/postsocnetrights.php
<?php
/**
 * Bitrix Framework
 * @package bitrix
 * @subpackage blog
 * @copyright 2001-2018 Bitrix
 */
namespace Bitrix\Blog;

use Bitrix\Main\Application;
use Bitrix\Main\DB\SqlException;
use Bitrix\Main\Entity;
use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc;
use Bitrix\Socialnetwork\LogRightTable;
use Bitrix\Socialnetwork\LogTable;

Loc::loadMessages(__FILE__);

/**
 * Class PostSocnetRightsTable
 *
 * DO NOT WRITE ANYTHING BELOW THIS
 *
 * <<< ORMENTITYANNOTATION
 * @method static EO_PostSocnetRights_Query query()
 * @method static EO_PostSocnetRights_Result getByPrimary($primary, array $parameters = array())
 * @method static EO_PostSocnetRights_Result getById($id)
 * @method static EO_PostSocnetRights_Result getList(array $parameters = array())
 * @method static EO_PostSocnetRights_Entity getEntity()
 * @method static \Bitrix\Blog\EO_PostSocnetRights createObject($setDefaultValues = true)
 * @method static \Bitrix\Blog\EO_PostSocnetRights_Collection createCollection()
 * @method static \Bitrix\Blog\EO_PostSocnetRights wakeUpObject($row)
 * @method static \Bitrix\Blog\EO_PostSocnetRights_Collection wakeUpCollection($rows)
 */
class PostSocnetRightsTable extends Entity\DataManager
{
	public static function getTableName()
	{
		return 'b_blog_socnet_rights';
	}

	public static function getMap()
	{
		$fieldsMap = array(
			'ID' => array(
				'data_type' => 'integer',
				'primary' => true,
				'autocomplete' => true,
			),
			'POST_ID' => array(
				'data_type' => 'integer',
			),
			'POST' => array(
				'data_type' => '\Bitrix\Blog\Post',
				'reference' => array('=this.POST_ID' => 'ref.ID')
			),
			'ENTITY_TYPE' => array(
				'data_type' => 'string'
			),
			'ENTITY_ID' => array(
				'data_type' => 'integer',
			),
			'ENTITY' => array(
				'data_type' => 'string'
			),
		);

		return $fieldsMap;
	}

	public static function recalcGroupPostRights($params = array())
	{
		if (!is_array($params))
		{
			return false;
		}

		$groupId = (isset($params['groupId']) ? intval($params['groupId']) : 0);
		$newRole = (isset($params['role']) ? $params['role'] : false);

		$application = \Bitrix\Main\Application::getInstance();
		$connection = $application->getConnection();

		if (
			$groupId <= 0
			|| empty($newRole)
		)
		{
			return false;
		}

		if (!Loader::includeModule('socialnetwork'))
		{
			return false;
		}

		$queryRes = true;

		$prevValue = \Bitrix\Blog\Item\PostSocnetRights::get($groupId);
		if ($prevValue != $newRole)
		{
			$sql = "DELETE FROM ".self::getTableName()." WHERE ENTITY_TYPE = 'SG' AND ENTITY_ID = ".$groupId;
			try
			{
				$connection->query($sql);
			}
			catch (SqlException $e)
			{
				$queryRes = false;
			}

			if ($queryRes)
			{
				$rightsList = \CBlogPost::getFullGroupRoleSet($newRole, "SG".$groupId."_");
				$rightsList[] = 'SG'.$groupId;
				$rightsList = array_unique($rightsList);

				foreach($rightsList as $right)
				{
					if (!$queryRes)
					{
						break;
					}

					$sql = "INSERT INTO ".self::getTableName()." (POST_ID, ENTITY_TYPE, ENTITY_ID, ENTITY) ".
						"SELECT SL.SOURCE_ID, 'SG', ".$groupId.", '".$right."' ".
						"FROM ".LogTable::getTableName()." SL ".
						"INNER JOIN ".LogRightTable::getTableName()." SLR ON SLR.LOG_ID = SL.ID AND SLR.GROUP_CODE = 'SG".$groupId."' ".
						"WHERE SL.EVENT_ID IN ('".implode("', '", \Bitrix\Blog\Integration\Socialnetwork\Log::getEventIdList())."')";

					try
					{
						$connection->query($sql);
					}
					catch (SqlException $e)
					{
						$queryRes = false;
					}
				}

				if ($queryRes)
				{
					$sql = "DELETE ".LogRightTable::getTableName()." ".
						"FROM ".LogRightTable::getTableName()." ".
						"INNER JOIN ".LogTable::getTableName()." ON ".LogTable::getTableName().".ID = ".LogRightTable::getTableName().".LOG_ID AND ".LogTable::getTableName().".EVENT_ID IN ('".implode("', '", \Bitrix\Blog\Integration\Socialnetwork\Log::getEventIdList())."') ".
						"WHERE GROUP_CODE LIKE 'SG".$groupId."%'";

					try
					{
						$connection->query($sql);
					}
					catch (SqlException $e)
					{
						$queryRes = false;
					}
				}

				if ($queryRes)
				{
					$sql = "DELETE ".LogRightTable::getTableName()." ".
						"FROM ".LogRightTable::getTableName()." ".
						"INNER JOIN ".LogTable::getTableName()." ON ".LogTable::getTableName().".ID = ".LogRightTable::getTableName().".LOG_ID AND ".LogTable::getTableName().".EVENT_ID IN ('".implode("', '", \Bitrix\Blog\Integration\Socialnetwork\Log::getEventIdList())."') ".
						"WHERE GROUP_CODE LIKE 'OSG".$groupId."%'";

					try
					{
						$connection->query($sql);
					}
					catch (SqlException $e)
					{
						$queryRes = false;
					}
				}

				if ($queryRes)
				{
					$sql = "INSERT INTO ".LogRightTable::getTableName()." (LOG_ID, GROUP_CODE, LOG_UPDATE) ".
						"SELECT SL.ID, BSR.ENTITY, SL.LOG_UPDATE ".
						"FROM ".LogTable::getTableName()." SL ".
						"INNER JOIN ".self::getTableName()." BSR ON BSR.POST_ID = SL.SOURCE_ID AND (BSR.ENTITY LIKE 'SG".$groupId."%' OR BSR.ENTITY LIKE 'OSG".$groupId."%') ".
						"WHERE SL.EVENT_ID IN ('".implode("', '", \Bitrix\Blog\Integration\Socialnetwork\Log::getEventIdList())."')";

					try
					{
						$connection->query($sql);
					}
					catch (SqlException $e)
					{
						$queryRes = false;
					}
				}

				BXClearCache(true, "/blog/getsocnetperms");
			}
		}

		return $queryRes;
	}

	public static function deleteByEntity($value = '')
	{
		if ($value == '')
		{
			return false;
		}

		$connection = Application::getConnection();
		$helper = $connection->getSqlHelper();

		$tableName = self::getTableName();
		$connection->queryExecute("DELETE FROM {$tableName} WHERE `ENTITY` = '".$helper->forSql($value)."'");

		return true;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit