Есть несколько проблем с правами.

Планирование
В разделе Настройка планирования на детали Доступ поставил права на запись, на детали Измерения поставил права на запись.
Также поставил права в разделе Планирование в детали Доступ. Тем не мене пользователи не могут пересчитать факт.

Мейлы
На мейлы права розданы нормально, но всй равно некоторые пользователи могут читать чужие, а проав у них на записи вообще никаких нет. Например, права на один мейл даны одной группе и пользователю, а писльмо видят все.

Права на деталь
Можно ли настроить права таким образом, чтобы пользователь имел только права чтения на запись, и права на запись в детали файлы? Попробовал настроить подобным образом, записывать в деталь всё равно не даёт.

Спасибо.

Нравится

11 комментариев

Добрый день, Виталий!

По вопросу планирования: просмотрите, пожалуйста, прикрепленный документ Настройка раздела ПЛАНИРОВАНИЕ.doc – в нем даны подробные рекомендации о там, как настроить данный раздел, и раздать права доступа на его измерения.

По вопросу настройки раздела E-mail: необходимо видеть скриншоты Ваших настроек прав доступа в разделе Администрирование, а также скриншот Детали[Доступ] в разделе E-mail для одного из почтового сообщения, о котором идет речь. Отправьте нам их, пожалуйста, на support@terrasoft.ru (с указанием номера инцидента по Вашему запросу в теле письма: 0110145).

По правам на деталь: рассмотрим пример Детали[Визы] в разделе Документы. Доступ на деталь можно назначать как на отдельный объект (группа таблиц), так и совместно с разделом системы - Документы, указав в сервисе таблицы Вызы tbl_DocumentVises параметр Группа таблиц (Parent Table Group) – DocumentVises.png.

В случае, если Вы желаете администрировать Деталь как отдельную группу таблиц, в разделе Администрирование :: Права доступа к группам таблиц, нажмите кнопку «Добавить». Укажите название как «Визы в документах», а имя объекта SQL: tg_VisesInDocuments (префикс tg_ - обязателен). Затем в серсвисе tbl_DocumentVises указать параметр Группа таблиц (Parent Table Group) равным «Визы в документах». В разделе Администрирование :: Права доступа к группам таблиц после этого можно будет настраивать доступ к Детали по новой записи «Визы в документах».

Может кто сталкивался...
Почему возникает такая проблем с доступом: не доступны все кнопки Добавить-Изменить-Удалить... в окне wnd_VisesDetailGridArea. Причём при обновлении окна они на доли секунды становятся доступны, но доступность сразу исчезает. У пользователя полные права. У пользователя с аналогичными правами всё работает.
Кэш чистил.
Что это может быть и как исправить?

Здравствуйте.

Свойство IsEnabled устанавливается в функции:

1

где главным параметром выступает переменная CanEditWorkspace, которая в свою очередь заполняется следующим образом:

2

т.е. зависит от прав доступа на текущую (выделенную в реестре) запись.
Таким образом, у Вас, скорее всего, пользователь не имеет полных прав на запись.

Пользователь входит в группу, которая имеет расширенные права (на документы у группы полный доступ). Конкретно этому логину помимо этого дал полные права - никакого эффекта.
Переустановка ТерраСофт с очисткой %USERPROFILE%\\Application Data\\Terrasoft решила проблему после мониторинга Windows по обращению к файлам и реестру.

Хммм! Вышеописанное произошло вчера. Только что, с начала дня пользователи включили компы и понеслось автообновление Винды. Тот же пользователь, которому вчера переустанавливал Террасофт сообщает о рецессии проблемы, т.к. времени на выяснение причин возникновения траблы не дали - могу сообщить, что было обновление Windows XP. Просто переустановил ТерраСофт.

Здравствуйте, Vadson.

Скорее всего Вам просто нужно очистить (удалить все содержимое) папки Cache:

Пуск-Выполнить-%Appdata%-Terrasoft-Cache.

Фокус с очисткой кэша не удался (сразу написал об этом). Хорошо, что до переустановки винды не дошло:wink:

Vadson, здравствуйте.

Предлагаю поставить отладчик в функции function DoPrepare(Window) и проверить чему равна переменная AccessLevel.

Снова возникла аналогичная проблема, но у другого пользователя. Быстренько переустановили Террасофт. Проблема не исчезла (доступа к визированию у пользователя не появилось). У данного пользователя к группе договоров права на чтение, добавление, изменение. Поставили дебагер. Когда дебагер работает - AccessLevel=2. Доступ есть. Отключаем дебагер и пользователь снова не может поставить визу. Насколько непонимаю, то GetCurrentRecordAccessLevel работает как-то совсем непонятно. Кэш чистил. Доступ без дебагера появляется только при внесении ещё доступа на удаление.

Добрый день.
В выражении var AccessLevel = WorkspaceGridDataset.GetCurrentRecordAccessLevel(); метод GetCurrentRecordAccessLevel() определен в ядре. Причиной поведения приложения, описанного Вами может быть взаимодействие приложения с сервером СУБД.

Попробуйте изменить функцию DoPrepare(Window) в сервисе Common\Details\Vises\wnd_VisesDetailGridAreaScript, приведите ее, например, к такому виду:

function DoPrepare(Window) {
	SetAttribute(Window, 'EditWindowUSI', 'wnd_VisesDetailEdit');
	var WorkspaceGridDataset =
		Window.ParentWindow.Attributes('WorkspaceGridDataset');
	SetAttribute(Window, 'WorkspaceGridDataset', WorkspaceGridDataset);
	var IsCanEditWorkspace = false;
    if (Assigned(WorkspaceGridDataset)) {
 
	    var VisesContactsDataset = GetSingleItemByCode('ds_VisesContacts', 'VisesContacts');
	    ApplyDatasetFilter(VisesContactsDataset, 'ContactID', Connector.CurrentUser.ContactID, true);
 
		VisesContactsDataset.Open();
 
		// старый способ назначения переменной AccessLevel 
		//var AccessLevel = WorkspaceGridDataset.GetCurrentRecordAccessLevel();
 
		var AccessLevel = (VisesContactsDataset.RecordsCount > 0) ?  tfalFullAccess : tfalReadAccess;
	    IsCanEditWorkspace = (AccessLevel == tfalFullAccess);
	}
	SetAttribute(Window, 'CanEditWorkspace', IsCanEditWorkspace);
	wnd_BaseGridAreaOnPrepare(Window);
}

Спасибо Павел!!!! Работает.

Показать все комментарии

Вопрос:
Как запретить доступ сотруднику на просмотр детали Журнал изменений в разделах?

Решение:
Нужно внести изменения в функцию DoShowChangesLogDetail скрипта scr_BaseWorkspace, и дописать проверку на то, что является ли текущий пользователь администратором

if (!Connector.CurrentUser.IsAdmin) {
            return false;
}

Данный скрипт реализует следующее: пользователям не будет отображаться деталь [Журнал изминений], только администратору будет доступна данная деталь.

function DoShowChangesLogDetail(CustomGridTable) {
      if (!Connector.CurrentUser.IsAdmin) {
            return false;
      }
      if (Assigned(CustomGridTable)) {
            BaseWorkspace.GridTable = CustomGridTable;
            return true;
      }
      var ShowChangesLogDetail = false;
      try {
          try {
            BaseWorkspace.GridTable =
                        BaseWorkspace.GridDataset.SelectQuery.Items(0).FromTable;
            ShowChangesLogDetail = BaseWorkspace.GridTable.IsTrackChanges;
            } catch(e) {
            }
      } finally {
            return ShowChangesLogDetail;
      }
}

P.S После того как опубликовал нашел тему Татьяны Адамчук
Как сделать доступным "Журнал изменений БД" для конкретной группы пользователей
http://www.community.terrasoft.ru/blogs/2718
Предлагаю также ознакомиться с альтернативным решением

Нравится

Поделиться

0 комментариев
Показать все комментарии