1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
password.php
См. документацию.
1<?php
2
3namespace Bitrix\Rest\APAuth;
4
5use Bitrix\Main;
6use Bitrix\Main\Localization\Loc;
7use Bitrix\Main\ORM\Data\Internal\DeleteByFilterTrait;
8use Bitrix\Main\ORM\Fields\EnumField;
9use Bitrix\Main\Security\Random;
10use Bitrix\Main\ORM;
11use Bitrix\Rest\Preset\EventController;
12use Bitrix\Rest\Enum;
13use Bitrix\Rest\Service\ServiceContainer;
14
15Loc::loadMessages(__FILE__);
16
49{
50 use DeleteByFilterTrait;
51
52 const ACTIVE = 'Y';
53 const INACTIVE = 'N';
54
55 const DEFAULT_LENGTH = 16;
56
62 public static function getTableName()
63 {
64 return 'b_rest_ap';
65 }
66
72 public static function getMap()
73 {
74 return array(
75 'ID' => array(
76 'data_type' => 'integer',
77 'primary' => true,
78 'autocomplete' => true,
79 ),
80 'USER_ID' => array(
81 'data_type' => 'integer',
82 'required' => true,
83 ),
84 'PASSWORD' => array(
85 'data_type' => 'string',
86 'required' => true,
87 ),
88 'ACTIVE' => array(
89 'data_type' => 'boolean',
90 'values' => array(static::INACTIVE, static::ACTIVE),
91 ),
92 (new EnumField('TYPE'))
93 ->configureTitle('Type')
94 ->configureValues(Enum\APAuth\PasswordType::getValues())
95 ->configureDefaultValue(Enum\APAuth\PasswordType::User->value),
96 'TITLE' => array(
97 'data_type' => 'string',
98 ),
99 'COMMENT' => array(
100 'data_type' => 'string',
101 ),
102 'DATE_CREATE' => array(
103 'data_type' => 'datetime',
104 ),
105 'DATE_LOGIN' => array(
106 'data_type' => 'datetime',
107 ),
108 'LAST_IP' => array(
109 'data_type' => 'string',
110 ),
111 );
112 }
113
114 public static function generatePassword($length = self::DEFAULT_LENGTH)
115 {
116 return Random::getString($length);
117 }
118
119
128 public static function createPassword($userId, array $scopeList, $siteTitle, $returnArray = false)
129 {
130 $password = static::generatePassword();
131 $passwordData = [
132 'USER_ID' => $userId,
133 'PASSWORD' => $password,
134 'DATE_CREATE' => new Main\Type\DateTime(),
135 'TITLE' => Loc::getMessage('REST_APP_SYSCOMMENT', array(
136 '#TITLE#' => $siteTitle,
137 )),
138 'COMMENT' => Loc::getMessage('REST_APP_COMMENT'),
139 ];
140 $res = static::add($passwordData);
141
142 if($res->isSuccess())
143 {
144 $scopeList = array_unique($scopeList);
145 foreach($scopeList as $scope)
146 {
148 'PASSWORD_ID' => $res->getId(),
149 'PERM' => $scope,
150 ));
151 }
152
153 $passwordData['ID'] = $res->getId();
154 if(!$returnArray)
155 {
156 $return = $password;
157 }
158 else
159 {
160 $return = $passwordData;
161 }
162
163 return $return;
164 }
165
166 return false;
167 }
168
169 public static function onAfterAdd(Main\Entity\Event $event)
170 {
171 EventController::onAfterAddAp($event);
172 }
173
174 public static function onAfterDelete(ORM\Event $event)
175 {
176 self::clearServiceCache((int)$event->getParameter('id'));
177 }
178
179 public static function onAfterUpdate(ORM\Event $event)
180 {
181 self::clearServiceCache((int)$event->getParameter('id'));
182 }
183
184 private static function clearServiceCache(int $id): void
185 {
187 ->getAPAuthPasswordService()
188 ->clearCacheById($id)
189 ;
190 }
191}
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
Определения event.php:5
static add(array $data)
Определения datamanager.php:877
static generatePassword($length=self::DEFAULT_LENGTH)
Определения password.php:114
static getMap()
Определения password.php:72
static createPassword($userId, array $scopeList, $siteTitle, $returnArray=false)
Определения password.php:128
const DEFAULT_LENGTH
Определения password.php:55
static onAfterDelete(ORM\Event $event)
Определения password.php:174
static onAfterUpdate(ORM\Event $event)
Определения password.php:179
static onAfterAdd(Main\Entity\Event $event)
Определения password.php:169
static getTableName()
Определения password.php:62
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
Определения ufield.php:9
$password
Определения mysql_to_pgsql.php:34
$event
Определения prolog_after.php:141