« 目次

Movable Type オブジェクト・リファレンス

MT::Permission

概要

use MT::Permission;
my $perms = MT::Permission->load({ blog_id => $blog->id,
        author_id => $author->id })
    or die "Author has no permissions for blog";
$perms->can_post
    or die "Author cannot post to blog";

$perms->can_edit_config(0);
$perms->save
    or die $perms->errstr;

解説

MT::Permissionオブジェクトは、1人の投稿者が特定のブログに対して持つ権限を表します。権限は操作ごとに設定され、各権限は投稿者とブログの組み合わせについてオン/オフで設定されます。権限はビットマスクの形で保存されます。

利用方法

MT::PermissionMT::Objectのサブクラスで、MT::Objectのデータ管理およびデータ保存用のメソッドをすべて継承していますので、新規オブジェクトの生成、既存オブジェクトの読み込み、オブジェクトの保存などの詳細については、MT::Objectのドキュメントを参照してください。

MT:Permissionインターフェース独自のメソッドは次のとおりです。set_full_permissionsメソッドを除く各メソッドは、オプション引数をつけて呼び出すことでオン/オフの設定ができます。trueと評価される値を引数に指定すると、その権限が有効になり、falseを引数にすると無効になります。引数を指定しない場合、現在の権限設定が返されます。

$perms->set_full_permissions

$permsで指定した投稿者とブログの組み合わせについて、すべての権限を有効にします。

$perms->can_post

投稿者がそのブログにエントリーの投稿ができ、そして投稿したエントリーの編集ができる場合にtrueを返し、できなければfalseを返します。

$perms->can_upload

その投稿者が、そのブログのブログ・ディレクトリにファイルをアップロードできる場合にtrueを返し、できなければfalseを返します。

$perms->can_edit_all_posts

その投稿者が、そのブログに投稿されたすべてのエントリー(自分の投稿でないものも含めて)を編集できる場合にtrueを返し、そうでなければfalseを返します。

$perms->can_edit_templates

その投稿者が、そのブログのテンプレートを編集できる場合にtrueを返し、そうでなければfalseを返します。

$perms->can_send_notifications

その投稿者が、そのブログの通知リストにメッセージを送れる場合にtrueを返し、そうでなければfalseを返します。

$perms->can_edit_categories

その投稿者が、そのブログに設定されたカテゴリーを編集できる場合にtrueを返し、そうでなければfalseを返します。

$perms->can_edit_notifications

その投稿者が、そのブログの通知リストを編集できる場合にtrueを返し、そうでなければfalseを返します。

$perms->can_edit_authors

その投稿者が、そのブログについての投稿者権限を編集し、そのブログにアクセスできる投稿者を追加することができる場合にtrueを返し、そうでなければfalseを返します。

この権限を投稿者に与えると、その投稿者は、そのブログへのあなたのアクセスを禁止することもできてしまいますので、注意が必要です。

$perms->can_edit_config

その投稿者が、そのブログの環境設定を編集できる場合にtrueを返し、そうでなければfalseを返します。この権限を与えられた投稿者は、ブログのエントリーをインポート/エクスポートする権限も持つということに注意してください。

データ・アクセス用メソッド

MT::Permissionオブジェクトは次のデータを格納します。これらのフィールドは、MT::Objectのドキュメントで説明したような標準的なデータ・アクセス用メソッドで参照あるいは設定できます。

id

権限レコードのIDです。

author_id

この権限レコードで権限を規定する投稿者のIDです。

blog_id

この権限レコードで権限を規定するブログのIDです。

role_mask

権限を表すビットマスクです。この値を直接編集してはいけません。必ず前述のcan_*メソッドを使うようにしてください。

entry_prefs

「エントリーの編集」ページの表示設定です。author_idが0のユーザーの設定が、このブログのデフォルトの設定となります。

template_prefs

「テンプレートの編集」ページの表示設定です。author_idが0のユーザーの設定が、このブログのデフォルトの設定となります。

データの検索

権限レコードの検索では、IDによる検索の他、次のフィールドの任意の組み合わせによる検索やソートを行うことができます。詳細はMT::Objectのドキュメントのloadメソッドの説明を参照してください。

  • blog_id
  • author_id

Copyright © 2001-2006 Six Apart, Ltd. All Rights Reserved.