Имеется задача разделить права доступа User Groups к кодам отделов (Departments, Dimension[1]). То есть, чтобы группа GR1 видела отделы D1 и D3, а D2 и В4 - не видела. А группа GR2 - наоборот, соответственно...
Имеем: табличку rvs_DeptUserSetup с двумя полями Dimension и UserGroupId, в которую и прописываем права доступа. То есть, если в табличке есть запись {GR1, D1}, то группа GR1 имеет доступ к коду отдела D1.
Затем, при помощи запроса:
PHP код:
if (_checkUserRights) {
select UserId from userGroupList
where userGroupList.userId == curUserId()
join rvs_DeptUserSetup
where userGroupList.GroupId == rvs_DeptUserSetup.UserGroupId &&
rvs_DeptUserSetup.Dimension[1] == sysDim;
if (userGroupList.RecId != 0 {
// Есть доступ!
}
}
легко определяем, имеет ли данный пользователь доступ к данному отделу.
Вопрос: как бы таким же образом отфильтровать список отделов в DimensionsLookup? Ну, НИЧЕГО в голову нейдет...