複数の
GAM リポジトリ内で、
GAM ユーザーを有効にできます。これによって、ユーザーは有効化されたリポジトリに接続できるようになります。
ユーザーがリポジトリに接続するには、リポジトリが有効になっている場合のみで、一度に 1 つのリポジトリに接続することができます。
GAM のセキュリティポリシー、
GAM アクセス許可、そして
GAM ロールは、ユーザーが接続しているリポジトリの
GAM アプリケーションから取得されます。
ユーザーが 1 つ以上のリポジトリで有効になっているシナリオは、会社に異なる支店があり、ユーザーが同じ資格情報を使って、いずれかの支店に接続する場合です (ユーザーは、各会社でアクセスレベルが異なる可能性があります)。このシナリオの詳細については、「
Multiple Repositories Scenario: A company with different branches」を参照してください。
リポジトリ内でユーザーを有効にするための条件は、リポジトリとして同じ名前空間を持つことです。
GAM 接続がそのリポジトリに確立されている場合にのみ、リポジトリにユーザーを作ることができます。そして、ユーザーの名前空間は、ユーザーが作成されている
リポジトリの名前空間で常に初期化されます。
既定では、作成されたリポジトリ内のユーザーは自動的に有効になります。
さらに、リポジトリがユーザーと同じ名前空間を持つ限り、他のリポジトリでユーザーを有効にすることができます。
GAMExampleWWUsers オブジェクトを見てみましょう。そこではリポジトリ内で有効かどうかに関係なくユーザーがリストされ、それぞれの場合で異なるルック & フィールで表示されます。
有効なユーザーのみ、無効なユーザーのみ、またはすべてのユーザーをリストするには、
GAMUserFilter オブジェクトの
[ IsEnabledInRepository ] プロパティを使用します (次のコードを参照):
&Filter_Name.IsEnabledInRepository = GAMBooleanFilter.False //値が TRUE、FALSE、ALL であるドメインタイプ
&Users= GAMRepository.GetUsersOrderBy(&Filter_Name, GAMUserListOrder.None, &Errors)
現在の GAM リポジトリ (GAM 接続の確立先) 内でユーザーを有効または無効にするためのコードは次のとおりです:
&User.Load(&UserId)
If &User.IsEnabledInRepository
&isOK = &User.RepositoryDisable(&Errors)
Else
&isOK = &User.RepositoryEnable(&Errors)
EndIf
If not &isOK
For &Error in &Errors
Msg(Format(!"%1 (GAM%2)", &Error.Message, &Error.Code))
EndFor
EndIf
GAMUser オブジェクトの [
IsEnabledRepository ] プロパティの目的は、ユーザーが GAM リポジトリで有効かどうかを知ることです。このプロパティは、Boolean データタイプを返します。
&User.Load(&UserId) //&UserId は GAMGUID データタイプ
&IsEnabledInRepository = &User.IsEnabledInRepository
[ User Activation Method ] リポジトリプロパティ