パンプキンスパイスラテ

IT系のことが多めの日記帳です

ログイン後に指定した画面を開くプラグインを公開しました

ログイン後、通常ダッシュボード画面が開かれますが、このプラグインを導入することで、どの画面でも一番最初に開くことができます。(もちろん権限がある場合)
今はソースに直にログイン先を記述していますが、いつか設定画面で登録できるようになる、かも。

設置方法

plugins
`-- FirstAccsessURL.pl

プラグインディレクトリに放り込んでください。

ソース

package MT::Plugin::FirstAccsessURL;
use strict;
use base qw(MT::Plugin);
use MT;

our $VERSION = '1.0';

my $plugin = MT::Plugin::FirstAccsessURL->new({
  name        => 'FirstAccsessURL',
  version     => $VERSION,
  author_name => 'takeru-c',
  author_link => 'http://d.hatena.ne.jp/takeru-c/',
  description => '指定した画面にログインします。',
  registry => {
    applications => {
      cms => {
        methods => {
          'dashboard' => \&_dashboard,
        },
      },
    },
  },
});

MT->add_plugin($plugin);

no warnings qw(redefine);
my $FirstAccsessURL = MT->config->CGIPath . 'mt.cgi?__mode=list_blog';

sub _dashboard {
    my $app = shift;
    my (%param) = @_;

    #ログインページから来た場合
    if ( $app->request('fresh_login') ) {
       $app->redirect( $FirstAccsessURL );
    }
    
    #dashboardメソッドへ戻す
    require MT::CMS::Dashboard;
    MT::CMS::Dashboard::dashboard( $app, %param );
}

1;

まぁ特に解説することもないけど(でもこれ作るのに超時間がかかった。結局は超シンプルに簡単にできたんだけど><)、ダッシュボードを開いた時に、ログインページから来た場合にのみ指定した画面へリダイレクトしているだけ。ログインページからじゃなければ、通常のダッシュボードの処理メソッドへ処理を流してます。これだけ見ると簡単なのに><

ダウンロード

下記からダウンロードできます。
http://www.hachikun.com/mt_plugin/FirstAccsessURL.zip