2011年11月27日日曜日

rails認証プラグイン:Devise導入:その2

Devise導入の条件を満たす作業を継続していきます。
1.ログイン時にパスワード認証 (5文字以上英数字)
2.認証は暗号化認証を実施。
3.パスワードの有効期限は設定せず。
4.ユーザーがパスワードを更新できる。
5.ユーザーがパスワードを忘れた場合は再発行メールを送れる。
6.一般ユーザがユーザを追加できる。
7.ユーザーはコントロールのアクション毎のロール許可
8.Deviseのデフォルトmodelを拡張し、作成したいアプリに必要なカラムにDML発行することが出来る。
9.保存するパス自体が暗号化されている事。
Deviseを導入した時点で、2.の暗号化認証はされている様子。但し、どのような暗号化通信がされているか不明の為、詳細はまた後ほど。
また、Devise自体は3.パスワード有効期限の管理機能は搭載されていない。これもクリア。
残りは1.パスワード5文字以上チェックのみ。
config/initializers/devise.rbに以下の行を追加。

 config.password_length = 5..128


















登録パスワードに「test」と入力してユーザ登録

















こうするとパスワード部分にバリデーションチェックがかかる。
これでひとまず成功。
Sign in とForgot your passwordを日本語に切り替える作業が残っているw

2011年11月22日火曜日

今日の575実装 セッションIDとreferences

1.Deviseのセッションからidを抜く
current_user.idでOK。簡単。
この実装によって、作品を登録する時の登録者IDをセッションから拾ってこれる事になった。

2.モデル作成時に既存エンティティと1:nの関連をもたせる。
$ rails generate model 新規モデル名 関連させたいモデル名:references でOK。簡単。
明日は作品に対するコメント機能の実装に入ろう!

jQueryのお勉強

多摩美の田所先生の公開資料にてお勉強。ほんとお世話になる。

2011年11月14日月曜日

rails認証プラグイン:Devise導入:その1(インスコ)

認証機能はDeviseより先にmaigo@sekai氏のエントリーを参考にして、プラグインでパスワードの暗号化とsign_inまで実装することに成功(といっても動くだけのサンプルだが)した。
現場ではお客様のシステムに関する問題解決の旗振りや、案件提案を行う役回りばかりなので、こうして認証のイロハを学べるという事は正直なところ楽しい

さて、認証機能もちょっとだけ触った所で、現在Rails認証プラグインで一番人気のDeviseにチャレンジする事にする。
ASCIIcastsというページと13さいの備忘録を参考に導入を実施。一筋縄で行かないので数回に分けて実施する。

...13さいの備忘録に、氏が目指す認証の条件が書かれている。見習って私も書くことにする。(参考に氏の導入条件を斜体文字で表現)
1.ログイン時にパスワード認証 (7文字以上英数混在)
...6文字以上でOK。英数混合は条件にいれず。
2.ベーシック認証はイヤ!
...同意、暗号化認証を実施する。
3.パスワードの有効期限180日
...これは採用を見送る。但し採用できる拡張性は持たせる。
4.ユーザーがパスワードを更新できる。
...必須事項。もちろん。
5.ユーザーがパスワードを忘れた場合は再発行メールを送れる。
...これも必要な機能。
6.管理者のみユーザーを追加できる。
...これは「管理者は、他のユーザを追加できる。他のユーザは自分のみを追加できる」に変更。
7.ユーザーはコントロールのアクション毎のロール許可
...これも採用、ロール管理できなければ認証の意味なし。

8.(新)Deviseのデフォルトmodelを拡張し、作成したいアプリに必要なカラムにDML発行することが出来る。
9.(新)保存するパス自体が暗号化されている事。

