Ejemplo n.º 1
0
 public function __construct($appID = false, $appSecret = false, $code = false)
 {
     if ($appID === false) {
         $appID = trim(CSocServAuth::GetOption("bitrixseo_id"));
     }
     if ($appSecret === false) {
         $appSecret = trim(CSocServAuth::GetOption("bitrixseo_secret"));
     }
     parent::__construct($appID, $appSecret, $code);
 }
Ejemplo n.º 2
0
 public function Authorize()
 {
     global $APPLICATION, $USER;
     $errorCode = 1;
     if ($arOpenID = $this->Validate()) {
         $arFields = array('EXTERNAL_AUTH_ID' => 'OPENID#' . $arOpenID['server'], 'XML_ID' => $arOpenID['identity'], 'PASSWORD' => randString(30), 'LID' => SITE_ID, "PERSONAL_WWW" => $arOpenID['identity']);
         if (array_key_exists('openid_sreg_email', $_GET)) {
             $arFields['EMAIL'] = $_GET['openid_sreg_email'];
         }
         if (array_key_exists('openid_sreg_gender', $_GET) && ($_GET['openid_sreg_gender'] == 'M' || $_GET['openid_sreg_gender'] == 'F')) {
             $arFields['PERSONAL_GENDER'] = $_GET['openid_sreg_gender'];
         }
         if (array_key_exists('openid_sreg_fullname', $_GET)) {
             $fullname = defined("BX_UTF") ? $_GET['openid_sreg_fullname'] : CharsetConverter::ConvertCharset($_GET['openid_sreg_fullname'], 'UTF-8', LANG_CHARSET);
             $fullname = trim($fullname);
             if (($pos = strpos($fullname, ' ')) !== false) {
                 $arFields['NAME'] = substr($fullname, 0, $pos);
                 $arFields['LAST_NAME'] = substr($fullname, $pos + 1);
             } else {
                 $arFields['NAME'] = $fullname;
             }
         }
         if (array_key_exists('openid_sreg_postcode', $_GET)) {
             $arFields['PERSONAL_ZIP'] = $_GET['openid_sreg_postcode'];
         }
         if (array_key_exists('openid_sreg_timezone', $_GET)) {
             $arFields['TIME_ZONE'] = $_GET['openid_sreg_timezone'];
         }
         if (array_key_exists('openid_sreg_country', $_GET)) {
             $arFields['PERSONAL_COUNTRY'] = GetCountryIdByCode($_GET['openid_sreg_country']);
         }
         if (array_key_exists('openid_sreg_dob', $_GET)) {
             $arFields['PERSONAL_BIRTHDAY'] = CDatabase::FormatDate($_GET['openid_sreg_dob'], "YYYY-MM-DD", FORMAT_DATE);
         }
         if (array_key_exists('BX_OPENID_IDENTITY', $_SESSION)) {
             $arFields['LOGIN'] = $_SESSION['BX_OPENID_IDENTITY'];
         } else {
             $arFields['LOGIN'] = $arOpenID['identity'];
         }
         $arFields['LOGIN'] = preg_replace("#^(http://|https://)#i", "", $arFields['LOGIN']);
         $USER_ID = 0;
         if ($GLOBALS["USER"]->IsAuthorized() && $GLOBALS["USER"]->GetID()) {
             if (!CSocServAuth::isSplitDenied()) {
                 $arFields['USER_ID'] = $GLOBALS["USER"]->GetID();
                 CSocServAuthDB::Add($arFields);
                 self::CleanParam();
             } else {
                 $errorCode = SOCSERV_REGISTRATION_DENY;
             }
         } else {
             $dbUsersOld = $GLOBALS["USER"]->GetList($by, $ord, array('XML_ID' => $arFields['XML_ID'], 'EXTERNAL_AUTH_ID' => $arFields['EXTERNAL_AUTH_ID'], 'ACTIVE' => 'Y'), array('NAV_PARAMS' => array("nTopCount" => "1")));
             $dbUsersNew = $GLOBALS["USER"]->GetList($by, $ord, array('XML_ID' => $arFields['XML_ID'], 'EXTERNAL_AUTH_ID' => 'socservices', 'ACTIVE' => 'Y'), array('NAV_PARAMS' => array("nTopCount" => "1")));
             $dbSocUser = CSocServAuthDB::GetList(array(), array('XML_ID' => $arFields['XML_ID'], 'EXTERNAL_AUTH_ID' => $arFields['EXTERNAL_AUTH_ID']), false, false, array("USER_ID", "ACTIVE"));
             if ($arUser = $dbSocUser->Fetch()) {
                 if ($arUser["ACTIVE"] === 'Y') {
                     $USER_ID = $arUser["USER_ID"];
                 }
             } elseif ($arUser = $dbUsersOld->Fetch()) {
                 $USER_ID = $arUser['ID'];
             } elseif ($arUser = $dbUsersNew->Fetch()) {
                 $USER_ID = $arUser["ID"];
             } elseif (COption::GetOptionString("main", "new_user_registration", "N") == "Y") {
                 $def_group = COption::GetOptionString('main', 'new_user_registration_def_group', '');
                 if ($def_group != '') {
                     $arFields['GROUP_ID'] = explode(',', $def_group);
                 }
                 if (!empty($arFields['GROUP_ID']) && CSocServAuth::isAuthDenied($arFields['GROUP_ID'])) {
                     $errorCode = SOCSERV_REGISTRATION_DENY;
                 } else {
                     foreach (GetModuleEvents("main", "OnBeforeOpenIDUserAdd", true) as $arEvent) {
                         ExecuteModuleEventEx($arEvent, array($arFields));
                     }
                     $arFieldsUser = $arFields;
                     $arFieldsUser["EXTERNAL_AUTH_ID"] = "socservices";
                     if (!($USER_ID = $GLOBALS["USER"]->Add($arFieldsUser))) {
                         return false;
                     }
                     $arFields['CAN_DELETE'] = 'N';
                     $arFields['USER_ID'] = $USER_ID;
                     CSocServAuthDB::Add($arFields);
                     unset($arFields['CAN_DELETE']);
                 }
             } elseif (COption::GetOptionString("main", "new_user_registration", "N") == "N") {
                 $errorCode = 2;
             }
             if (intval($USER_ID) > 0) {
                 $arGroups = $USER->GetUserGroup($USER_ID);
                 if (CSocServAuth::isAuthDenied($arGroups)) {
                     $errorCode = SOCSERV_AUTHORISATION_ERROR;
                 } else {
                     $USER->AuthorizeWithOtp($USER_ID);
                     $arKillParams = array("auth_service_id", "check_key");
                     foreach (array_keys($_GET) as $k) {
                         if (strpos($k, 'openid_') === 0) {
                             $arKillParams[] = $k;
                         }
                     }
                     $redirect_url = $APPLICATION->GetCurPageParam('', $arKillParams, false);
                     foreach (GetModuleEvents("main", "OnBeforeOpenIDAuthFinalRedirect", true) as $arEvent) {
                         ExecuteModuleEventEx($arEvent, array($redirect_url, $USER_ID, $arFields));
                     }
                     if ($redirect_url) {
                         LocalRedirect($redirect_url, true);
                     }
                     return $USER_ID;
                 }
             }
         }
     }
     $arKillParams = array("check_key");
     foreach (array_keys($_GET) as $k) {
         if (strpos($k, 'openid') === 0) {
             $arKillParams[] = $k;
         }
     }
     $redirect_url = $APPLICATION->GetCurPageParam('auth_service_error=' . $errorCode, $arKillParams, false);
     LocalRedirect($redirect_url, true);
     return false;
 }
