Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Запрет на редактирование пользовательских полей в профиле пользователя

00 голосов
3
В параметрах компонента (профиль пользователя) - bitrix:main.profile - устанавливаю галку в поле "Проверять права доступа".
Копирую системный уровень доступа "Изменение своего профайла", называю его "Чтение своего профайла", в настройках убираю галку с поля "Редактирование своего профиля (edit_own_profile)" и оставляю только одну галку "Просмотр своего профиля (view_own_profile)".
В настройках "Главного модуля" устанавливаю доступ по умолчанию - "Чтение своего профайла".
В результате у пользователя (без группы) по умолчанию - отсутствует доступ к странице профиля (стандартная форма авторизации появляется). Если в новом созданном уровне доступа "Чтение своего профайла" добавить галку в поле "Редактирование своего профиля (edit_own_profile)" - доступ появляется, но с возможностью редактирования, а мне нужно разрешить только чтение.
Подскажите, пожалуйста, как решить проблему?
И второй вопрос: как сделать значения пользовательских полей доступными для редактирования только Администратору.
Для других полей я прописал свойство disabled в теге <input>, но пользовательские поля отображаются иначе, там нет этих тегов.
Заранее большое спасибо!!

P.S: Установлена последняя версия Битрикс "Управление сайтом".
спросил 24 Фев, 14 от Dayron (100 баллов)

3 Ответы

00 голосов
Сделал следующим образом:
1) Установил всем пользователям по умолчанию доступ - "Изменение своего профайла".
2) В шаблоне компонента bitrix:main.profile удалил кнопку "Сохранить".
В результате - пользователи могут менять значения полей, но не могут сохранить изменения.
Это, конечно, не совсем то, что требовалось, но в моей ситуации такой вариант вполне подошел.
Хотелось бы все-таки узнать, каким образом можно настроить возможность редактирования по каждому полю.
Например, я хочу, чтобы все пользователи видели значения заданных пользовательских полей, но не могли их изменять. Чтобы изменять значения этих полей мог только администратор.

Если кто-нибудь знает решение этой проблемы - напишите, плиз. Ни в одном мануале не нашел ответа на вопрос.
ответил 29 Июль, 14 от Dayron (100 баллов)
00 голосов
Для полей, которые пользователь не должен редактировать поставьте свойство readonly, либо, для xhtml, readonly="readonly", к примеру:
<input type="text" name="NAME" readonly maxlength="50" value="<?=$arResult["arUser"]["NAME"]?>" />
ответил 30 Ноя, 14 от Realms (180 баллов)
00 голосов
Спасибо. Для полей. заданных в шаблоне тегом <input> установка свойства readonly подойдет.

Но блок, где отображаются пользовательские поля, представлен в таком виде:

-------------------------------------------------------------------------------------------------------------
<?// ********************* User properties ***************************************************?>
<?if($arResult["USER_PROPERTIES"]["SHOW"] == "Y"):?>
<div class="profile-link profile-user-div-link"><a title="<?=GetMessage("USER_SHOW_HIDE")?>" href="javascript:void(0)" OnClick="javascript: SectionClick('user_properties')"><?=strLen(trim($arParams["USER_PROPERTY_NAME"])) > 0 ? $arParams["USER_PROPERTY_NAME"] : GetMessage("USER_TYPE_EDIT_TAB")?></a></div>
<div id="user_div_user_properties" class="profile-block-<?=strpos($arResult["opened"], "user_properties") === false ? "hidden" : "shown"?>">
<thead>   </thead> <tbody> <?$first = true;?> <?foreach ($arResult["USER_PROPERTIES"]["DATA"] as $FIELD_NAME => $arUserField):?> <?endforeach;?> </tbody>

<?if ($arUserField["MANDATORY"]=="Y"):?>
<span class="starrequired">*</span>
<?endif;?>
<?=$arUserField["EDIT_FORM_LABEL"]?>:

<?$APPLICATION->IncludeComponent(
"bitrix:system.field.edit",
$arUserField["USER_TYPE"]["USER_TYPE_ID"],
array("bVarsFromForm" => $arResult["bVarsFromForm"], "arUserField" => $arUserField), null, array("HIDE_ICONS"=>"Y"));?>

</div>
<?endif;?>
-------------------------------------------------------------------------------------------------------------

Как сделать доступным только для чтения этот блок?
ответил 25 Март, 15 от Dayron (100 баллов)

Похожие вопросы

0 голосов
7 ответов
0 голосов
4 ответов
0 голосов
3 ответов
0 голосов
3 ответов