よし、これで導入をしてみる。今日は下準備。
・gemfileに以下を追記
$ gem 'devise'
・bundleインストール
$ bundle install
・generateインストール
$ rails generate devise:install
config/environmentsのdevelopment.rb と production.rb と test.rbに以下を追加
 config.action_mailer.default_url_options = { :host => 'localhost:3000'
config/routes.rbに以下を追加
root :to => "welcome#index"

まずはここまで


2011年11月12日土曜日

涅槃(ねはん)の威力

575のアプリを開発するにあたり、機能として必要なのが縦書き。
探してみると縦書き文庫氏の涅槃(ねはん)というエンジンに出会う。
ページの<head>タグに、以下のエンジン定義を書く

<link charset="utf-8" rel="stylesheet" type="text/css"
 href="http://nehan.googlecode.com/hg/nehan2.css" />
<script charset="utf-8" type="text/javascript
 src="http://nehan.googlecode.com/hg/nehan2-min.js"></script>
<script type="text/javascript">
  window.onload = function(){
    Nehan.LayoutMapper.start();
  };
</script>

その後、縦書きしたい箇所を以下のように囲う。
<pre class="lp-vertical lp-width-80 lp-height-400 lp-font-size-20">
縦書きにしたい文章
</pre>
lp-vertical(縦書きの宣言)
lp-width-400(横サイズ)
lp-height-300(縦サイズ)
lp-font-size-16 (フォントサイズ)

これを実装するとこうなる。



























凄い。思わず笑ってしまった程の威力!

2011年11月10日木曜日

rails3 PaperClipで大苦戦

Paperclipは2011/11/1現在、比較的人気のあるファイルアップロードプラグインで使いやすいはずなのだが、問題が発生した際のドキュメントがEnglishが多く、日本語が少ない。(導入資料や試してみたメモは沢山日本語も存在。)

2個のエラーが鳴り響く。
Photo/var/folders/rA/rAc9q6yUFES79pX7bGGAPU+++TI/-Tmp-/stream20111110-1205-trvpd7-0.jpg is not recognized by the 'identify' command.

Photo/var/folders/rA/rAc9q6yUFES79pX7bGGAPU+++TI/-Tmp-/stream20111110-1205-trvpd7-0.jpg is not recognized by the 'identify' command.

どうやら「identigyコマンドが見つからんわ、無いわ」と文句を言っている様子。
早速identifyを探す。
$ which identify
/opt/local/bin/identify

whichの結果をもって、(railsプロジェクトのルート)/config/development.rbに以下を追加

Paperclip.options[:command_path] = "/opt/local/bin/"
これでOKか......あれ、同じエラーが発生する。3日位、これはハマった。

もっとrailsログの見方と英語を勉強しないと、これから待ち受けるエラーもハマるんだろうなと不安になる始末。

悩んでいるうちにようやく同様の事象で悩む先人を発見。この方は、ImageMagickを再インストールしようとして、更にハマる悪循環にいらっしゃる...でも物は試しと実行。
$ sudo port -d selfupdate
$ sudo port install ImageMagick
....!!

























ようやく上手く行った。
参考:
http://d.hatena.ne.jp/hichiriki/20081130
http://matatabi-on-rails.blogspot.com/2010/08/paperclip-rails-3-windows.html
http://d.hatena.ne.jp/ken73/20110608/1307516163

2011年11月5日土曜日

HTML5のお勉強

HTML5やCSS3とは何ぞや、と疑問を抱く私が今見ているのは以下のサイト
http://yoppa.org/taumedia11/3232.html



















slideshare(PowerPoint版Youtubeみたいなもの)に講義で使わたと思われるスライドがあり、私みたいな学費を払っていない他人であっても閲覧が可能。これは有難いのです。

2011年11月3日木曜日

ImageMagicとRMagickのインストール

railsの写真等ファイルアップロードプラグインで、今一番人気なのがPaperClip.
今日はインストールを実施。
1.ImageMagickのインストール
ImageMagickは100種類以上の画像ファイルフォーマットに対応しているソフトウェアスイート。C言語で書かれている。
各種ライブラリのインストール
$ sudo port install jpeg
$ sudo port install libpng
$ sudo port install libwmf
$ sudo port install tiff
$ sudo port install lcms
$ sudo port install freetype
$ sudo port install ghostscript(このAdobe提供のライブラリだけやたらとCPUパワーを食う。)
ImageMagickのインストール
$ sudo port install ImageMagick
2.RMagicのインストール
RMagicはImageMagicのRubyバインディング版。これを入れないとImageMagicがrailsで使えない。迷わずインストール
$ sudo gem install rmagick

3.PaperClipのインストール
その後、いよいよPaperClipをインストール
プロジェクトのディレクトリに移動し、gemfileに「gem "paperclip"」を追記し、以下を実行。
$ bundle install
Installing paperclip (2.4.5) 
おー、導入完了。週末に使ってみよう。