Ejemplo n.º 3
0
 public function AuthorizeUser($arFields)
 {
     if (!isset($arFields['XML_ID']) || $arFields['XML_ID'] == '') {
         return false;
     }
     if (!isset($arFields['EXTERNAL_AUTH_ID']) || $arFields['EXTERNAL_AUTH_ID'] == '') {
         return false;
     }
     $errorCode = 1;
     if ($GLOBALS["USER"]->IsAuthorized() && $GLOBALS["USER"]->GetID()) {
         $id = CSocServAuthDB::Add($arFields);
         if ($id && $_SESSION["OAUTH_DATA"] && is_array($_SESSION["OAUTH_DATA"])) {
             CSocServAuthDB::Update($id, $_SESSION["OAUTH_DATA"]);
             unset($_SESSION["OAUTH_DATA"]);
         }
     } else {
         $dbSocUser = CSocServAuthDB::GetList(array(), array('XML_ID' => $arFields['XML_ID'], 'EXTERNAL_AUTH_ID' => $arFields['EXTERNAL_AUTH_ID']), false, false, array("USER_ID", "ACTIVE"));
         $dbUsersOld = $GLOBALS["USER"]->GetList($by, $ord, array('XML_ID' => $arFields['XML_ID'], 'EXTERNAL_AUTH_ID' => $arFields['EXTERNAL_AUTH_ID'], 'ACTIVE' => 'Y'), array('NAV_PARAMS' => array("nTopCount" => "1")));
         $dbUsersNew = $GLOBALS["USER"]->GetList($by, $ord, array('XML_ID' => $arFields['XML_ID'], 'EXTERNAL_AUTH_ID' => 'socservices', 'ACTIVE' => 'Y'), array('NAV_PARAMS' => array("nTopCount" => "1")));
         if ($arUser = $dbSocUser->Fetch()) {
             if ($arUser["ACTIVE"] === 'Y') {
                 $USER_ID = $arUser["USER_ID"];
             }
         } elseif ($arUser = $dbUsersOld->Fetch()) {
             $USER_ID = $arUser["ID"];
         } elseif ($arUser = $dbUsersNew->Fetch()) {
             $USER_ID = $arUser["ID"];
         } elseif (COption::GetOptionString("main", "new_user_registration", "N") == "Y") {
             $arFields['PASSWORD'] = randString(30);
             //not necessary but...
             $arFields['LID'] = SITE_ID;
             $def_group = COption::GetOptionString('main', 'new_user_registration_def_group', '');
             if ($def_group != '') {
                 $arFields['GROUP_ID'] = explode(',', $def_group);
             }
             $arFieldsUser = $arFields;
             $arFieldsUser["EXTERNAL_AUTH_ID"] = "socservices";
             if (!($USER_ID = $GLOBALS["USER"]->Add($arFieldsUser))) {
                 return false;
             }
             $arFields['CAN_DELETE'] = 'N';
             $arFields['USER_ID'] = $USER_ID;
             $id = CSocServAuthDB::Add($arFields);
             if ($id && $_SESSION["OAUTH_DATA"] && is_array($_SESSION["OAUTH_DATA"])) {
                 CSocServAuth::Update($id, $_SESSION["OAUTH_DATA"]);
                 unset($_SESSION["OAUTH_DATA"]);
             }
             unset($arFields['CAN_DELETE']);
         } elseif (COption::GetOptionString("main", "new_user_registration", "N") == "N") {
             $errorCode = 2;
         }
         if (isset($USER_ID) && $USER_ID > 0) {
             $GLOBALS["USER"]->Authorize($USER_ID);
         } else {
             return $errorCode;
         }
         //it can be redirect after authorization, so no spreading. Store cookies in the session for next hit
         $GLOBALS['APPLICATION']->StoreCookies();
     }
     return true;
 }
