Example #1
1
 function SetUserGroup($USER_ID, $arGroups)
 {
     global $DB, $APPLICATION, $USER;
     $USER_ID = IntVal($USER_ID);
     if (COption::GetOptionString("main", "event_log_user_groups", "N") === "Y") {
         //remember previous groups of the user
         $aPrevGroups = array();
         $res = CUser::GetUserGroupList($USER_ID);
         while ($res_arr = $res->Fetch()) {
             if ($res_arr["GROUP_ID"] != 2) {
                 $aPrevGroups[] = $res_arr["GROUP_ID"];
             }
         }
     }
     $DB->Query("DELETE FROM b_user_group WHERE USER_ID=" . $USER_ID, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
     if (is_array($arGroups)) {
         $arTmp = array();
         foreach ($arGroups as $group) {
             if (!is_array($group)) {
                 $group = array("GROUP_ID" => $group);
             }
             $group_id = intval($group["GROUP_ID"]);
             if ($group_id > 0 && !isset($arTmp[$group_id])) {
                 $arInsert = $DB->PrepareInsert("b_user_group", $group);
                 $strSql = "\n\t\t\t\t\t\tINSERT INTO b_user_group (\n\t\t\t\t\t\t\tUSER_ID, " . $arInsert[0] . "\n\t\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t\t" . $USER_ID . ",\n\t\t\t\t\t\t\t" . $arInsert[1] . "\n\t\t\t\t\t\t)\n\t\t\t\t\t";
                 $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
                 $arTmp[$group_id] = true;
             }
         }
         $arGroups = array_keys($arTmp);
     } else {
         $arGroups = array();
     }
     if (COption::GetOptionString("main", "event_log_user_groups", "N") === "Y") {
         //compare previous groups of the user with new
         $aDiff = array_diff($aPrevGroups, $arGroups);
         if (empty($aDiff)) {
             $aDiff = array_diff($arGroups, $aPrevGroups);
         }
         if (!empty($aDiff)) {
             sort($aPrevGroups);
             sort($arGroups);
             $rsUser = CUser::GetByID($USER_ID);
             if ($arUser = $rsUser->GetNext()) {
                 $UserName = $arUser["NAME"] != "" || $arUser["LAST_NAME"] != "" ? trim($arUser["NAME"] . " " . $arUser["LAST_NAME"]) : $arUser["LOGIN"];
             }
             $res_log = array("groups" => "(" . implode(", ", $aPrevGroups) . ") => (" . implode(", ", $arGroups) . ")", "user" => $UserName);
             CEventLog::Log("SECURITY", "USER_GROUP_CHANGED", "main", $USER_ID, serialize($res_log));
         }
     }
 }
Example #2
0
    if ($user["UF_USER_PARENT"]) {
        $counter[$user["UF_USER_PARENT"]][] = $user;
    }
}
$table = array();
foreach ($counter as $uid => $joined) {
    $ampUsers = array();
    $arFilter = array("DATE_REGISTER_1" => $date_from, "DATE_REGISTER_2" => $date_to, "UF_USER_PARENT" => $uid);
    $ampUsersObj = CUser::GetList($sort = "id", $direct = "asc", $arFilter, array("SELECT" => array("UF_*")));
    while ($ampUser = $ampUsersObj->Fetch()) {
        $ampUsers[$ampUser["UF_USER_PARENT"]] = $ampUser;
    }
    if (!empty($ampUsers[$uid])) {
        $amp = CUser::GetByID($uid)->Fetch();
        $arName = array($amp["NAME"], $amp["LAST_NAME"]);
        $ampGroupsObj = CUser::GetUserGroupList($amp["ID"]);
        $ampGroups = array();
        while ($ampGroup = $ampGroupsObj->Fetch()) {
            if (array_key_exists($ampGroup["GROUP_ID"], $groups)) {
                $ampGroups[] = $groups[$ampGroup["GROUP_ID"]];
            }
        }
        $arr = array("profile" => "/club/user/{$amp["ID"]}/", "group" => implode("<br />", $ampGroups), "id" => $amp["ID"], "login" => $amp["LOGIN"], "name" => implode(" ", $arName), "list" => $joined, "city" => $amp["PERSONAL_CITY"]);
        $table[] = $arr;
    }
}
?>

