Тема: Временно дать пользователю права на объект

Пытаюсь дать пользователю временно права на редактирование объекта, не получается:

Sub Form_BeforeShow(Form, Obj)
...
    Obj.Permissions = SysAdminPermissions
...
End Sub

На форме есть кнопка типа "Изменить...", по ней открывается (EditObjectDlg) эта форма, нужно здесь временно разрешить пользователю редактирование...

Re: Временно дать пользователю права на объект

A77x7 пишет:

Пытаюсь дать пользователю временно права на редактирование объекта, не получается:

Sub Form_BeforeShow(Form, Obj)
...
    Obj.Permissions = SysAdminPermissions
...
End Sub

На форме есть кнопка типа "Изменить...", по ней открывается (EditObjectDlg) эта форма, нужно здесь временно разрешить пользователю редактирование...

Так точно не получится. И что-то я сомневаюсь, что это вообще возможно. Поспрашиваю у гуру TDMS. Первое и единственное, что приходит в голову - дать временно пользователю все права на объект, например, сделав его администратором (владельцем). Тут потом главное вовремя отнять  :D

(изменено: Edhunter, 26 сентября 2014г. 11:34:45)

Re: Временно дать пользователю права на объект

SysAdminPermissions в таком ключе не работает.
Недавно потребовалась аналогичная задача, решил созданием временного статуса "Редактирование, и следующим кодом

  o.Permissions = SysAdminPermissions
  Set oOrg = o.Attributes("ATTR_ACC_CONCLUSION_APPLICATION_LINK").Object.Attributes("ATTR_APPLICATION_ORG").Object
  oOrg.Permissions = SysAdminPermissions
  sOrgVerName = oOrg.VersionName
  sOrgVerDescri0ption = oOrg.VersionDescription
  sStatusName = oOrg.StatusName

  oOrg.Versions.Create , "Изменение сведений на основании " + o.Description
  oOrg.Status = ThisApplication.Statuses("STATUS_CHANGE")
  oOrg.Update
  Set dEdit = ThisApplication.Dialogs.EditObjectDlg
    dEdit.Object = oOrg
  If dEdit.Show Then
    o.StatusName = "STATUS_CONCLUSION_SO_CHANGE_DONE"
    oOrg.StatusName = "STATUS_ORG_REGISTERED"
  Else
    oOrg.Status = ThisApplication.Statuses(sStatusName)
    oOrg.Versions.Remove sOrgVerName

    oOrg.VersionName = sOrgVerName 
    oOrg.VersionDescription = sOrgVerDescri0ption 
  End If

Скрипт конечно содержит много лишнего, вроде создания версии

Re: Временно дать пользователю права на объект

Да, неплохой вариант, кстати, спасибо.
У меня по другому всё решилось, само собой как-то:
Для редактирования объекта использовал независимые контролы (листбокс, кнопки и т.п.) и я у них просто Проверку прав отключил.
Получилось даже лучше чем ожидал, часть формы недоступна (с контролами-атрибутами), а другая часть доступна (с независимыми контролами).
+ небольшие проверки прав в коде независимых контролов, ну если пользователю реально нельзя этот объект редактировать...