Ejemplo n.º 4
0
                __AdmSettingsSaveOption($module_id, $option);
            }
        }
    }
    $sendTwit = $allowSendActivity = 'N';
    if ($_POST["get_message_from_twitter"] == 'Y') {
        $sendTwit = 'Y';
        CAgent::AddAgent("CSocServAuthManager::GetTwitMessages();", "socialservices", "N", 90, "", "Y", "");
    }
    COption::SetOptionString("socialservices", "get_message_from_twitter", $sendTwit);
    if ($_POST["allow_send_user_activity"] == 'Y') {
        $allowSendActivity = 'Y';
    }
    COption::SetOptionString("socialservices", "allow_send_user_activity", $allowSendActivity);
    CSocServAuth::setGroupsDenyAuth($_REQUEST["group_deny_auth"]);
    CSocServAuth::setGroupsDenySplit($_REQUEST["group_deny_split"]);
    if (isset($_REQUEST["allow_registration"])) {
        COption::SetOptionString("socialservices", "allow_registration", $_REQUEST["allow_registration"] == "N" ? "N" : "Y");
    }
    if (strlen($_REQUEST["back_url_settings"]) > 0) {
        if ($_POST["Apply"] != '' || $_POST["RestoreDefaults"] != '') {
            LocalRedirect($APPLICATION->GetCurPage() . "?mid=" . urlencode($module_id) . "&lang=" . urlencode(LANGUAGE_ID) . "&back_url_settings=" . urlencode($_REQUEST["back_url_settings"]) . "&" . $tabControl->ActiveTabParam() . ($_REQUEST["siteTabControl_active_tab"] != '' ? "&siteTabControl_active_tab=" . urlencode($_REQUEST["siteTabControl_active_tab"]) : ''));
        } else {
            LocalRedirect($_REQUEST["back_url_settings"]);
        }
    } else {
        LocalRedirect($APPLICATION->GetCurPage() . "?mid=" . urlencode($module_id) . "&lang=" . urlencode(LANGUAGE_ID) . "&" . $tabControl->ActiveTabParam() . ($_REQUEST["siteTabControl_active_tab"] != '' ? "&siteTabControl_active_tab=" . urlencode($_REQUEST["siteTabControl_active_tab"]) : ''));
    }
}
?>
<script type="text/javascript">
Ejemplo n.º 5
0
 public static function GetOption($opt)
 {
     if (self::$settingsSuffix === false) {
         self::$settingsSuffix = self::OptionsSuffix();
     }
     return COption::GetOptionString("socialservices", $opt . self::$settingsSuffix);
 }
