1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
AbstractModeFilter.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Socialnetwork\Space\List\Query\Filter\Mode
;
4
5
use
Bitrix\Main\ORM\Query\Filter\ConditionTree
;
6
use
Bitrix\Main\ORM\Query\Query
;
7
use
Bitrix\Socialnetwork\Helper\User
;
8
use
Bitrix\Socialnetwork\Space\List\Query\Filter\FilterInterface
;
9
use
Bitrix\Socialnetwork\UserToGroupTable
;
10
11
abstract
class
AbstractModeFilter
implements
FilterInterface
12
{
13
protected
bool
$isSuperAdmin
;
14
15
public
function
__construct
(
protected
int
$userId
)
16
{
17
$currentUserId =
User::getCurrentUserId
();
18
19
$this->isSuperAdmin =
20
$currentUserId === $this->userId
21
&& \CSocNetUser::IsCurrentUserModuleAdmin()
22
;
23
}
24
25
abstract
public
function
apply
(
Query
$query
): void;
26
27
protected
function
getAllVisibleCondition
():
ConditionTree
28
{
29
$condition = Query::filter();
30
31
if
(!$this->isSuperAdmin)
32
{
33
$condition
34
->logic(ConditionTree::LOGIC_OR)
35
->where($this->
getParticipantCondition
())
36
->where($this->
getRequestCondition
())
37
->where(
'VISIBLE'
,
'Y'
)
38
;
39
}
40
41
return
$condition;
42
}
43
44
protected
function
getParticipantCondition
():
ConditionTree
45
{
46
return
47
Query::filter()
48
->
where
(
'MEMBER.USER_ID'
, $this->userId)
49
->where(
'MEMBER.ROLE'
,
'<='
,
UserToGroupTable::ROLE_USER
)
50
;
51
}
52
53
protected
function
getRequestCondition
():
ConditionTree
54
{
55
return
56
Query::filter()
57
->
where
(
'MEMBER.USER_ID'
, $this->userId)
58
->where(
'MEMBER.ROLE'
,
UserToGroupTable::ROLE_REQUEST
)
59
;
60
}
61
}
$userId
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения
check_mail.php:18
Bitrix\Main\ORM\Query\Filter\ConditionTree
Определения
conditiontree.php:29
Bitrix\Main\ORM\Query\Filter\ConditionTree\where
where(... $filter)
Определения
conditiontree.php:126
Bitrix\Socialnetwork\Helper\User
Определения
user.php:15
Bitrix\Socialnetwork\Helper\User\getCurrentUserId
static getCurrentUserId()
Определения
user.php:18
Bitrix\Socialnetwork\Space\List\Query\Filter\Mode\AbstractModeFilter
Определения
AbstractModeFilter.php:12
Bitrix\Socialnetwork\Space\List\Query\Filter\Mode\AbstractModeFilter\getRequestCondition
getRequestCondition()
Определения
AbstractModeFilter.php:53
Bitrix\Socialnetwork\Space\List\Query\Filter\Mode\AbstractModeFilter\__construct
__construct(protected int $userId)
Определения
AbstractModeFilter.php:15
Bitrix\Socialnetwork\Space\List\Query\Filter\Mode\AbstractModeFilter\getAllVisibleCondition
getAllVisibleCondition()
Определения
AbstractModeFilter.php:27
Bitrix\Socialnetwork\Space\List\Query\Filter\Mode\AbstractModeFilter\apply
apply(Query $query)
Bitrix\Socialnetwork\Space\List\Query\Filter\Mode\AbstractModeFilter\getParticipantCondition
getParticipantCondition()
Определения
AbstractModeFilter.php:44
Bitrix\Socialnetwork\Space\List\Query\Filter\Mode\AbstractModeFilter\$isSuperAdmin
bool $isSuperAdmin
Определения
AbstractModeFilter.php:13
Bitrix\Socialnetwork\UserToGroupTable
Определения
usertogroup.php:37
Bitrix\Socialnetwork\UserToGroupTable\ROLE_USER
const ROLE_USER
Определения
usertogroup.php:48
Bitrix\Socialnetwork\UserToGroupTable\ROLE_REQUEST
const ROLE_REQUEST
Определения
usertogroup.php:54
$query
$query
Определения
get_search.php:11
Bitrix\Socialnetwork\Space\List\Query\Filter\FilterInterface
Определения
FilterInterface.php:8
Bitrix\Main\ORM\Query
Определения
chain.php:3
Bitrix\Socialnetwork\Space\List\Query\Filter\Mode
Определения
AbstractModeFilter.php:3
bitrix
modules
socialnetwork
lib
Space
List
Query
Filter
Mode
AbstractModeFilter.php
Создано системой
1.14.0