Authentication::Store::HTTP

作った。

昨日の夜書いた問題により、$c->login のオーバーライドという暴挙に出ているため、Credential 系プラグインよりも先にロードする必要がありますw

Cred プラグインを選べるので、::Basic::Remote よりは良くなってはいる。

by typester / at 2006-03-15T16:51:00 / perl · catalyst / Comment

でもこんな感じで

sub get_user {
    my ( $self, $id, $password ) = @_;

    $self->{ua} ||= LWP::UserAgent->new;

    my $request = HTTP::Request->new( HEAD => $self->{auth_url} );
    $request->headers->authorization_basic( $id, $password );

    my $response = $self->{ua}->request( $request );

    return unless $response->is_success;

    my $user = {
        id => $id,
        password => $password,
        store => ref $self || $self,
    };

    return bless $user, 'Catalyst::Plugin::Authentication::User::Hash';
}

みたいに Authentication::CDBI::Basic::Remote ぽいのを再実装しようとして詰まった。

こうやってかけるようにならねーかなぁ。

by typester / at 2006-03-15T02:40:00 / catalyst / Comment

Catalyst::Plugin::Unicode

とかあったんだ! ほとんど同じやつ作ってた。

入れ替えた。

HTML::FillInForm::ForceUTF8 : blog.nomadscafe.jp

ただ、Catalyst::Plugin::UnicodeやDBIx::Class::UTF8Columns、Class::DBI::utf8などを使っている場合、必要ないかも。

必要ないんですが、プラグインのロード順に気をつける必要があります。

というのも Unicode も FillInForm もどちらも finalize をオーバーライドしているので、Unicode のほうがあとに実行されるように

use Catalyst qw/FillInForm Unicode/;

と FillInForm よりも後ろに書いておく必要があります。

BKだなぁ。

kazeburo さんのやつをつかえばこれに気をつける必要もなくなるのでいいかも。

by typester / at 2006-03-09T21:36:00 / perl · catalyst / Comment

ForceUTF8

lyokato さんの View::TT::ForceUTF8 とか UTF8Columns とかいろいろ使って、今のプロジェクトを UTF8 化中。

さっき Catalyst::Plugin::Email::Japanese の ForceUTF8 対応版をうぷしといた。

なんかそれぞればらばらに設定しててめんどいなーこれ。

あと $c->req->parameters などを ForceUTF8 する奴も作ってつかっているのだけど、激しく適当で間に合わせもいいところ。これはもう少し仕様考えてから誰も作ってなかったらリリースする。

by typester / at 2006-03-07T00:29:00 / perl · catalyst / Comment

今日のBK

Catalyst 組み込みのテストサーバーは -k オプションをつけて keepalive を有効にしないと IE でリダイレクトがうまく動かないことがある。

by typester / at 2006-02-15T05:11:00 / catalyst / Comment

hide-k.net#blog: Catalyst::Model::DBIC::Schemaを使ってみた

と、とっても便利なC::M::DBIC::Schemaなんですが、既存のプラグインとあまり相性がよくありません。 特にC::P::Authentication::Store::DBICは全く動かなくなるので注意です。(今、パッチが作られているみたいです。)

今作ってるアプリではめちゃくちゃとりあえずの対応としてトップレベルの auto アクションで

sub auto : Private {
    my ( $self, $c ) = @_;

    # dirty hack for Auth::DBIC and Model::DBIC::Schema
    $c->config->{authentication}->{dbic}->{user_class} = $c->model('Schema::User');

    1;
}

などとしてたりとか。

はやく対応してくんないかな。

by typester / at 2006-02-14T20:16:00 / catalyst / Comment

Plugin::FillInForm

の finalize

sub finalize {
    my $c = shift;
    if ( $c->isa('Catalyst::Plugin::FormValidator') ) {
        $c->fillform
          if $c->form->has_missing
          || $c->form->has_invalid
          || $c->stash->{error};
    }
    return $c->NEXT::finalize(@_);
}

$c->stash->{error} があると問答無用で fillform る。あー何この余計なお世話機能。

小一時間はまったよ。。

by typester / at 2006-02-10T14:31:00 / perl · catalyst / Comment

$c->form の名前がだめ

ごろうさんが CGI.pm の param の扱いがいけてねーとかいってて、オレは validator がほしいよ、とかいってたんだけど、よく考えたら普通に validator つかえるじゃんか。

なんかページング処理とかで $c->req->params->{page} を自前でごにょっと処理してて嫌な感じだったんだけど

$c->form( page => [ ['GREATER_THAN', 1] ] );

とかしとけば $c->form->valid('page') で綺麗な値がとれると。

多分、めちゃくちゃ常識だと思われますが、僕は form という名前にだまされたのかこういう用途につかうということをまったく思いつかなかった。

$c->validator とかにすればいいのに!!

by typester / at 2006-02-09T23:20:00 / perl · catalyst / Comment

Catalyst::Model::DBIC::Schema カコヨス!

by typester / at 2006-02-08T14:20:00 / catalyst / Comment

まぁ別に今の実装でもわかってれば特に不便ってわけでもないか。

by typester / at 2006-02-08T00:11:00 / perl · catalyst / Comment

2 3 4 5 6 7 8 9 10 11

(Page 7 of 11)