26 return Option::get(
'socialnetwork',
'group_access_rules_enabled',
'Y') ===
'Y';
29 return Option::get(
'socialnetwork',
'group_access_rules_enabled_rule_'. $rule,
'Y') ===
'Y';
37 if (static::isRuleEnabled(GroupDictionary::CREATE))
39 return GroupAccessController::getInstance(
$userId)
40 ->check(GroupDictionary::CREATE, GroupModel::createFromArray([
'siteIds' => [
$siteId]]));
43 $checkAdminSession = (bool)(
$params[
'checkAdminSession'] ??
true);
46 \CSocNetUser::isCurrentUserModuleAdmin(
SITE_ID, $checkAdminSession)
47 || (\CMain::getGroupRight(
'socialnetwork',
false,
'Y',
'Y', [
$siteId,
false ]) >=
'K')
53 $groupId = (int)(
$params[
'groupId'] ?? 0);
56 if (static::isRuleEnabled(GroupDictionary::VIEW))
58 return GroupAccessController::can($currentUserId, GroupDictionary::VIEW, $groupId);
66 if ($currentUserId <= 0)
71 $checkAdminSession = (bool)(
$params[
'checkAdminSession'] ??
true);
73 $group = WorkgroupTable::getList([
77 'select' => [
'ID',
'CLOSED',
'PROJECT',
'SCRUM_MASTER_ID',
'VISIBLE' ],
84 $currentUserRelation = UserToGroupTable::getList([
86 '=GROUP_ID' => $groupId,
87 '=USER_ID' => $currentUserId,
89 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
98 'checkAdminSession' => $checkAdminSession,
102 return $accessManager->canView();
107 $groupId = (int)(
$params[
'groupId'] ?? 0);
110 if (static::isRuleEnabled(GroupDictionary::UPDATE))
112 return GroupAccessController::can($currentUserId, GroupDictionary::UPDATE, $groupId);
115 $checkAdminSession = (bool)(
$params[
'checkAdminSession'] ??
true);
122 if ($currentUserId <= 0)
127 $group = WorkgroupTable::getList([
131 'select' => [
'ID',
'CLOSED',
'PROJECT',
'SCRUM_MASTER_ID' ],
138 $currentUserRelation = UserToGroupTable::getList([
140 '=GROUP_ID' => $groupId,
141 '=USER_ID' => $currentUserId,
143 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
148 $currentUserRelation,
149 $currentUserRelation,
152 'checkAdminSession' => $checkAdminSession,
156 return $accessManager->canModify();
161 return static::canModify(
$params);
166 return static::canModify(
$params);
171 $groupId = (int)(
$params[
'groupId'] ?? 0);
175 if (static::isRuleEnabled(GroupDictionary::SET_OWNER))
177 return GroupAccessController::can(
179 GroupDictionary::SET_OWNER,
188 || $currentUserId <= 0
194 $group = WorkgroupTable::getList([
198 'select' => [
'ID',
'CLOSED',
'PROJECT',
'SCRUM_MASTER_ID' ],
205 $targetUserRelation = UserToGroupTable::getList([
207 '=GROUP_ID' => $groupId,
210 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
213 $currentUserRelation = UserToGroupTable::getList([
215 '=GROUP_ID' => $groupId,
216 '=USER_ID' => $currentUserId,
218 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
227 return $accessManager->canSetOwner();
232 $groupId = (int)(
$params[
'groupId'] ?? 0);
236 if (static::isRuleEnabled(GroupDictionary::SET_SCRUM_MASTER))
238 return GroupAccessController::can(
240 GroupDictionary::SET_SCRUM_MASTER,
249 || $currentUserId <= 0
255 $group = WorkgroupTable::getList([
259 'select' => [
'ID',
'CLOSED',
'PROJECT',
'SCRUM_MASTER_ID' ],
266 $targetUserRelation = UserToGroupTable::getList([
268 '=GROUP_ID' => $groupId,
271 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
274 $currentUserRelation = UserToGroupTable::getList([
276 '=GROUP_ID' => $groupId,
277 '=USER_ID' => $currentUserId,
279 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
288 return $accessManager->canSetScrumMaster();
293 $groupId = (int)(
$params[
'groupId'] ?? 0);
297 if (static::isRuleEnabled(GroupDictionary::DELETE_OUTGOING_REQUEST))
299 return GroupAccessController::can(
301 GroupDictionary::DELETE_OUTGOING_REQUEST,
310 || $currentUserId <= 0
316 $group = WorkgroupTable::getList([
320 'select' => [
'ID',
'CLOSED',
'PROJECT',
'SCRUM_MASTER_ID',
'INITIATE_PERMS' ],
327 $targetUserRelation = UserToGroupTable::getList([
329 '=GROUP_ID' => $groupId,
332 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID',
'INITIATED_BY_TYPE',
'INITIATED_BY_USER_ID' ],
335 $currentUserRelation = UserToGroupTable::getList([
337 '=GROUP_ID' => $groupId,
338 '=USER_ID' => $currentUserId,
340 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
349 return $accessManager->canDeleteOutgoingRequest();
354 $groupId = (int)(
$params[
'groupId'] ?? 0);
358 if (static::isRuleEnabled(GroupDictionary::DELETE_INCOMING_REQUEST))
360 return GroupAccessController::can(
362 GroupDictionary::DELETE_INCOMING_REQUEST,
371 || $currentUserId <= 0
377 $group = WorkgroupTable::getList([
381 'select' => [
'ID',
'CLOSED',
'PROJECT',
'SCRUM_MASTER_ID' ],
388 $targetUserRelation = UserToGroupTable::getList([
390 '=GROUP_ID' => $groupId,
393 'select' => [
'ID',
'ROLE',
'GROUP_ID',
'INITIATED_BY_TYPE',
'INITIATED_BY_USER_ID' ],
396 $currentUserRelation = UserToGroupTable::getList([
398 '=GROUP_ID' => $groupId,
399 '=USER_ID' => $currentUserId,
401 'select' => [
'ID',
'GROUP_ID' ],
410 return $accessManager->canDeleteIncomingRequest();
415 $groupId = (int)(
$params[
'groupId'] ?? 0);
419 if (static::isRuleEnabled(GroupDictionary::PROCESS_INCOMING_REQUEST))
421 return GroupAccessController::can(
423 GroupDictionary::PROCESS_INCOMING_REQUEST,
432 || $currentUserId <= 0
438 $group = WorkgroupTable::getList([
442 'select' => [
'ID',
'CLOSED',
'PROJECT',
'SCRUM_MASTER_ID',
'INITIATE_PERMS' ],
449 $targetUserRelation = UserToGroupTable::getList([
451 '=GROUP_ID' => $groupId,
454 'select' => [
'ID',
'ROLE',
'GROUP_ID',
'INITIATED_BY_TYPE' ],
457 $currentUserRelation = UserToGroupTable::getList([
459 '=GROUP_ID' => $groupId,
460 '=USER_ID' => $currentUserId,
462 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
471 return $accessManager->canProcessIncomingRequest();
476 $groupId = (int)(
$params[
'groupId'] ?? 0);
480 if (static::isRuleEnabled(GroupDictionary::EXCLUDE))
482 return GroupAccessController::can(
484 GroupDictionary::EXCLUDE,
490 $group = WorkgroupTable::getList([
494 'select' => [
'ID',
'CLOSED',
'PROJECT',
'SCRUM_MASTER_ID',
'INITIATE_PERMS' ],
501 $targetUserRelation = UserToGroupTable::getList([
503 '=GROUP_ID' => $groupId,
506 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID',
'AUTO_MEMBER' ],
509 $currentUserRelation = UserToGroupTable::getList([
511 '=GROUP_ID' => $groupId,
512 '=USER_ID' => $currentUserId,
514 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
523 return $accessManager->canExclude();
528 $groupId = (int)(
$params[
'groupId'] ?? 0);
531 if (static::isRuleEnabled(GroupDictionary::JOIN))
533 return GroupAccessController::can(
$userId, GroupDictionary::JOIN, $groupId);
544 $group = WorkgroupTable::getList([
548 'select' => [
'ID',
'CLOSED',
'VISIBLE' ],
555 $currentUserRelation = UserToGroupTable::getList([
557 '=GROUP_ID' => $groupId,
560 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID',
'INITIATED_BY_TYPE' ],
569 return $accessManager->canJoin();
574 $groupId = (int)(
$params[
'groupId'] ?? 0);
577 if (static::isRuleEnabled(GroupDictionary::LEAVE))
579 return GroupAccessController::can(
$userId, GroupDictionary::LEAVE, $groupId);
590 $group = WorkgroupTable::getList([
594 'select' => [
'ID',
'PROJECT',
'SCRUM_MASTER_ID' ],
601 $currentUserRelation = UserToGroupTable::getList([
603 '=GROUP_ID' => $groupId,
606 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID',
'AUTO_MEMBER' ],
615 return $accessManager->canLeave();
620 $groupId = (int)(
$params[
'groupId'] ?? 0);
624 if (static::isRuleEnabled(GroupDictionary::SET_MODERATOR))
626 return GroupAccessController::can(
628 GroupDictionary::SET_MODERATOR,
637 || $currentUserId <= 0
643 $group = WorkgroupTable::getList([
647 'select' => [
'ID',
'CLOSED',
'PROJECT',
'SCRUM_MASTER_ID' ],
654 $targetUserRelation = UserToGroupTable::getList([
656 '=GROUP_ID' => $groupId,
659 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
662 $currentUserRelation = UserToGroupTable::getList([
664 '=GROUP_ID' => $groupId,
665 '=USER_ID' => $currentUserId,
667 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
676 return $accessManager->canSetModerator();
681 $groupId = (int)(
$params[
'groupId'] ?? 0);
685 if (static::isRuleEnabled(GroupDictionary::REMOVE_MODERATOR))
687 return GroupAccessController::can(
689 GroupDictionary::REMOVE_MODERATOR,
698 || $currentUserId <= 0
704 $group = WorkgroupTable::getList([
708 'select' => [
'ID',
'CLOSED',
'PROJECT',
'SCRUM_MASTER_ID' ],
715 $targetUserRelation = UserToGroupTable::getList([
717 '=GROUP_ID' => $groupId,
720 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
723 $currentUserRelation = UserToGroupTable::getList([
725 '=GROUP_ID' => $groupId,
726 '=USER_ID' => $currentUserId,
728 'select' => [
'ID',
'ROLE',
'USER_ID',
'GROUP_ID' ],
737 return $accessManager->canRemoveModerator();
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static getCurrentUserId()
static canSetModerator(array $params=[])
static canView(array $params=[])
static canCreate(array $params=[])
static canJoin(array $params=[])
static canRemoveModerator(array $params=[])
static canSetOwner(array $params=[])
static canUpdate(array $params=[])
static canDeleteIncomingRequest(array $params=[])
static isRuleEnabled(string $rule='')
static canSetScrumMaster(array $params=[])
static canDelete(array $params=[])
static canModify(array $params=[])
static canExclude(array $params=[])
static canDeleteOutgoingRequest(array $params=[])
static canLeave(array $params=[])
static canProcessIncomingRequest(array $params=[])
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']