新 サブサイト→トップレベルサイト -(3)- ユーザーとクロスサイトグループのコピー [技術情報]
今回はユーザーとクロスサイトグループに関してです。
ユーザーとクロスサイトグループはロールと密接につながっているようです。
ユーザーを追加する際は下記の命令で実装できます。
NewRole.AddUser(ログイン名 as string 、メールアドレス as string 、
ユーザー名 as string 、備考 as string )
クロスサイトグループを追加する際は下記の命令で実装できます。
NewRole.AddGroup(グループ as SPGroup)
そこで下記のように実装してみました。前回作成したNewRoleに対してユーザーとクロスサイトグループを追加しています。
'--- Target Role Users
For Each TargetUser In TargetRole.Users
'--- Flag Initialed
Flg = False
'--- New Role Users
For Each NewUser In NewRole.Users
'--- Target Role Check
If TargetUser.LoginName = NewUser.LoginName Then
Flg = True
Exit For
End If
Next
'--- Flag Check
If Flg = False Then
'--- Role Add
NewRole.AddUser(TargetUser.LoginName, TargetUser.Email, TargetUser.Name, TargetUser.Notes)
End If
For Each TargetGroup In TargetRole.Groups
'--- Flag Initialed
Flg = False
'--- New Role Groups
For Each NewGroup In NewRole.Groups
'--- Target Role Check
If TargetGroup.Name = NewGroup.Name Then
Flg = True
Exit For
End If
Next
'--- Flag Check
If Flg = False Then
'--- Role Add
NewRole.AddGroup(TargetGroup)
End If
うーん、美しくないですねぇ。誰かもっと美しい方法があれば教えてください。
とりあえずはこれでユーザーとクロスサイトグループをコピーすることができました。
次回はやっかいなリストに入ります