function UnRegister($member_id)
 {
     if (($ar_member = CControllerMember::GetMember($member_id)) === false) {
         return false;
     }
     $arParameters = array();
     $oRequest = new CControllerServerRequestTo($ar_member, "unregister", $arParameters);
     $oResponse = $oRequest->Send();
     $arControllerLog = array('NAME' => 'UNREGISTRATION', 'CONTROLLER_MEMBER_ID' => $ar_member['ID'], 'STATUS' => 'Y', 'DESCRIPTION' => GetMessage("CTRLR_MEM_LOG_DISCON"));
     if ($oResponse == false) {
         $e = $GLOBALS['APPLICATION']->GetException();
         $arControllerLog['DESCRIPTION'] = $e->GetString();
         $result = false;
     } else {
         $result = $oResponse->OK();
         $arControllerLog['DESCRIPTION'] = $oResponse->text;
         if ($result === false) {
             $e = new CApplicationException(GetMessage("CTRLR_MEM_LOG_DISCON_ERR") . " " . $oResponse->text);
             $GLOBALS["APPLICATION"]->ThrowException($e);
         } else {
             CControllerMember::Update($ar_member['ID'], array('DISCONNECTED' => 'Y'));
         }
     }
     if ($result === false) {
         $arControllerLog['DESCRIPTION'] = $e->GetString() . "\r\n" . $arControllerLog['DESCRIPTION'];
         $arControllerLog['STATUS'] = 'N';
     }
     CControllerLog::Add($arControllerLog);
     return $result;
 }
$bRegistrationByTicketError = false;
if ($_SERVER["REQUEST_METHOD"] == "POST" && !$message && $_REQUEST['unregister'] != 'Y' && (strlen($save) > 0 || strlen($save_ext) > 0 || strlen($apply) > 0) && $MOD_RIGHT >= "T") {
    if (!check_bitrix_sessid()) {
        $message = new CAdminMessage(GetMessage("CTRLR_MEM_EDIT_ERR3"));
    } else {
        $arFields = array("ACTIVE" => $_REQUEST["ACTIVE"], "NAME" => $_REQUEST["NAME"], "URL" => $_REQUEST["PROTOCOL"] . $_REQUEST["URL"], "CONTACT_PERSON" => $_REQUEST["CONTACT_PERSON"], "EMAIL" => $_REQUEST["EMAIL"], "DATE_ACTIVE_FROM" => $_REQUEST["DATE_ACTIVE_FROM"], "DATE_ACTIVE_TO" => $_REQUEST["DATE_ACTIVE_TO"], "MEMBER_ID" => $_REQUEST["MEMBER_ID"], "NOTES" => $_REQUEST["NOTES"], "CONTROLLER_GROUP_ID" => $_REQUEST["CONTROLLER_GROUP_ID"]);
        if (COption::GetOptionString("controller", "show_hostname") == "Y") {
            $arFields["HOSTNAME"] = $_REQUEST["HOSTNAME"];
        }
        if (ControllerIsSharedMode()) {
            $arFields["SHARED_KERNEL"] = $_REQUEST["SHARED_KERNEL"];
        }
        $USER_FIELD_MANAGER->EditFormAddFields($ENTITY_ID, $arFields);
        if ($ID > 0) {
            if ($MOD_RIGHT >= "V") {
                $res = CControllerMember::Update($ID, $arFields);
            }
        } else {
            if ($sRegistrationMode == "ticket") {
                $arFields["SECRET_ID"] = $_REQUEST["SECRET_ID"];
                if (!($ID = CControllerMember::RegisterMemberByTicket($arFields, $_REQUEST["TICKET_ID"], $_REQUEST["PROTOCOL"] . $_REQUEST["URL"]))) {
                    if ($e = $APPLICATION->GetException()) {
                        $message = new CAdminMessage(GetMessage("CTRLR_MEM_EDIT_ERR4"), $e);
                    }
                    $bRegistrationByTicketError = true;
                }
            } elseif ($sRegistrationMode == "password") {
                if (strlen($_REQUEST["ADMIN_LOGIN"]) < 0 || strlen($_REQUEST["ADMIN_PASSWORD"]) <= 0) {
                    $e = new CApplicationException(GetMessage("CTRLR_MEM_EDIT_ERR5"));
                    $message = new CAdminMessage(GetMessage("CTRLR_MEM_EDIT_ERR4"), $e);
                } elseif (!($ID = CControllerMember::RegisterMemberByPassword($arFields, $_REQUEST["ADMIN_LOGIN"], $_REQUEST["ADMIN_PASSWORD"]))) {
 switch ($_REQUEST['action']) {
     case "delete":
         if ($MOD_RIGHT >= "W") {
             @set_time_limit(0);
             $DB->StartTransaction();
             if (!CControllerMember::Delete($ID)) {
                 $DB->Rollback();
                 $lAdmin->AddGroupError(GetMessage("CTRL_MEMB_ADMIN_DEL_ERR"), $ID);
             }
             $DB->Commit();
         }
         break;
     case "activate":
     case "deactivate":
         $arFields = array("ACTIVE" => $_REQUEST['action'] == "activate" ? "Y" : "N");
         if (!CControllerMember::Update($ID, $arFields)) {
             if ($e = $APPLICATION->GetException()) {
                 $lAdmin->AddGroupError(GetMessage("CTRL_MEMB_ADMIN_SAVE_ERR") . " " . $ID . ": " . $e->GetString(), $ID);
             }
         }
         break;
     case "disconnect":
         if (!CControllerMember::UnRegister($ID)) {
             if ($e = $APPLICATION->GetException()) {
                 $lAdmin->AddGroupError(GetMessage("CTRL_MEMB_ADMIN_DISC_ERR") . " " . $ID . ": " . $e->GetString(), $ID);
             }
         }
         break;
     case "update_settings":
         if (!CControllerMember::SetGroupSettings($ID)) {
             if ($e = $APPLICATION->GetException()) {
Example #4
0
             } else {
                 echo "500 ER\n";
             }
         } else {
             echo "200 OK\n";
         }
     } else {
         echo "200 OK\n";
     }
     break;
 case "group":
     $rsGroup = CControllerGroup::GetList(array("SORT" => "ASC"), array("NAME" => $arParams["ACTION"]));
     if ($arGroup = $rsGroup->Fetch()) {
         if ($arMember["CONTROLLER_GROUP_ID"] != $arGroup["ID"]) {
             $arFields = array("CONTROLLER_GROUP_ID" => $arGroup['ID']);
             if (!CControllerMember::Update($arMember["ID"], $arFields, $arParams["NOTES"])) {
                 echo "401 ER\n";
                 if ($e = $APPLICATION->GetException()) {
                     echo "401 ER\n", GetMessage("CC_BCSC_UPDATE_ERROR", array("#ID#" => $ID, "#MESSAGE#" => $e->GetString()));
                 } else {
                     echo "500 ER\n";
                 }
             } else {
                 CControllerMember::UpdateCounters($arMember["ID"]);
                 echo "200 OK\n";
             }
         } elseif (strlen($arParams["NOTES"])) {
             CControllerMember::addHistoryNote($arMember["ID"], $arParams["NOTES"]);
             CControllerMember::UpdateCounters($arMember["ID"]);
             echo "200 OK\n";
         } else {