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

Добрый день!

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

// на примере раздела "Контакты" и группы "Все пользователи".

Алгоритм:

1. Запустите TS Admin и откройте сервис wnd_ContactGridArea. В блок frmButtons добавьте новый Button, свойство Caption установите, к примеру, «Добавить права»:

1

2. На вкладке события, определите событие OnClick для созданной кнопки, и вставьте в функцию – обработчик следующий код:

function ButtonOnClick(Control) {  
         var Dataset = Services.GetNewItemByUSI('ds_Contact');
         Dataset.Open();
         while(!Dataset.IsEOF)
         {
                   var ParentItemID = Dataset.Values('ID');
                   var AdminUnitIDs = '{97490F89-2943-480D-9AFE-B1C95DE00010}';
                   var RightsDataset = GetItemRightDataset('tbl_ContactRight');
                   var SetFullAccess = true; //false            
                   RightsDataset.Close();
                   ApplyDatasetFilter(RightsDataset, 'RecordID', ParentItemID, true);
                   RightsDataset.Open();
                   var AdminUnitID = AdminUnitIDs;
                   var RecordIsFound = RightsDataset.Locate('AdminUnitID', AdminUnitID);
                   if (RecordIsFound) {
                            var ID = RightsDataset.Values('ID');
                            RightsDataset.Edit();
                            RightsDataset.ValAsBool('CanRead') = true;
                            if (SetFullAccess == true) {
                                     RightsDataset.ValAsBool('CanWrite') = true;
                                     RightsDataset.ValAsBool('CanDelete') = true;
                            }
                   } else {
                            var ID = Connector.GenGUID();
                            RightsDataset.Append();
                            RightsDataset.ValAsGUID('ID') = ID;
                            RightsDataset.ValAsGUID('RecordID') = ParentItemID;
                            RightsDataset.ValAsGUID('AdminUnitID') =AdminUnitID;
                            RightsDataset.ValAsBool('CanRead') = true;
                            if (SetFullAccess == true) {
                                     RightsDataset.ValAsBool('CanWrite') = true;
                                     RightsDataset.ValAsBool('CanDelete') = true;
                            }
                   }
                   RightsDataset.Post();
                   Dataset.GotoNext();                            
         }
         Dataset.Close();
}

3. Вместо var AdminUnitIDs = '{97490F89-2943-480D-9AFE-B1C95DE00010}'; подставьте ID группы все пользователи:

2

4. Сохраните изменения и протестируйте функционал.

Приятной работы с Terrasoft!

Нравится

Поделиться

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