Ejemplo n.º 6
0
         $arPerm = $_POST["SPERM"];
     }
     $arFields = array("PERMISSIONS" => serialize($arPerm));
     $arFields['SEND_ACTIVITY'] = 'N';
     $arFields['USER_ID'] = $SONET_USER_ID;
     if (isset($_POST["ss-send-my-actives"]) && $_POST["ss-send-my-actives"] == 'Y') {
         $arFields['SEND_ACTIVITY'] = 'Y';
     }
     if (is_array($_POST["USER_ID_TWITTER"])) {
         foreach ($_POST["USER_ID_TWITTER"] as $value) {
             CSocServAuth::Update($value, $arFields);
         }
     }
     if (is_array($_POST["USER_ID_OTHER"])) {
         foreach ($_POST["USER_ID_OTHER"] as $value) {
             CSocServAuth::Update($value, array("SEND_ACTIVITY" => $arFields['SEND_ACTIVITY'], "USER_ID" => $arFields['USER_ID']));
         }
     }
 }
 $arPICTURE = array();
 $arPICTURE_WORK = array();
 //PERSONAL_PHOTO upload
 //bitrix24 template
 if ($_POST['PERSONAL_PHOTO_ID'] && intval($_POST['PERSONAL_PHOTO_ID']) > 0 && intval($_POST['PERSONAL_PHOTO_ID']) != intval($arResult["User"]["PERSONAL_PHOTO"])) {
     if (in_array($_POST['PERSONAL_PHOTO_ID'], \Bitrix\Main\UI\FileInputUtility::instance()->checkFiles('PERSONAL_PHOTO_IMAGE_ID', array($_POST['PERSONAL_PHOTO_ID'])))) {
         $arPICTURE = CFile::MakeFileArray($_POST['PERSONAL_PHOTO_ID']);
     }
 } elseif (strlen($_FILES["PERSONAL_PHOTO"]["name"]) > 0) {
     $arPICTURE = $_FILES["PERSONAL_PHOTO"];
 }
 if (sizeof($arPICTURE) != 0 || isset($_POST["PERSONAL_PHOTO_del"])) {