Функция DostObj()

При помощи этой функции производится проверка прав доступа данного Сотрудника к данному Объекту.  В ней скрыты все обращения к файлам подсистемы разделения доступа.  Защищаемые процедуры могут ничего не знать даже о существовании этих файлов, им достаточно обратиться к функции DostObj().

DostObj( Obozn, CurKateg )     Проверить права доступа к объекту

Obozn       - Условное обозначение объекта в соответствии со Справочником Объектов.
CurKateg - Категория доступа текущего пользователя

Возвращает байт прав доступа.  Если нет никаких ограничений доступа, то возвращает нуль.   Каждый бит в байте возвращаемого значения отвечает за доступ к чему-либо следующим образом:

Прототип: DostObj( String, <Short> ), Short

DostObj FUNCTION (Obozn,CurKateg)

  CODE


checkOpen( Dostup, 1 )
checkOpen( Object, 1 )

obj:Obozn = Obozn
get( Object, obj:Obozn_key )
if errorcode()
  Message(' Доступ. Нет обьекта: ' & Obozn, ' Ошибка', icon:Question )
  return( 0 )
.

if omitted( 2 )
  dos:KategCode = GetMOL_Kateg( G:SCode )
else
  dos:KategCode = CurKateg
.
dos:ObjectId = obj:Id
get( Dostup, dos:Kateg_key )
if errorcode()
  r# = 0   ! По умолчанию доступ разрешен
else
  r# = dos:OpenFlag + dos:InsertFlag*2 + dos:ChangeFlag*4 + dos:DeleteFlag*8 + |

       dos:OkFlag*16 + dos:UtwFlag*32 + dos:RUtwFlag*64 + dos:PrintFlag*128
.
return( r# )


Функция сначала открывает файлы и проверяет, есть ли в Справочнике Объектов обьект с заданным обозначением Obozn.  Если его нет, то пользователю выводится предупреждающее сообшение об этом, которое напоминает о том, что этот объект надо добавить в Справочник Объектов.

Далее проверяется наличие второго аргумента у функции (каегории доступа текущего пользователя).   Если категория не указана, то берется категория текущего (зарегистрированного при входе) пользователя, по его коду, который содержится в глобальной переменной G:SCode.   Категория доступа по Коду пользователя определяется при помощи функции GetMOL_Kateg().

Затем производится чтение записи о правах доступа даной Категории в файле Dostup и формируется байт возвращаемого значения.

Для вызова функции DostObj() имеются специальные шаблоны, которые анализируют ее возвращаемое значение и выполняют соответствующие ограничения доступа к объекту:

Hosted by uCoz