1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
MembersManager.php
См. документацию.
1<?php
2
3namespace Bitrix\Socialnetwork\Space;
4
5use Bitrix\Socialnetwork\Helper;
6use Bitrix\Socialnetwork\Internals\Member\MemberEntityCollection;
7use Bitrix\Socialnetwork\MemberToGroupTable;
8
9final class MembersManager
10{
15 public function updateInvitedUsers(int $spaceId, array $usersIds): void
16 {
17 $groupInviteCollection = $this->getGroupMembersCollection($spaceId);
18 $invitedUsers = [];
19 foreach ($groupInviteCollection as $member)
20 {
21 if ($member->isInvited())
22 {
23 $invitedUsers[] = $member->getUserId();
24 }
25 }
26
27 $inviteUsers = array_diff($usersIds, $invitedUsers);
28 $rejectInviteUsers = array_diff($invitedUsers, $usersIds);
29
30 $userId = Helper\User::getCurrentUserId();
31 $isAdmin = Helper\Workgroup::isCurrentUserModuleAdmin();
32
33 foreach ($inviteUsers as $inviteUserId)
34 {
35 $canInviteUser = \CSocNetUserPerms::CanPerformOperation($userId, $inviteUserId, 'invitegroup', $isAdmin);
36
37 if ($canInviteUser)
38 {
39 \CSocNetUserToGroup::SendRequestToJoinGroup(
40 $userId,
41 $inviteUserId,
42 $spaceId,
43 '',
44 );
45 }
46 }
47
48 foreach ($rejectInviteUsers as $rejectInviteUserId)
49 {
50 $userToGroup = [
51 'userId' => $rejectInviteUserId,
52 'groupId' => $spaceId,
53 ];
54
55 if (Helper\Workgroup\Access::canDeleteOutgoingRequest($userToGroup))
56 {
57 Helper\Workgroup::deleteOutgoingRequest($userToGroup);
58 }
59 }
60 }
61
62 public function getGroupMembersList(int $spaceId): array
63 {
64 $groupMembersList = [];
65
66 $groupInviteCollection = $this->getGroupMembersCollection($spaceId);
67 foreach ($groupInviteCollection as $member)
68 {
69 $groupMembersList[] = [
70 'id' => $member->getUserId(),
71 'invited' => $member->isInvited(),
72 'isAwaiting' => $member->isAwaiting(),
73 'isMember' => $member->isMember(),
74 ];
75 }
76
77 return $groupMembersList;
78 }
79
81 {
82 return MemberToGroupTable::query()
83 ->setSelect(['USER_ID', 'ROLE', 'INITIATED_BY_TYPE'])
84 ->where('GROUP_ID', $spaceId)
85 ->exec()->fetchCollection();
86 }
87
88 public function canInviteUsers(int $spaceId): bool
89 {
90 $groupPermissions = Helper\Workgroup::getPermissions([
91 'groupId' => $spaceId,
92 ]);
93
94 return $groupPermissions['UserCanInitiate']
95 || $groupPermissions['UserCanModifyGroup']
96 || Helper\Workgroup::isCurrentUserModuleAdmin();
97 }
98
99 public function isUserMember(int $userId, int $spaceId): bool
100 {
101 $groupPermissions = Helper\Workgroup::getPermissions([
102 'userId' => $userId,
103 'groupId' => $spaceId,
104 ]);
105
106 return (bool) $groupPermissions['UserIsMember'];
107 }
108}
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
updateInvitedUsers(int $spaceId, array $usersIds)
Определения MembersManager.php:15
getGroupMembersList(int $spaceId)
Определения MembersManager.php:62
getGroupMembersCollection(int $spaceId)
Определения MembersManager.php:80
isUserMember(int $userId, int $spaceId)
Определения MembersManager.php:99
static CanPerformOperation($fromUserID, $toUserID, $operation, $bCurrentUserIsAdmin=false)
Определения user_perms.php:231
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804