Bitrix-D7 22.6
 
Загрузка...
Поиск...
Не найдено
highloadblockrightstable.php
1<?php
3
5
22class HighloadBlockRightsTable extends Entity\DataManager
23{
28 public static function getTableName()
29 {
30 return 'b_hlblock_entity_rights';
31 }
32
37 public static function getMap()
38 {
39 return array(
40 'ID' => new Entity\IntegerField('ID', array(
41 'primary' => true
42 )),
43 'HL_ID' => new Entity\IntegerField('HL_ID', array(
44 'required' => true,
45 )),
46 'TASK_ID' => new Entity\IntegerField('TASK_ID', array(
47 'required' => true,
48 )),
49 'ACCESS_CODE' => new Entity\StringField('ACCESS_CODE', array(
50 'required' => true,
51 'validation' => array(__CLASS__, 'validateAccessCode'),
52 )),
53 'USER_ACCESS' => new Entity\ReferenceField(
54 'USER_ACCESS',
55 '\Bitrix\Main\UserAccessTable',
56 array('=this.ACCESS_CODE' => 'ref.ACCESS_CODE')
57 ),
58 'TASK_OPERATION' => new Entity\ReferenceField(
59 'TASK_OPERATION',
60 '\Bitrix\Main\TaskOperationTable',
61 array('=this.TASK_ID' => 'ref.TASK_ID')
62 ),
63 );
64 }
65
71 public static function validateAccessCode()
72 {
73 return array(
74 new Entity\Validator\Length(null, 50),
75 );
76 }
77
83 public static function getOperationsName($hlId)
84 {
85 $operations = array();
86 $uid = $GLOBALS['USER']->getId();//@fixme
87
88 $res = \Bitrix\HighloadBlock\HighloadBlockRightsTable::getList(array(
89 'select' => array(
90 'HL_ID',
91 'OPNAME' => 'TASK_OPERATION.OPERATION.NAME'
92 ),
93 'filter' => array(
94 'HL_ID' => $hlId,
95 'USER_ACCESS.USER_ID' => $uid,
96 '!TASK_OPERATION.OPERATION.NAME' => false
97 )
98 ));
99 while ($row = $res->fetch())
100 {
101 if (!isset($operations[$row['HL_ID']]))
102 {
103 $operations[$row['HL_ID']] = array();
104 }
105 $operations[$row['HL_ID']][] = $row['OPNAME'];
106 }
107
108 return is_array($hlId) ? $operations : $operations[$hlId];
109 }
110}