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

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

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

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.Members.GroupsMap

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(); // 反映させるには、最後に必ず保存を実行してください