グループを操作する(メンバプラグイン)

ここでは、メンバーインスタンスにおけるグループを、SDKから操作する方法について解説します。

グループオブジェクトECHO.MembersGroupObject

MembersGroupObjectは、グループを操作するためのオブジェクトです。

オブジェクトを生成する

新しいグループをオブジェクトとして生成するには、コンストラクタの第一引数にメンバーインスタンスのIDを指定します。

var group = new ECHO.MembersGroupObject("メンバーインスタンスID");

既存のグループをオブジェクトとして生成するには、コンストラクタの第二引数にグループIDを指定します。

var group = new ECHO.MembersGroupObject("メンバーインスタンスID", "グループID");

オブジェクトフィールド

グループオブジェクトは、以下のフィールドを持ちます。

フィールド名説明変更
refid String グループID ×
name String グループ名

変更不可フィールドは、サーバーから提供される静的な情報です。

フィールドからデータを取得する

フィールドからデータを取得する場合は、getメソッドを使用します。

var name = group.get("name");

フィールドにデータをセットする

オブジェクトのフィールドにデータをセットするには、putメソッドを使用します。

group.put("name", "新しいグループ");

サーバーへグループを保存する

サーバーへグループを保存するには、pushメソッドを使用します。

var group = new ECHO.MembersGroupObject("メンバーインスタンスID");

group.put("name", "新しいグループ"); // グループ名をセット
....

// グループを保存
var promise = group.push();

// コールバックを定義
promise.then(function(success) { // 成功時
    console.log("Complete: " + success);
}, function(error) { // 失敗時
    console.log("Complete: " + error);
});

サーバーからグループを取得する

サーバー上に存在する既存のグループを取得するには、fetchメソッドを使用します。

var group = new ECHO.MembersGroupObject("メンバーインスタンスID", "グループID");

// グループデータを取得
var promise = group.fetch();

// コールバックを定義
promise.then(function(success) { // 成功時
    console.log("Complete: " + success);
}, function(error) { // 失敗時
    console.log("Complete: " + error);
});

サーバーからグループを削除する

サーバー上に存在する既存のグループを削除するには、deleteメソッドを使用します。

var group = new ECHO.MembersGroupObject("メンバーインスタンスID", "グループID");

// グループデータを削除

var promise = group.delete();

// コールバックを定義
promise.then(function(success) { // 成功時
    console.log("Complete: " + success);
}, function(error) { // 失敗時
    console.log("Complete: " + error);
});

現在のACLを取得する

オブジェクトに現在設定されているACLを取得するには、getACLメソッドを使用します。

var current_acl = group.getACL();

ACLを変更する

オブジェクトに新しいACLを設定するには、setNewACLメソッドを使用します。

var new_acl = new ECHO.ACL(); // ACLオブジェクトを生成
new_acl.putEntryForAll(new ECHO.ACL.Entry(false, false, false, false)); // 例:非ログイン訪問者の操作権限を全て奪う

group.setNewACL(new_acl); // 新しいACLをセット

group.push(); // セットしたACLを反映させるには、最後に必ず保存を実行してください

グループマップECHO.MembersGroupsMap

MembersGroupsMapは、ツリー構造を持つグループマップを再帰的に表現します。

オブジェクトを生成する

ルートから最下層までを対象とした全グループマップをオブジェクトとして生成するには、第一引数にブログインスタンスまたはデータベースインスタンスのIDを指定します。

var groups_map = new ECHO.MembersGroupsMap("メンバーインスタンスID"); // 全グループマップオブジェクトを生成

特定のグループをルートとしたサブグループマップをオブジェクトとして生成するには、第二引数にルートとなるグループIDを指定します。

var groups_map = new ECHO.MembersGroupsMap("メンバーインスタンスID", "グループID"); // サブグループマップオブジェクトを生成

ルートグループを取得する

グループマップからルートグループを取得するには、nodeプロパティを参照してください。

子サブグループマップを取得する

ルートグループの下層に属するサブグループマップ群を取得するには、childrenプロパティを参照してください。

サーバーからグループマップを取得する

サーバーからグループマップを取得するには、fetchメソッドを使用し、サーバーから現在のグループマップを取得します。

// グループマップを取得
var promise = groups_map.fetch();

// コールバックを定義
promise.then(function(success) { // 成功時
    console.log("Complete: " + success);
}, function(error) { // 失敗時
    console.log("Complete: " + error);
});

グループの所属階層を変更する

グループの所属階層を変更するには、グループオブジェクトのsetNewParentメソッドを使用します。

var newParent = ECHO.MembersGroupObject("メンバーインスタンスID", "新しい親グループID");

group.setNewParent(newParent); // 新しい親グループをセット

group.push(); // 反映させるには、最後に必ず保存を実行してください