SaltedLoginGenerator のプラグイン版であるが、いくつかの機能が省かれている。
$ ruby script/plugin install http://svn.rails-engines.org/plugins/login_engine + ./login_engine/CHANGELOG + ./login_engine/README + ./login_engine/app/controllers/user_controller.rb + ./login_engine/app/helpers/user_helper.rb + ./login_engine/app/models/user.rb + ./login_engine/app/models/user_notify.rb + ./login_engine/app/views/user/_edit.rhtml + ./login_engine/app/views/user/_password.rhtml + ./login_engine/app/views/user/change_password.rhtml + ./login_engine/app/views/user/edit.rhtml + ./login_engine/app/views/user/forgot_password.rhtml + ./login_engine/app/views/user/home.rhtml + ./login_engine/app/views/user/login.rhtml + ./login_engine/app/views/user/logout.rhtml + ./login_engine/app/views/user/signup.rhtml + ./login_engine/app/views/user_notify/change_password.rhtml + ./login_engine/app/views/user_notify/delete.rhtml + ./login_engine/app/views/user_notify/forgot_password.rhtml + ./login_engine/app/views/user_notify/pending_delete.rhtml + ./login_engine/app/views/user_notify/signup.rhtml + ./login_engine/db/migrate/001_initial_schema.rb + ./login_engine/init_engine.rb + ./login_engine/install.rb + ./login_engine/lib/login_engine/authenticated_system.rb + ./login_engine/lib/login_engine/authenticated_user.rb + ./login_engine/lib/login_engine.rb + ./login_engine/public/stylesheets/login_engine.css + ./login_engine/tasks/tasks.rake + ./login_engine/test/fixtures/users.yml + ./login_engine/test/functional/user_controller_test.rb + ./login_engine/test/mocks/mail.rb + ./login_engine/test/mocks/time.rb + ./login_engine/test/test_helper.rb + ./login_engine/test/unit/user_test.rb + ./engines/CHANGELOG + ./engines/MIT-LICENSE + ./engines/README + ./engines/generators/engine/USAGE + ./engines/generators/engine/engine_generator.rb + ./engines/generators/engine/templates/README + ./engines/generators/engine/templates/init_engine.erb + ./engines/generators/engine/templates/install.erb + ./engines/generators/engine/templates/lib/engine.erb + ./engines/generators/engine/templates/licenses/GPL + ./engines/generators/engine/templates/licenses/LGPL + ./engines/generators/engine/templates/licenses/MIT + ./engines/generators/engine/templates/licenses/None + ./engines/generators/engine/templates/public/javascripts/engine.js + ./engines/generators/engine/templates/public/stylesheets/engine.css + ./engines/generators/engine/templates/tasks/engine.rake + ./engines/generators/engine/templates/test/test_helper.erb + ./engines/init.rb + ./engines/lib/bundles/require_resource.rb + ./engines/lib/bundles.rb + ./engines/lib/engines/action_mailer_extensions.rb + ./engines/lib/engines/action_view_extensions.rb + ./engines/lib/engines/active_record_extensions.rb + ./engines/lib/engines/dependencies_extensions.rb + ./engines/lib/engines/migration_extensions.rb + ./engines/lib/engines/ruby_extensions.rb + ./engines/lib/engines/testing_extensions.rb + ./engines/lib/engines.rb + ./engines/tasks/deprecated_engines.rake + ./engines/tasks/engines.rake + ./engines/test/action_view_extensions_test.rb + ./engines/test/ruby_extensions_test.rb
config/environment.rbの末尾にLoginEngineの設定を追加する。
module LoginEngine config :salt, "yoursaltstring" end Engines.start :login
アプリケーション全体を認証するのであれば、app/controllers/application.rbに以下を記述する。
require 'login_engine' class ApplicationController < ActionController::Base include LoginEngine helper :user model :user before_filter :login_required
特定のアクションのみ認証が必要であれば、ApplicationHelperに以下を追加する。
module ApplicationHelper include LoginEngine end
メールを使用しないのであれば、先の設定に以下を追加する。
module LoginEngine # ... other options... config :use_email_notification, false end
メールを利用するのであればActionMailerの設定を行う。environment.rbかconfig/environments/development.rbなど。
ActionMailer::Base.server_settings = { :address => "smtphost.domain", :port => 25, :domain => "smtp.domain", #:user_name => "<your user name here>", #:password => "<your password here>", #:authentication => :login }
SMTP認証が必要な場合はuser_nameなどの設定も必要。
まず、Login Engineが使うテーブル名を設定する。
module LoginEngine # ... other options... config :user_table, "your_table_name" end
スキーマを確認し、実行しても既存のテーブルに支障のないことを確認しておく。スキーマは
vendor/plugins/login_engine/db/migrate/001_initial_schema.rb にある。問題なければマイグレーションを実行する。
※ version 1.0.1にはauthentication_userが見つからないバグがあるので、’no such file to load—authenticated_user’で止まる場合は以下のパッチをあてる。Ticket #156
$ rake engine_migrate ENGINE=login -t (in dir) **Invoke engine_migrate (first_time) **Invoke db:migrate:engines (first_time) **Invoke environment (first_time) **Execute environment **Execute db:migrate:engines Migrating engine 'login_engine' --InitialSchema: migrating --------------------------------------------------- --create_table("users", {:force=>true}) -> 0.1518s --InitialSchema: migrated (0.1521s) ------------------------------------------ **Invoke db_schema_dump (first_time) **Invoke db:schema:dump (first_time) **Invoke environment **Execute db:schema:dump **Execute db_schema_dump **Execute engine_migrate
vendor/plugins/login_engine/lib/login_engine.rbで設定されるので上書きしたい場合はその前に評価されるところに書く。例えばconfig/environments.rbなど。
todo