カスタムグループのプロバイダ

Kanboardは外部システムからグループを読み込むことができます。この機能は主にプロジェクトの権限に使用します。

プロジェクトマネージャーはグループに対してプロジェクトへのアクセスを許可することができます。エンドユーザーはグループの検索ボックスでオートコンプリートを使えるようになるでしょう。

グループのクエリが実行される都度、全てのグループプロバイダが実行されます。

グループプロバイダのワークフロー

  1. エンドユーザーがグループ名をオートコンプリートのフィールドに入力を始める
  2. GroupManager クラスが全てのグループプロバイダに跨ってクエリを実行する
  3. 結果がマージされてユーザーインターフェースに返される
  4. グループを選択した後は、グループの情報は必要に応じてローカルのデータベースと同期されます。

グループ情報提供インターフェース

Kanboard\Core\Group\GroupProviderInterface にインターフェースが実装されています。

このグループ情報を要約するインターフェースに実装されているクラスには、たった3つのメソッドしかありません:

  • getInternalId(): 内部データベース上のIDを取得、もしくは0を返す
  • getExternalId(): ユニークな外部IDを取得する
  • getName(): グループ名を取得する

Kanboard は外部IDをローカルのデータベースと同期するのに使用するでしょう。

グループのバックエンドプロバイダのインターフェース

Kanboard\Core\Group\GroupBackendProviderInterface にインターフェースが実装されています。

このインターフェースは find($input) メソッドのみを要求します。引数 $input はユーザーインターフェースから入力されたテキストです。

このメソッドは検索結果を``GroupProviderInterface``のリストで返す必要があります。

プラグインからバックエンドを登録する

initialize() メソッドはカスタムバックエンド同様、以下の要領でプラグインを登録します:

$groupManager->register(new MyCustomLdapBackendGroupProvider($this->container));