Не работает групповое назначение прав во вкладке "Права доступа по умолчанию"

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

Права добавляются только на последний элемент выделенного списка

При редактирования большого числа груповых политик, это просто Адский труд

TS_XRM+ServiceDesk_SoftKey_RUS_Firebird_3.4.0.126

Нравится

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

Добрый день, Андрей!

Массовое изменение прав доступа работает несколько иным способом:

  1. Встаньте на группу пользователей, в модуле групп раздела Администрирование на представлении "Права доступа по умолчанию"
  2. Выделите ряд таблиц, которые администрируются по записям
  3. На детали "Права доступа" сфокусируйтесь на группе или пользователе, предварительно добавленным в деталь доступа по всем выделенным таблицам и измените доступ массово для одной роли во всех выделенных таблицах сразу.

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

Такое действие, как массовое добавление одного пользователя или группы в деталь доступа, не предусмотрена базовой логикой.

Здравствуйте, Андрей!

Групповое изменение при необходимости можно реализовать на уровне конфигурации.

Для этого следует добавить в функцию обработку выделенных записей реестра, например, заменив функцию SwitchTableGroupRightFieldValue на следующую:

function SwitchTableGroupRightFieldValues(FieldName) {
	var SelectedIDs = grdData.SelectedIDs.CreateCopy();
    if (!Assigned(SelectedIDs)) {
        return;
    }
    var RecordsCount = SelectedIDs.Count;
    if (RecordsCount <= 0) {
        return;
    }
    var Dataset = dlData.Dataset;
	Dataset.DisableEvents();
	try {
	    if (RecordsCount == 1) {
	        Dataset.Locate('ID', SelectedIDs.Items(0));
      	    Dataset.Edit();
       		Dataset.ValAsBool(FieldName) = !Dataset.ValAsBool(FieldName);
       		Dataset.Post();
			return;
	    }
		Dataset.Edit();
	    for (var i = 0; i <= RecordsCount - 1; i++) {
	  		Dataset.Locate(IDFieldName, SelectedIDs.Items(i));
			Dataset.ValAsBool(FieldName) = !Dataset.ValAsBool(FieldName);
		}
	  	Dataset.Post();	
		RefreshDataset(Dataset);  	
	} finally {
	    Dataset.EnableEvents();
	}	    
}

Обратите внимание, добавление прав будет касаться только пользователей, выделенных в нижнем окне:

defrights

Для того, чтобы учитывать записи, выбранные в верхнем реестре (Права доступа по умолчанию) необходимо реализовать дополнительную вложенность функции.

Анна Алимова а можно подробнее где найти эту функцию ?

Искал в users/ безуспешно :(

Андрей, этой функции в коробочной версии нет, я ее написала. Поэтому и привела полный текст функции в предыдущем посте.

Ее следует добавить в скрипт scr_TableDefaultRightGridArea и заменить везде. где в скрипте вызывается SwithTableDefaultRightFieldValue на SwithTableDefaultRightFieldValues:

SwithTableDefaultRightFieldValue

всё сделал, перезапустил FireBird, клиент тоже , не помогло всё по старому :sad:

Андрей, это именно то, на что я просила обратить внимание в комментарии

"Alimova Anna" написал:Обратите внимание, добавление прав будет касаться только пользователей, выделенных в нижнем окне:

defrights

Для того, чтобы учитывать записи, выбранные в верхнем реестре (Права доступа по умолчанию) необходимо реализовать дополнительную вложенность функции.

Для того, чтобы учитывались выбранные в верхнем реестре записи, необходимо по аналогии реализовать вложенную функцию, которая будет также в цикле проверять выделенные записи верхнего реестра, и применять изменения к ним.

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