%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.136.20.252 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/rest/lib/apauth/ |
Upload File : |
<?php namespace Bitrix\Rest\APAuth; use Bitrix\Main; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Security\Random; use Bitrix\Rest\Preset\EventController; Loc::loadMessages(__FILE__); /** * Class ApTable * * Fields: * <ul> * <li> ID int mandatory * <li> USER_ID int mandatory * <li> AP string(50) mandatory * <li> ACTIVE bool optional default 'Y' * <li> TITLE string(255) optional * <li> COMMENT string(255) optional * <li> DATE_CREATE datetime optional * <li> DATE_LOGIN datetime optional * <li> LAST_IP string(255) optional * </ul> * * @package Bitrix\Rest * * DO NOT WRITE ANYTHING BELOW THIS * * <<< ORMENTITYANNOTATION * @method static EO_Password_Query query() * @method static EO_Password_Result getByPrimary($primary, array $parameters = array()) * @method static EO_Password_Result getById($id) * @method static EO_Password_Result getList(array $parameters = array()) * @method static EO_Password_Entity getEntity() * @method static \Bitrix\Rest\APAuth\EO_Password createObject($setDefaultValues = true) * @method static \Bitrix\Rest\APAuth\EO_Password_Collection createCollection() * @method static \Bitrix\Rest\APAuth\EO_Password wakeUpObject($row) * @method static \Bitrix\Rest\APAuth\EO_Password_Collection wakeUpCollection($rows) */ class PasswordTable extends Main\Entity\DataManager { const ACTIVE = 'Y'; const INACTIVE = 'N'; const DEFAULT_LENGTH = 16; /** * Returns DB table name for entity. * * @return string */ public static function getTableName() { return 'b_rest_ap'; } /** * Returns entity map definition. * * @return array */ public static function getMap() { return array( 'ID' => array( 'data_type' => 'integer', 'primary' => true, 'autocomplete' => true, ), 'USER_ID' => array( 'data_type' => 'integer', 'required' => true, ), 'PASSWORD' => array( 'data_type' => 'string', 'required' => true, ), 'ACTIVE' => array( 'data_type' => 'boolean', 'values' => array(static::INACTIVE, static::ACTIVE), ), 'TITLE' => array( 'data_type' => 'string', ), 'COMMENT' => array( 'data_type' => 'string', ), 'DATE_CREATE' => array( 'data_type' => 'datetime', ), 'DATE_LOGIN' => array( 'data_type' => 'datetime', ), 'LAST_IP' => array( 'data_type' => 'string', ), ); } public static function generatePassword($length = self::DEFAULT_LENGTH) { return Random::getString($length); } /** * Generates AP for REST access. * * @param string $siteTitle Site title for AP description. * * @return bool|string password or false * @throws \Exception */ public static function createPassword($userId, array $scopeList, $siteTitle, $returnArray = false) { $password = static::generatePassword(); $passwordData = [ 'USER_ID' => $userId, 'PASSWORD' => $password, 'DATE_CREATE' => new Main\Type\DateTime(), 'TITLE' => Loc::getMessage('REST_APP_SYSCOMMENT', array( '#TITLE#' => $siteTitle, )), 'COMMENT' => Loc::getMessage('REST_APP_COMMENT'), ]; $res = static::add($passwordData); if($res->isSuccess()) { $scopeList = array_unique($scopeList); foreach($scopeList as $scope) { PermissionTable::add(array( 'PASSWORD_ID' => $res->getId(), 'PERM' => $scope, )); } $passwordData['ID'] = $res->getId(); if(!$returnArray) { $return = $password; } else { $return = $passwordData; } return $return; } return false; } public static function onAfterAdd(Main\Entity\Event $event) { EventController::onAfterAddAp($event); } }