From d65f45e242eee802e6e3f6a570a82cfdf60a614d Mon Sep 17 00:00:00 2001 From: merelendor Date: Tue, 12 Mar 2024 16:43:47 +0300 Subject: [PATCH] API user & company fix when updating --- api/index.php | 73 +++++++++++++++++---------------------------------- 1 file changed, 24 insertions(+), 49 deletions(-) diff --git a/api/index.php b/api/index.php index 6c120a7..5265e94 100644 --- a/api/index.php +++ b/api/index.php @@ -406,6 +406,13 @@ switch($PARAM_1) { switch($PARAM_2) { + case "test": + { + if($auth['username'] !== 'crm') { header('HTTP/1.0 401 Unauthorized'); print json_encode(["status" => "error", "error" => "unauthorized", "message" => "Unauthorized"]); die(); } + die("OK"); + } + break; + case "registration": { if($auth['username'] !== 'crm') { header('HTTP/1.0 401 Unauthorized'); print json_encode(["status" => "error", "error" => "unauthorized", "message" => "Unauthorized"]); die(); } @@ -465,6 +472,9 @@ switch($PARAM_1) if($user_registered_id !== null) { //user exists + /* + пользователь с указанным $REQ['email'] сущестуют + */ if($company_registered_id === null) { @@ -490,55 +500,6 @@ switch($PARAM_1) ]); } - $user_properties = [ - 'COMPANY' => $REQ['org_title'], - 'INN' => (string)$REQ['inn'], - 'KPP' => (string)$REQ['kpp'], - 'OGRN' => (string)$REQ['ogrn'], - 'ADMINS' => [ $ID ], - 'USERS' => [ $ID ], - ]; - - $ar_new_client = [ - 'IBLOCK_ID' => IBLOCK_ID_CLIENTS, - 'NAME' => $REQ['org_title'], - 'CODE' => $REQ['crm_id'], - 'PROPERTY_VALUES' => $user_properties, - 'ACTIVE' => 'Y', // активен - ]; - - $new_client = new CIBlockElement; - if($new_client_id = $new_client->Add($ar_new_client)) - { - } - else - { - $existed_client_res = CIBlockElement::GetList([ 'id' => 'desc' ], [ 'IBLOCK_ID' => IBLOCK_ID_CLIENTS, 'CODE' => $REQ['crm_id'] ], false, []); - while ($existed_client_element = $existed_client_res->GetNextElement()) - { - $existed_client_record = $existed_client_element->GetFields(); - $existed_client_record['PROPERTIES'] = $existed_client_element->GetProperties(); - - $admins = $existed_client_record['PROPERTIES']['ADMINS']['VALUE']; - $users = $existed_client_record['PROPERTIES']['USERS']['VALUE']; - - array_push($admins, $ID); - array_push($users, $ID); - - $admins = array_unique($admins); - $users = array_unique($users); - - $updated_fields = [ - 'PROPERTY_VALUES' => [ - 'ADMINS' => $admins, - 'USERS' => $users, - ] - ]; - - CIBlockElement::SetPropertyValuesEx($existed_client_record['ID'], IBLOCK_ID_CLIENTS, [ 'ADMINS' => $admins, 'USERS' => $users, ]); - } - } - print json_encode([ "status" => "success" ]); @@ -664,14 +625,23 @@ switch($PARAM_1) if($user_registered !== null) { // user exists + /* + пользователь с указанным $REQ['email'] сущестуют + */ if($company_registered_id !== null) { //existed company + /* + компания с указанным $REQ['crm_id'] сущестуют + */ $profile["PASSWORD"] = $REQ['password']; $profile["CONFIRM_PASSWORD"] = $REQ['password']; + /* + устанавливаем указанному юзеру параметры из сфрормрованного пакета (из данных из CRM) + */ $user = new \CUser; $user->Update($user_registered, $profile); @@ -689,6 +659,8 @@ switch($PARAM_1) ]); } + setCompanyForUser($user_registered, $REQ, true); + print json_encode([ "status" => "success" ]); @@ -711,6 +683,9 @@ switch($PARAM_1) else { // new user + /* + новый пользователь + */ if($company_registered_id !== null) {