Вопрос
Назначение прав доступа для группы документов - одним кликом
31 мая 2010 10:46
Версия: 3.3.1.67 / MSSQL
Помогите пожалуйста разобраться:
Есть реестр раздела(ну любой в принципе). В нем выделены некоторые элементы (CTRL+Click) :
Var ParentItemIDs = GetAttribute(Self, 'ParentItemIDs');
var IDs = ParentItemIDs.CommaText.split(',');
var IDs = ParentItemIDs.CommaText.split(',');
Вот они у нас в массиве IDs.
ВОПРОС!
Как находясь в скрипте scr_AccessGridArea интерпретировать следующую задачу:
ЕСЛИ пользователь имеет права назначать или удалять или менять права доступа
ТО {
Назначить права доступа к элементам массива IDs значение, противоположное значению DataField.Name; Если было true -> false и наоборот.
Только для пользователя или группы, на чьем имени был кликнут тот или инной DataField (галочка) Изменить. Читать, Удалять
}
Нравится
1 комментарий
2 июня 2010 14:33
Игорь, реализовать данный функционал Вы можете доработав функцию dlDataOnDatasetDataChange скрипта scr_AccessGridArea.
function dlDataOnDatasetDataChange(DataField) { if ((DataField.Name == 'CanRead') || (DataField.Name == 'CanWrite') || (DataField.Name == 'CanDelete') || (DataField.Name == 'CanChangeAccess')) { var Dataset = DataField.ParentDataFields.ParentDataset; Dataset.Post(); // begin var AdminUnitID = Dataset('AdminUnitID'); var ParentItemIDs = GetAttribute(Self, 'ParentItemIDs'); if (ParentItemIDs.Count > 1) { var RightsDataset = GetItemRightDataset(AccessGridArea.TableUSI); RightsDataset.FetchRecordsCount = -1; RightsDataset.AutoRefresh = false; RightsDataset.DisableEvents(); try { var ParentItemID; for (var i = 0; i <= ParentItemIDs.Count - 1 ; i++) { ParentItemID = ParentItemIDs.Items(i); if (AccessGridArea.RecordID == ParentItemID) { continue; } ApplyDatasetFilter(RightsDataset, 'RecordID', ParentItemID, true); ApplyDatasetFilter(RightsDataset, 'AdminUnitID', AdminUnitID, true); RightsDataset.Open(); RightsDataset.GotoFirst(); while (!RightsDataset.IsEOF) { RightsDataset.Edit(); RightsDataset(DataField.Name) = DataField.Value; RightsDataset.Post(); RightsDataset.GotoNext(); } RightsDataset.Close(); } } finally { RightsDataset.EnableEvents(); } } // end Dataset.Edit(); } }
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать