68
обладает рядом прав на свой каталог и остальные каталоги, которые ему не
принадлежат, естественно, помимо тех пользователей, которые являются
рядовыми сотрудниками компании. Из этого следует, что независимо от прав
на собственный каталог, две первые группы облают правом на каталоги,
уровни, вложенности которых полностью соответствуют данной группе, т.е.
первая группа обладает правами на каталоги уровень вложенности которых
равен «а», и всю совокупность каталогов ниже этого уровня, а второй группе
«b» и вся совокупность каталогов ниже, но с учетом отдела. Для
руководителя все просто, он обладает правами на корневой каталог, а в
полномочия начальников отдела входят права на каталоги, принадлежащие
данному отделу, поэтому необходимо произвести дополнительную выборку
каталогов, на которые имеют право доступа пользователи, включенные в
состав группы начальника отдела. Для этого из пути, который принадлежит
пользователю и предварительно разбит на уровни вложенности, в
переменную «х» следует записать значение уровня вложенности «b» и
произвести поиск вхождения «х» в перечень всех каталогов. Таким образом,
становится известен путь к каталогам, находящимся в юрисдикции
начальников отделов. В завершении необходимо лишь дописать эти пути в
массив, посредством добавления новой строки в массив, а также добавить
соответствующие права доступа для групп:
группа1; пользователь 1; каталог 1; права 1; администратор; «f»;
группа2; пользователь 2; каталог 1; права 2; администратор; «f»;
группа2; пользователь 2; каталог 2; права 2; администратор; «f»;
группа2; пользователь 3; каталог 3; права 2; администратор; «f»;
группа2; пользователь n-1; каталог n-1; права 2; администратор; «f»;
группа2; пользователь n; каталог n; права 2; администратор; «f»;
группа2; пользователь n+1; каталог n+1; права 2; администратор; «f»;
группа 3; пользователь х; каталог х; права 3; администратор; «f»;
Таким образом, сравнив пользователей, каталоги, и права