Здравствуйте! Такая проблема. Сначала были созданы записи, потом настроен доступ. Теперь необходимо для определенной роли дать доступ на изменение записей. Попробовал через вставку в SysRight объекта. На детали пишет, что доступы есть. Но при попытке изменения выдает ошибку "У вас нет прав на изменение записи"
Существует ли функция, которая позволит дать доступ на изменение записи из кода?
Подозреваю, что у Вас объект также администрируется по операциям.
Доступ на изменение записи есть, а на операцию "Изменение" в объекте - нету.
Т.к. по иерархии прав доступ по операциям приоритетнее, выдается сообщение об отсутствии доступа.
Подозреваю, что у Вас объект также администрируется по операциям.
Доступ на изменение записи есть, а на операцию "Изменение" в объекте - нету.
Т.к. по иерархии прав доступ по операциям приоритетнее, выдается сообщение об отсутствии доступа.
Андрей, спасибо! Да, стояла галочка в объекте "Администрируется по операциям". Галочку убрал, но для записей по-прежнему выдается ошибка доступа на изменение. Что еще необходимо сделать?
Эмин, проверьте, действительно ли у пользователей есть права именно на изменение записи, а не на чтение:
В таблице Sys[объект]Right за изменение отвечает значение 1 колонки Operation.
Проверил, там стоит галочка, а не ключик. Как я понял, галочка дает доступ на что-либо, а ключик еще и право этот доступ разрешать\запрещать.
Пока решил проблему добавив право на изменение любых записей для одной роли. Т.к. разрешение на чтение работает корректно, то сработает принцип "не увидишь - не изменишь".
Здравствуйте! Два вопроса по администрированию пользователей
1. Ограничить доступ к вкладке, к примеру, "Маркетинг"
2. Закрыть для обычных пользователей детали "входит в группы", "взаимосвязи"
1. Управлять доступом непосредственно на Рабочие места не получится. Но, ограничив доступ на все разделы в данном рабочем месте, рабочее место пропадет из представления автоматически.
Для того, чтобы запретить доступ к разделу пользователю/группе пользователей, необходимо активировать администрирование по операциям и добавить запрет на все типы операций на раздел:
2. С помощью базовых средств настройки Вы можете скрыть данные детали для всех пользователей целиком в настройке рабочих мест, удалив деталь для определенного раздела:
Если необходимо скрыть детали для конкретной роли, то необходимо реализовать дополнительную логику на этапе инициализации раздела.
Спасибо за ответ.
По поводу детали. Деталь "Доступ" скрыть не удается. Она не отображается при настройке рабочих мест, соответственно ее нельзя удалить. Но если мы заходим в реестр любого модуля, то видим в деталях вкладку "Доступ". Данная вкладка доступна обычным пользователям. Как можно ее скрыть?
Если объект раздела администрируется по записям, то в разделе появляется деталь "Доступ". Это заложено в ядре.
Тем не менее, если Вы желаете эту деталь скрыть для отображения для пользователей без прав системного администратора, но при этом, чтобы объект администрировался по записям, необходимо в ScriptTask для события PageLoadComplete раздела прописать следующий код:
Guid roleId =new Guid("83A43EBC-F36B-1410-298D-001E8C82BCAD");//системные администраторы
Guid currentUserId = UserConnection.CurrentUser.Id;
var esq =new EntitySchemaQuery(UserConnection.EntitySchemaManager, "SysUserInRole");
esq.AddColumn("Id");
esq.AddColumn("SysRole");
esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.NotEqual,
"SysUser", currentUserId));
var rolesCollection = esq.GetEntityCollection(UserConnection);
foreach(var role in rolesCollection){if(role.GetTypedColumnValue<Guid>("SysRoleId")== roleId){for(var i =0; i != Page.DetailsTabPanel.Tabs.Count-1; i++){if(Page.DetailsTabPanel.Tabs[i].Caption.ToString()=="Доступ"){
Page.DetailsTabPanel.Tabs[i].Visible=false;}}}}returntrue;
Спасибо за помощь, разобрался.
Чтобы не создавать темы, спрошу в этой.
Пытаюсь добавить в едином окне реестр с обращениями. Создаю страницу реестра обращений в едином окне, которая наследуется от реестра обращений. Но в едином окне, реестр обращений не отображаются, а кнопки добавления, изменения и тп недоступны
Эмин, необходимо выгрузить данные, сами они туда не попадут.
На событии PageLoadComplete следует получить экземпляр источника данных, при необходимости наложить фильтры и выполнить LoadRows().
Очень наглядный пример есть в методе PrepareSchedule(), процесса страницы ManagersModulePage.
Еще раз по разграничению доступа к вкладкам (Маркетинг, Продажа и тп). К примеру доступ к вкладке Инструменты доступен только админам, необходимо сделать по аналогии, чтобы каждой роли была видна своя вкладка и все. В каком Процессе скрывается вкладка Инструменты?
Администрирования доступа к рабочим местам не существует. Рабочее место будет скрыто, если у пользователя нет прав доступа на все разделы, которые включены в данное рабочее место.