Joywork/engine/classes/WebAppRaiser/forms/ApiPincodeForm.php
2026-05-22 21:21:54 +03:00

118 lines
3.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
class ApiPincodeForm extends WebAppRaiserForm
{
public function __construct($form_id)
{
parent::__construct($form_id);
}
public function form()
{
$form = parent::form();
$header = function ($text) {
return '<div style="border-bottom: 2px solid rgb(67, 160, 71); margin-bottom: 1.5em;"><h3>'.$text.'</h3></div>';
};
$label = function($text) {
return array('#text' => $text, '#class' => ['label'], '#style' => ['width:33%;']);
};
//$form['form_attributes']['enctype'] = 'multipart/form-data';
//$form['form_attributes']['js'][] = 'engine/classes/WebAppRaiser/forms/ApiSettingsForm.js';
$form['uid'] = array(
'inputs' => array(
'#type'=> 'hidden',
),
);
$form['war_username'] = array(
'label'=> $label('Email пользователя'),
'inputs' => array(
'#type'=> 'text',
'#required'=> true,
),
);
$form['war_pincode'] = array(
'label'=> $label('Пинкод для доступа'),
'inputs' => array(
'#type'=> 'number',
'#required'=> true,
'#attributes' => array(
'min' => 11111,
'max' => 99999,
'placeholder' => 'xxxxx',
'maxlength' => 5,
),
'#inputs_style' => 'width:120px;',
),
);
$form['submit'] = array(
'#markup' => '<div class="clear">&nbsp;</div>
<div class="control-group control-line">
<div class="control-inputs" style="clear:both;">
<div class="inputs-group" style="margin-bottom: -90px;width: 95%;position: relative;">
<button class="top-line__button button-fl-right medium-button">Подключить</button>
</div>
</div>
</div>',
);
return $form;
}
public function validate()
{
$status = parent::validate();
return $status;
}
public function submit($status, &$page, WebAppRaiserAPI $WebAppRaiserAPI){
parent::submit($status, $page, $WebAppRaiserAPI);
$page['status'] = $status['code'];
$page['msg'] = array_merge($page['msg'], $status['message']);
if($status['code'] == 'success'){
//todo найти запись по емейлу и проверить его пинкод
$war = WebAppRaiserDB::select('user_api_war', 'username', $status['post']['war_username']);
if(empty($war) || empty($war[0]['pincode'])){
$page['msg'][] = 'Не верный логин либо общий доступ не предоставлен.';
$page['status'] = 'error';
}
else {
if($war[0]['pincode'] == $status['post']['war_pincode']){
//todo успех даем доступ
$uid = $status['post']['uid'];
$api_id = $war[0]['id'];
$fields = array(
'uid' => $uid,
'api_id' => $api_id,
'updateDate' => time(),
);
$valid_fields = array(
'uid' => 'uid',
'api_id' => 'api_id',
'updateDate' => 'updateDate',
);
$sql = "DELETE FROM `war_users` WHERE `uid`=$uid AND `api_id`=$api_id";
mysql_query($sql);
WebAppRaiserDB::save('war_users', $fields, $valid_fields);
$page['msg'][] = 'Доступ предоставлен.';
$page['msg'][] = 'Настройки сохранены.';
}
else{
$page['msg'][] = 'Ошибка пинкода.';
$page['status'] = 'error';
}
}
}
else {
$page['msg'][] = 'Произошла ошибки при проверке формы!';
}
parent::redirect($page);
}
}