<style type="text/css">
	.stat-table{
		width: 100%;
Example #3
0
 function SetUserGroup($USER_ID, $arGroups)
 {
     global $DB;
     $USER_ID = intval($USER_ID);
     if ($USER_ID === 0) {
         return false;
     }
     $log = COption::GetOptionString("main", "event_log_user_groups", "N") === "Y";
     if ($log) {
         //remember previous groups of the user
         $aPrevGroups = array();
         $res = CUser::GetUserGroupList($USER_ID);
         while ($res_arr = $res->Fetch()) {
             if ($res_arr["GROUP_ID"] != 2) {
                 $aPrevGroups[] = $res_arr["GROUP_ID"];
             }
         }
     }
     $DB->Query("DELETE FROM b_user_group WHERE USER_ID=" . $USER_ID, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
     if (is_array($arGroups)) {
         $arTmp = array();
         foreach ($arGroups as $group) {
             if (!is_array($group)) {
                 $group = array("GROUP_ID" => $group);
             }
             $group_id = intval($group["GROUP_ID"]);
             if ($group_id > 0 && $group_id != 2 && !isset($arTmp[$group_id])) {
                 $arInsert = $DB->PrepareInsert("b_user_group", $group);
                 $strSql = "\n\t\t\t\t\t\tINSERT INTO b_user_group (\n\t\t\t\t\t\t\tUSER_ID, " . $arInsert[0] . "\n\t\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t\t" . $USER_ID . ",\n\t\t\t\t\t\t\t" . $arInsert[1] . "\n\t\t\t\t\t\t)\n\t\t\t\t\t";
                 $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
                 $arTmp[$group_id] = true;
             }
         }
         $arGroups = array_keys($arTmp);
     } else {
         $arGroups = array();
     }
     self::clearUserGroupCache($USER_ID);
     foreach (GetModuleEvents("main", "OnAfterSetUserGroup", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array("USER_ID" => $USER_ID, "GROUPS" => $arGroups));
     }
     if ($log) {
         //compare previous groups of the user with new
         /** @noinspection PhpUndefinedVariableInspection */
         $aDiff = array_diff($aPrevGroups, $arGroups);
         if (empty($aDiff)) {
             $aDiff = array_diff($arGroups, $aPrevGroups);
         }
         if (!empty($aDiff)) {
             sort($aPrevGroups);
             sort($arGroups);
             $UserName = '';
             $rsUser = CUser::GetByID($USER_ID);
             if ($arUser = $rsUser->GetNext()) {
                 $UserName = $arUser["NAME"] != "" || $arUser["LAST_NAME"] != "" ? trim($arUser["NAME"] . " " . $arUser["LAST_NAME"]) : $arUser["LOGIN"];
             }
             $res_log = array("groups" => "(" . implode(", ", $aPrevGroups) . ") => (" . implode(", ", $arGroups) . ")", "user" => $UserName);
             CEventLog::Log("SECURITY", "USER_GROUP_CHANGED", "main", $USER_ID, serialize($res_log));
         }
     }
     return null;
 }
Example #4
0
 public static function OnAfterUserRegister($arFields)
 {
     global $DB;
     $err_mess = CRatings::err_mess() . "<br>Function: OnAfterUserRegister<br>Line: ";
     $userId = isset($arFields["USER_ID"]) ? intval($arFields["USER_ID"]) : (isset($arFields["ID"]) ? intval($arFields["ID"]) : 0);
     if ($userId > 0) {
         $authorityRatingId = CRatings::GetAuthorityRating();
         $ratingStartValue = COption::GetOptionString("main", "rating_start_authority", 3);
         $ratingCountVote = COption::GetOptionString("main", "rating_count_vote", 10);
         $arParam = array('RATING_ID' => $authorityRatingId, 'ENTITY_ID' => $userId, 'BONUS' => intval($ratingStartValue), 'VOTE_WEIGHT' => intval($ratingStartValue) * COption::GetOptionString("main", "rating_vote_weight", 1), 'VOTE_COUNT' => intval($ratingCountVote) + intval($ratingStartValue));
         CRatings::UpdateRatingUserBonus($arParam);
         if (IsModuleInstalled("intranet")) {
             $strSql = "INSERT INTO b_rating_subordinate (RATING_ID, ENTITY_ID, VOTES) VALUES ('" . $authorityRatingId . "', '" . $userId . "', '" . (intval($ratingCountVote) + intval($ratingStartValue)) . "')";
             $DB->Query($strSql, false, $err_mess . __LINE__);
         }
         $sRatingAssignType = COption::GetOptionString("main", "rating_assign_type", 'manual');
         if ($sRatingAssignType == 'auto') {
             $assignRatingGroup = COption::GetOptionString("main", "rating_assign_rating_group", 0);
             $assignAuthorityGroup = COption::GetOptionString("main", "rating_assign_authority_group", 0);
             if ($assignRatingGroup == 0 && $assignAuthorityGroup == 0) {
                 return false;
             }
             $arGroups = array();
             $res = CUser::GetUserGroupList($userId);
             while ($res_arr = $res->Fetch()) {
                 $arGroups[] = array("GROUP_ID" => $res_arr["GROUP_ID"], "DATE_ACTIVE_FROM" => $res_arr["DATE_ACTIVE_FROM"], "DATE_ACTIVE_TO" => $res_arr["DATE_ACTIVE_TO"]);
             }
             if ($assignRatingGroup > 0) {
                 $arGroups[] = array("GROUP_ID" => intval($assignRatingGroup));
             }
             if ($assignAuthorityGroup > 0 && $assignRatingGroup != $assignAuthorityGroup) {
                 $arGroups[] = array("GROUP_ID" => intval($assignAuthorityGroup));
             }
             CUser::SetUserGroup($userId, $arGroups);
         }
         if (CACHED_b_rating_vote !== false) {
             global $CACHE_MANAGER;
             $bucket_size = intval(CACHED_b_rating_bucket_size);
             if ($bucket_size <= 0) {
                 $bucket_size = 100;
             }
             $bucket = intval($userId / $bucket_size);
             $CACHE_MANAGER->Clean("b_rvu_" . $authorityRatingId . $bucket, "b_rating_user");
         }
     }
 }
Example #5
0
                    LocalRedirect($strRedirect . "&ID=0&" . $tabControl->ActiveTabParam());
                }
            } elseif ($new == "Y") {
                LocalRedirect($strRedirect . "&ID=" . $ID . "&" . $tabControl->ActiveTabParam());
            }
        }
    }
}
$str_GROUP_ID = array();
$user = CUser::GetByID($ID);
if (!$user->ExtractFields("str_")) {
    $ID = 0;
    $str_ACTIVE = "Y";
    $str_LID = CSite::GetDefSite();
} else {
    $dbUserGroup = CUser::GetUserGroupList($ID);
    while ($arUserGroup = $dbUserGroup->Fetch()) {
        $str_GROUP_ID[intval($arUserGroup["GROUP_ID"])]["DATE_ACTIVE_FROM"] = $arUserGroup["DATE_ACTIVE_FROM"];
        $str_GROUP_ID[intval($arUserGroup["GROUP_ID"])]["DATE_ACTIVE_TO"] = $arUserGroup["DATE_ACTIVE_TO"];
    }
}
if ($COPY_ID > 0) {
    $str_PERSONAL_PHOTO = "";
    $str_WORK_LOGO = "";
}
if ($strError != '' || !$res) {
    $save_PERSONAL_PHOTO = $str_PERSONAL_PHOTO;
    $save_WORK_LOGO = $str_WORK_LOGO;
    $DB->InitTableVarsForEdit("b_user", "", "str_");
    $str_PERSONAL_PHOTO = $save_PERSONAL_PHOTO;
    $str_WORK_LOGO = $save_WORK_LOGO;
Example #6
0
 $arResult["User"]["PERSONAL_LOCATION"] .= $arResult["User"]["PERSONAL_CITY"];
 $arResult["User"]["WORK_LOCATION"] = GetCountryByID($arResult["User"]["WORK_COUNTRY"]);
 if (strlen($arResult["User"]["WORK_LOCATION"]) > 0 && strlen($arResult["User"]["WORK_CITY"]) > 0) {
     $arResult["User"]["WORK_LOCATION"] .= ", ";
 }
 $arResult["User"]["WORK_LOCATION"] .= $arResult["User"]["WORK_CITY"];
 if (CModule::IncludeModule('mail')) {
     $dbMailbox = CMailbox::getList(array('TIMESTAMP_X' => 'DESC'), array('LID' => SITE_ID, 'ACTIVE' => 'Y', 'USER_ID' => intval($arParams['ID']), 'SERVER_TYPE' => 'imap|controller|domain'));
     $mailbox = $dbMailbox->fetch();
     if (strpos($mailbox['LOGIN'], '@') !== false) {
         $arResult['User']['MAILBOX'] = $mailbox['LOGIN'];
     }
 }
 if ($USER->CanDoOperation('edit_all_users') || $USER->CanDoOperation('edit_subordinate_users')) {
     $arResult["User"]["GROUP_ID"] = array();
     $rsGroup = CUser::GetUserGroupList($arResult["User"]["ID"]);
     while ($arGroup = $rsGroup->Fetch()) {
         if (strlen($arGroup["DATE_ACTIVE_FROM"]) <= 0 && strlen($arGroup["DATE_ACTIVE_TO"]) <= 0) {
             $arResult["User"]["GROUP_ID"][] = $arGroup["GROUP_ID"];
         }
     }
     $arResult["User"]["GROUP_ID"] = array_intersect($arResult["User"]["GROUP_ID"], $arGroupsCanEditID);
 }
 $arResult["arSex"] = array("M" => GetMessage("SONET_P_USER_SEX_M"), "F" => GetMessage("SONET_P_USER_SEX_F"));
 if ($bVarsFromForm) {
     static $skip = array("PERSONAL_PHOTO" => 1, "WORK_LOGO" => 1, "FORUM_AVATAR" => 1, "BLOG_AVATAR" => 1);
     foreach ($_POST as $k => $v) {
         if (!isset($skip[$k])) {
             if (is_array($v)) {
                 foreach ($v as $k1 => $v1) {
                     $arResult["User"][$k][$k1] = htmlspecialcharsbx($v1);
Example #7
0
$arParams["USE_PREPAYMENT"] = $arParams["USE_PREPAYMENT"] == 'Y' ? 'Y' : 'N';
$arParams["DISPLAY_IMG_HEIGHT"] = Intval($arParams["DISPLAY_IMG_HEIGHT"]) <= 0  ? 90 : Intval($arParams["DISPLAY_IMG_HEIGHT"]);

$LOCATION_ID = $_SESSION["LOCATION"];
$location_prop_id = intval($_POST["location_prop_id"]);

$arParams["DELIVERY_TO_PAYSYSTEM"] = ((strlen($arParams["DELIVERY_TO_PAYSYSTEM"]) <= 0) ? "d2p" : trim($arParams["DELIVERY_TO_PAYSYSTEM"]));

if (!isset($arParams["DISABLE_BASKET_REDIRECT"]) || 'Y' !== $arParams["DISABLE_BASKET_REDIRECT"])
	$arParams["DISABLE_BASKET_REDIRECT"] = "N";

$bUseAccountNumber = (COption::GetOptionString("sale", "account_number_template", "") !== "");

if ($USER->IsAuthorized()){
	$arGroups = Array();
	$res = CUser::GetUserGroupList($USER->GetID());
	while ($group = $res->Fetch()){
		$arGroups[] = $group["GROUP_ID"];
	}

	$db_ptype = CSalePersonType::GetList(Array("SORT" => "ASC"), Array("LID"=>SITE_ID, "ACTIVE"=>"Y"));
	while ($ptype = $db_ptype->Fetch())
		$arPersonTypes[] = $ptype["ID"];

	foreach($arPersonTypes as $personTypeID)
	{
		foreach($arParams["GROUP_".$personTypeID] as $groupID){
			if(in_array($groupID, $arGroups))
				$arParams["DEFAULT_PERSON_TYPE_ID"] = $personTypeID;
		}
	}
Example #8
0
 if ($_REQUEST['action_target'] == 'selected') {
     $arID = array();
     $rsData = CUser::GetList($by, $order, $arFilter);
     while ($arRes = $rsData->Fetch()) {
         $arID[] = $arRes['ID'];
     }
 }
 $gr_id = intval($_REQUEST['groups']);
 $struct_id = intval($_REQUEST['UF_DEPARTMENT']);
 foreach ($arID as $ID) {
     $ID = intval($ID);
     if ($ID <= 1) {
         continue;
     }
     $arGroups = array();
     $res = CUser::GetUserGroupList($ID);
     while ($res_arr = $res->Fetch()) {
         $arGroups[intval($res_arr["GROUP_ID"])] = array("GROUP_ID" => $res_arr["GROUP_ID"], "DATE_ACTIVE_FROM" => $res_arr["DATE_ACTIVE_FROM"], "DATE_ACTIVE_TO" => $res_arr["DATE_ACTIVE_TO"]);
     }
     if (isset($arGroups[1]) && !$USER->CanDoOperation('edit_php')) {
         // not admin can't edit admins
         continue;
     }
     if (!$USER->CanDoOperation('edit_all_users') && $USER->CanDoOperation('edit_subordinate_users') && count(array_diff(array_keys($arGroups), $arUserSubordinateGroups)) > 0) {
         continue;
     }
     switch ($_REQUEST['action']) {
         case "delete":
             @set_time_limit(0);
             $DB->StartTransaction();
             if (!CUser::Delete($ID)) {
Example #9
0
	function SetUserGroup($USER_ID, $arGroups)
	{
		global $DB, $APPLICATION, $USER;
		$USER_ID = IntVal($USER_ID);

		if(COption::GetOptionString("main", "event_log_user_groups", "N") === "Y")
		{
			//remember previous groups of the user
			$aPrevGroups = array();
			$res = CUser::GetUserGroupList($USER_ID);
			while($res_arr = $res->Fetch())
				if($res_arr["GROUP_ID"] <> 2)
					$aPrevGroups[] = $res_arr["GROUP_ID"];
		}

		$DB->Query("DELETE FROM b_user_group WHERE USER_ID=".$USER_ID, false, "FILE: ".__FILE__."<br> LINE: ".__LINE__);

		if(is_array($arGroups) && count($arGroups) > 0)
		{
			if(is_array($arGroups[0]) && count($arGroups[0]) > 0)
			{
				$arTmp = array();
				foreach($arGroups as $group)
				{
					$group_id = intval($group["GROUP_ID"]);
					if($group_id > 0 && !in_array($group_id, $arTmp))
					{
						$arInsert = $DB->PrepareInsert("b_user_group", $group);
						$strSql = "
							INSERT INTO b_user_group (
								USER_ID, ".$arInsert[0]."
							) VALUES (
								".$USER_ID.",
								".$arInsert[1]."
							)
						";
						$DB->Query($strSql, false, "FILE: ".__FILE__."<br> LINE: ".__LINE__);

						$arTmp[] = $group_id;
					}
				}
				$arGroups = $arTmp;
			}
			else
			{
				array_walk($arGroups, create_function("&\$item", "\$item=intval(\$item);"));
				$arGroups = array_unique($arGroups);
				if(count($arGroups)>0)
				{
					$strSql =
						"INSERT INTO b_user_group(USER_ID, GROUP_ID) ".
						"SELECT ".$USER_ID.", ID ".
						"FROM b_group ".
						"WHERE ID in (".implode(",", $arGroups).")";

					$DB->Query($strSql, false, "FILE: ".__FILE__."<br> LINE: ".__LINE__);
				}
			}
		}
		else
			$arGroups = array();

		if(COption::GetOptionString("main", "event_log_user_groups", "N") === "Y")
		{
			//compare previous groups of the user with new
			$aDiff = array_diff($aPrevGroups, $arGroups);
			if(empty($aDiff))
				$aDiff = array_diff($arGroups, $aPrevGroups);
			if(!empty($aDiff))
			{
				sort($aPrevGroups);
				sort($arGroups);
				$rsUser = CUser::GetByID($USER_ID);
				if($arUser = $rsUser->GetNext())
					$UserName = ($arUser["NAME"] != "" || $arUser["LAST_NAME"] != "") ? trim($arUser["NAME"]." ".$arUser["LAST_NAME"]) : $arUser["LOGIN"];
				$res_log = array(
					"groups" => "(".implode(", ", $aPrevGroups).") => (".implode(", ", $arGroups).")",
					"user" => $UserName
				);
				CEventLog::Log("SECURITY", "USER_GROUP_CHANGED", "main", $USER_ID, serialize($res_log));
			}
		}
	}