SSブログ

新 サブサイト→トップレベルサイト -(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
 

うーん、美しくないですねぇ。誰かもっと美しい方法があれば教えてください。

とりあえずはこれでユーザーとクロスサイトグループをコピーすることができました。

次回はやっかいなリストに入ります


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。