217 lines
6.7 KiB
PHP
217 lines
6.7 KiB
PHP
<?php
|
|
|
|
class ApiSettingsForm extends WebAppRaiserForm
|
|
{
|
|
|
|
public function __construct($form_id)
|
|
{
|
|
parent::__construct($form_id);
|
|
global $user;
|
|
//print_r($user);
|
|
if(!$user->api['is_owner']){
|
|
unset($this->form['api_header_markup']);
|
|
unset($this->form['war_username']);
|
|
unset($this->form['war_client_id']);
|
|
unset($this->form['war_client_secret']);
|
|
unset($this->form['war_access_token']);
|
|
unset($this->form['war_refresh_token']);
|
|
unset($this->form['war_pincode']);
|
|
unset($this->form['submit']);
|
|
}
|
|
}
|
|
|
|
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['war_id'] = array(
|
|
'inputs' => array(
|
|
'#type'=> 'hidden',
|
|
),
|
|
);
|
|
$form['war_user_id'] = array(
|
|
'inputs' => array(
|
|
'#type'=> 'hidden',
|
|
),
|
|
);
|
|
|
|
$form['api_header_markup'] = array(
|
|
'#prefix' => '<div class="row"><div class="col col-12 col-md-4" style="width:42%;float:left;padding: 0px 2%;">',
|
|
'#markup' => $header('Интеграция API ВебОценщик'),
|
|
);
|
|
|
|
$form['war_username'] = array(
|
|
'label'=> $label('Email пользователя в системе ВебОценщик'),
|
|
'inputs' => array(
|
|
'#type'=> 'text',
|
|
'#required'=> true,
|
|
),
|
|
);
|
|
|
|
$form['war_client_id'] = array(
|
|
'label'=> $label('Логин для доступа к API'),
|
|
'inputs' => array(
|
|
'#type'=> 'text',
|
|
'#required'=> true,
|
|
'#attributes' => array(
|
|
'placeholder' => 'client_id',
|
|
),
|
|
//'#inputs_style' => 'float:none; width:90%',
|
|
),
|
|
);
|
|
|
|
$form['war_client_secret'] = array(
|
|
'label'=> $label('Секретный код для API'),
|
|
'inputs' => array(
|
|
'#type'=> 'password',
|
|
'#required'=> true,
|
|
'#attributes' => array(
|
|
'placeholder' => 'client_secret',
|
|
),
|
|
//'#inputs_style' => 'float:none; width:90%',
|
|
),
|
|
);
|
|
|
|
$form['war_access_token'] = array(
|
|
'label'=> $label('Токен для доступа к данным'),
|
|
'inputs' => array(
|
|
'#type'=> 'text',
|
|
'#attributes' => array(
|
|
'disabled' => 'disabled',
|
|
),
|
|
),
|
|
);
|
|
$form['war_refresh_token'] = array(
|
|
'label'=> $label('Токен для обновления авторизационных данных'),
|
|
'inputs' => array(
|
|
'#type'=> 'text',
|
|
'#attributes' => array(
|
|
'disabled' => 'disabled',
|
|
),
|
|
//'#required'=> true,
|
|
//'#inputs_style' => 'float:none; width:90%',
|
|
),
|
|
'#suffix' => '</div>',
|
|
);
|
|
|
|
$form['access_header_markup'] = array(
|
|
'#prefix' => '<div class="col col-md-8" style="width:54%;float:left;padding: 0px 2%;">',
|
|
'#markup' => $header('Общий доступ к API ВебОценщик'),
|
|
);
|
|
|
|
$form['war_pincode'] = array(
|
|
'label'=> $label('Пинкод для доступа'),
|
|
'inputs' => array(
|
|
'#type'=> 'number',
|
|
'#attributes' => array(
|
|
'min' => 11111,
|
|
'max' => 99999,
|
|
'placeholder' => 'xxxxx',
|
|
'maxlength' => 5,
|
|
),
|
|
'#inputs_style' => 'width:120px;',
|
|
),
|
|
);
|
|
|
|
$form['war_attached_users'] = array(
|
|
'#markup' => 'Пользователи, имеющие доступ к вашему API',
|
|
'#suffix' => '</div><div class="clear"> </div>',
|
|
);
|
|
|
|
$form['submit'] = array(
|
|
'#markup' => '
|
|
<div class="lw-settings-block_submit-row">
|
|
<div class="control-inputs" style="clear:both;">
|
|
<div class="inputs-group" style="margin-bottom: -60px;">
|
|
<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 запрос авторизации
|
|
$res = $WebAppRaiserAPI->auth_request('password', $status['post']);
|
|
//todo если успех то сохраняем
|
|
if($res['status'] == 'success'){
|
|
$page['msg'][] = $res['msg'];
|
|
$page['msg'][] = 'Настройки сохранены!';
|
|
}
|
|
else {
|
|
$page['msg'][] = 'Произошла ошибка при сохренении настроек!';
|
|
$page['msg'][] = $res['result']['message'];
|
|
}
|
|
$page['status'] = $res['status'];
|
|
}
|
|
else {
|
|
$page['msg'][] = 'Произошла ошибки при проверке формы!';
|
|
}
|
|
parent::redirect($page);
|
|
}
|
|
|
|
public static function getApiUsersInForm($api_id){
|
|
global $user;
|
|
$sql = "SELECT wu.*, u.fio, u.first_name, u.last_name, u.phone, wa.id as user_api_id
|
|
FROM war_users wu
|
|
INNER JOIN users u ON u.id = wu.uid
|
|
LEFT JOIN user_api_war wa ON wa.user_id = wu.uid
|
|
WHERE wu.api_id = $api_id";
|
|
$res = mysql_query($sql);
|
|
$output = '<h3>Пользователи, имеющие доступ к вашему API</h3>';
|
|
$output .= '<div class="jw__NB"><div class="jw__NB__flat-list" style="max-height: 250px;overflow-y: scroll;">';
|
|
$output .= '<table>'.PHP_EOL;
|
|
$output .= '<thead><tr>
|
|
<th>Имя</th>
|
|
<th>Фамилия</th>
|
|
<th>ФИО</th>
|
|
<th>тел</th>
|
|
<th>дата</th>
|
|
<th>действия</th>
|
|
</tr></thead><tbody>'.PHP_EOL;
|
|
while ($row = mysql_fetch_assoc($res)) {
|
|
$output .= '<tr id="wid-tr-'.$row['uid'].'-'.$row['api_id'].'">'.PHP_EOL;
|
|
$output .= '<td>'.$row['first_name'].'</td>'.PHP_EOL;
|
|
$output .= '<td>'.$row['last_name'].'</td>'.PHP_EOL;
|
|
$output .= '<td>'.$row['fio'].'</td>'.PHP_EOL;
|
|
$output .= '<td>'.$row['phone'].'</td>'.PHP_EOL;
|
|
$output .= '<td>'.date('d.m.Y', $row['updateDate']).'</td>'.PHP_EOL;
|
|
if(!empty($row['user_api_id']) && $row['user_api_id'] == $api_id){
|
|
$output .= '<td>Владелец</td>'.PHP_EOL;
|
|
}
|
|
elseif(!$user->api['is_owner'] && $row['uid'] != $user->id){
|
|
$output .= '<td></td>'.PHP_EOL;
|
|
}
|
|
else{
|
|
$output .= '<td>
|
|
<a href="javascript:{};" data-uid="'.$row['uid'].'" data-apiid="'.$row['api_id'].'" class="wid-delete" title="Удалить"><i class="ti-trash"></i></a></td>'.PHP_EOL;
|
|
}
|
|
$output .= '</tr>'.PHP_EOL;
|
|
}
|
|
$output .= '</tbody></table></div></div>'.PHP_EOL;
|
|
return $output;
|
|
}
|
|
} |