Используя SDK для веб-службы, я смог добавить пользователя в WorkSpace и предоставить им доступ, однако WorkSpace не обновляется и поэтому у них есть доступ только к корневому и ничего больше.IManage WorkSite refile WorkSpace через SDK
Я знаю, что есть метод Refile()
, я просто не уверен, как выполнять реестр файлов и документов в WorkSpace.
В настоящее время у меня есть функция, которая предоставляет пользователю доступ к рабочему пространству, я протестировал и эта функция работает, следующее является частью функции, перед этим кодом я инициировал методы поиска WorkSpace, а приведенный ниже код выполняет итерацию через результаты поиска.
Dim retString As String = ""
For Each w As IManWorkspace In oDB.SearchWorkspaces(oparams, oWparams)
' Get the WorkSpace security container
Dim oSec As IManSecurity = w.Security
Dim oUACLs As IManUserACLs = oSec.UserACLs
' Grant the user the defined access
oUACLs.Add(sUserID, imAccessRight.imRightReadWrite)
' Apply the changes
w.Update()
' Refresh the Collection on the client
oUACLs.Refresh()
' TO DO: REFILE THE SUB-FOLDERS AND DOCUMENTS
retString = oUACLs.Contains(sUserID).ToString()
Next
Возвращение retString (на данный момент у меня есть жесткий кодированный определенный доступ пользователя к рабочему пространству, это будет изменено на значение динамического, прежде чем жить).
Как я уже есть объект WorkSpace, то
COM Разработчики Справочное руководство (стр 244)
говорит, что мне нужно, чтобы получить объект IManProfiledFolder, а затем получить профиль, принадлежащий к профилированной объект папка:
код:
Dim objProfFldr as IManProfiledFolder = w
ш будучи IManWorkSpace в моем коде выше Dim objProf as IManProfile = objProfFldr.Profile
Затем я могу получить объект безопасности WorkSpace через:
Dim oSecurity AS IManSecurity = w.SecurityAnd
положить это вместе, я предполагаю, что это делает полный Refile()
метод именоваться Refile(objProf, oSecurity)
.
Я просто не понимаю, как я применяю все это к рабочему пространству, нужно ли выполнять итерацию по всем подпапкам и применять метод Refile() к каждому документу, или я могу выпустить метод на уровне рабочей области что будет делать итерацию для меня?
Великий, спасибо за ответ я вроде думал, что это было слишком обнадеживающим.. что был бы волшебный метод, который мог бы сделать это для меня :) Спасибо также за указатели. – Lima