ADN Open CIS
Сообщество программистов Autodesk в СНГ

13/04/2014

Лёгкое программирование под Autodesk Vault. Часть 13

НазадСодержаниеДалее

Для получения информации пользователя необходимо вызвать методов Get*:

Объект

Опция

Название метода

AllUsers

 

GetAllUsers

User

ByUserId

GetUserByUserId

MemberUsers

ByGroupId

GetMemberUsersByGroupId

UserInfo

ByUserId

GetUserInfoByUserId

UserInfos

ByUserIds

GetUserInfosByUserIds

Самый простой – это GetAllUsers(), который возвращает всех пользователей, и при этом не требует входных параметров. После этого вы можете вывести все объекты, либо отфильтровать необходимые. В PowerShell фильтрацию можно  осуществить при помощи командлета Where-Object:

Код - PowerShell: [Выделить]
  1. Add-Type -Path "c:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.DataManagement.Client.Framework.Vault.Forms.dll"
  2. $global:g_login=[Autodesk.DataManagement.Client.Framework.Vault.Forms.Library]::Login($null)
  3. # Получаем всех пользователей
  4. $allUsers = $g_login.WebServiceManager.AdminService.GetAllUsers()
  5. #Осуществляем выборку по всем активным пользователям
  6. $activeUsers = $allUsers | Where-Object{$_.IsActive -eq $true}
  7. #Аналогично вы можете найти пользователя по имени
  8. $UserName = 'Босх'
  9. $User1 = $groups | Where-Object{$_.Name -eq $UserName}

Зная ID пользователя, можно получить конкретного пользователя.

Код - PowerShell: [Выделить]
  1. Add-Type -Path "c:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.DataManagement.Client.Framework.Vault.Forms.dll"
  2. $global:g_login=[Autodesk.DataManagement.Client.Framework.Vault.Forms.Library]::Login($null)
  3. $UserID = 2
  4. $GroupId = 'Художники северного возрождения'
  5. # Получаем и выводим пользователей по имеющимся данным
  6. $user1 = $g_login.WebServiceManager.AdminService.GetUserByUserId($UserID)
  7. $user1 | Out-GridView -Title ('Пользователь с ID='+ $UserID)
  8. $users1 = $g_login.WebServiceManager.AdminService.GetMemberUsersByGroupId($GroupId)
  9. $users1 | Out-GridView -Title ('Пользователи группы с ID='+ $GroupId)

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

Код - PowerShell: [Выделить]
  1. Add-Type -Path "c:\Program Files (x86)\Autodesk\Autodesk Vault 2014 SDK\bin\Autodesk.DataManagement.Client.Framework.Vault.Forms.dll"
  2. $global:g_login=[Autodesk.DataManagement.Client.Framework.Vault.Forms.Library]::Login($null)
  3. $UserID = 2
  4. $UserIDs = 2,3
  5. # Получаем информацию по пользователям на основании имеющихся данных
  6. $groupInfo = $g_login.WebServiceManager.AdminService.GetUserInfoByUserId($UserID)
  7. $groupInfo.Roles | Out-GridView -Title ('Роли пользователя с ID='+$UserID)
  8. $groupInfo.User| Out-GridView -Title ('Информация пользователя с ID='+$UserID)
  9. $groupInfo.Vaults | Out-GridView -Title ('Хранилища, доступные пользователю с ID='+$UserID)
  10. $groupsInfos = $g_login.WebServiceManager.AdminService.GetUserInfosByUserIds($UserIDs)
  11. $groupsInfos | Out-GridView -Title ('Информация пользователей с ID='+$UserIDs)

Автор: Дмитрий Емельянов
Автор перевода: Дмитрий Емельянов

Обсуждение: http://adn-cis.org/forum/index.php?topic=676

Опубликовано 13.04.2014
Отредактировано 06.08.2014 в 15:01:56