mirror of
https://github.com/heartcombo/devise.git
synced 2026-01-10 08:08:00 -05:00
Compare commits
6 Commits
00a97782cb
...
v1.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
23568bda82 | ||
|
|
ee7f5270fc | ||
|
|
f294700723 | ||
|
|
c86ce298dc | ||
|
|
b0ff0d46dd | ||
|
|
187ef5c452 |
@@ -1,3 +1,11 @@
|
||||
== 1.0.2
|
||||
|
||||
* enhancements
|
||||
* Allows you set mailer content type (by github.com/glennr)
|
||||
|
||||
* bug fix
|
||||
* Uses the same content type as request on http authenticatable 401 responses
|
||||
|
||||
== 1.0.1
|
||||
|
||||
* enhancements
|
||||
@@ -17,6 +25,7 @@
|
||||
* Added Http Basic Authentication support
|
||||
* Allow scoped_views to be customized per controller/mailer class
|
||||
* [#99] Allow authenticatable to used in change_table statements
|
||||
* Add mailer_content_type configuration parameter (by github.com/glennr)
|
||||
|
||||
== 0.9.2
|
||||
|
||||
|
||||
12
README.rdoc
12
README.rdoc
@@ -30,17 +30,13 @@ Devise is based on Warden (http://github.com/hassox/warden), a Rack Authenticati
|
||||
|
||||
== Installation
|
||||
|
||||
All gems are on gemcutter, so you need to add gemcutter to your sources if you haven't yet:
|
||||
|
||||
sudo gem sources -a http://gemcutter.org/
|
||||
|
||||
Install warden gem if you don't have it installed (requires 0.6.4 or higher):
|
||||
Install warden gem if you don't have it installed:
|
||||
|
||||
sudo gem install warden
|
||||
|
||||
Install devise gem:
|
||||
|
||||
sudo gem install devise
|
||||
sudo gem install devise --version=1.0.1
|
||||
|
||||
Configure warden and devise gems inside your app:
|
||||
|
||||
@@ -55,6 +51,10 @@ And you're ready to go. The generator will install an initializer which describe
|
||||
|
||||
http://rdoc.info/projects/plataformatec/devise
|
||||
|
||||
If you want to use Devise with bundler on Rails 2.3, you need to follow the instructions here:
|
||||
|
||||
http://github.com/carlhuda/bundler/issues/issue/83
|
||||
|
||||
== Basic Usage
|
||||
|
||||
This is a walkthrough with all steps you need to setup a devise resource, including model, migration, route files, and optional configuration. You MUST also check out the *Generators* section below to help you start.
|
||||
|
||||
2
Rakefile
2
Rakefile
@@ -44,7 +44,7 @@ begin
|
||||
s.description = "Flexible authentication solution for Rails with Warden"
|
||||
s.authors = ['José Valim', 'Carlos Antônio']
|
||||
s.files = FileList["[A-Z]*", "{app,config,generators,lib}/**/*", "init.rb"]
|
||||
s.add_dependency("warden", "~> 0.9.0")
|
||||
s.add_dependency("warden", "~> 0.9.3")
|
||||
end
|
||||
|
||||
Jeweler::GemcutterTasks.new
|
||||
|
||||
@@ -27,7 +27,7 @@ class DeviseMailer < ::ActionMailer::Base
|
||||
from mailer_sender(mapping)
|
||||
recipients record.email
|
||||
sent_on Time.now
|
||||
content_type 'text/html'
|
||||
content_type Devise.mailer_content_type
|
||||
body render_with_scope(key, mapping, mapping.name => record, :resource => record)
|
||||
end
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
|
||||
Gem::Specification.new do |s|
|
||||
s.name = %q{devise}
|
||||
s.version = "1.0.1"
|
||||
s.version = "1.0.2"
|
||||
|
||||
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
||||
s.authors = ["Jos\303\251 Valim", "Carlos Ant\303\264nio"]
|
||||
s.date = %q{2010-02-15}
|
||||
s.date = %q{2010-02-17}
|
||||
s.description = %q{Flexible authentication solution for Rails with Warden}
|
||||
s.email = %q{contact@plataformatec.com.br}
|
||||
s.extra_rdoc_files = [
|
||||
@@ -168,12 +168,12 @@ Gem::Specification.new do |s|
|
||||
s.specification_version = 3
|
||||
|
||||
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
||||
s.add_runtime_dependency(%q<warden>, ["~> 0.9.0"])
|
||||
s.add_runtime_dependency(%q<warden>, ["~> 0.9.3"])
|
||||
else
|
||||
s.add_dependency(%q<warden>, ["~> 0.9.0"])
|
||||
s.add_dependency(%q<warden>, ["~> 0.9.3"])
|
||||
end
|
||||
else
|
||||
s.add_dependency(%q<warden>, ["~> 0.9.0"])
|
||||
s.add_dependency(%q<warden>, ["~> 0.9.3"])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
Devise.setup do |config|
|
||||
# Configure the e-mail address which will be shown in DeviseMailer.
|
||||
config.mailer_sender = "please-change-me@config-initializers-devise.com"
|
||||
|
||||
# Configure the content type of DeviseMailer mails (defaults to text/html")
|
||||
# config.mailer_content_type = "text/plain"
|
||||
|
||||
# ==> Configuration for :authenticatable
|
||||
# Invoke `rake secret` and use the printed value to setup a pepper to generate
|
||||
|
||||
@@ -144,7 +144,11 @@ module Devise
|
||||
|
||||
# Address which sends Devise e-mails.
|
||||
mattr_accessor :mailer_sender
|
||||
@@mailer_sender = nil
|
||||
@@mailer_sender = nil
|
||||
|
||||
# Content Type of Devise e-mails.
|
||||
mattr_accessor :mailer_content_type
|
||||
@@mailer_content_type = 'text/html'
|
||||
|
||||
# Authentication token params key name of choice. E.g. /users/sign_in?some_key=...
|
||||
mattr_accessor :token_authentication_key
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# that specific user and adds a cookie with this user info to sign in this user
|
||||
# automatically without asking for credentials. Refer to rememberable strategy
|
||||
# for more info.
|
||||
Warden::Manager.after_authentication do |record, warden, options|
|
||||
Warden::Manager.prepend_after_authentication do |record, warden, options|
|
||||
scope = options[:scope]
|
||||
remember_me = warden.params[scope].try(:fetch, :remember_me, nil)
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ module Devise
|
||||
|
||||
def custom_headers
|
||||
{
|
||||
"Content-Type" => "text/plain",
|
||||
"Content-Type" => Mime::Type.lookup_by_extension(request.template_format.to_s).to_s,
|
||||
"WWW-Authenticate" => %(Basic realm="#{Devise.http_authentication_realm.gsub(/"/, "")}")
|
||||
}
|
||||
end
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
module Devise
|
||||
VERSION = "1.0.1".freeze
|
||||
VERSION = "1.0.2".freeze
|
||||
end
|
||||
|
||||
@@ -16,6 +16,12 @@ class HttpAuthenticationTest < ActionController::IntegrationTest
|
||||
assert_equal 'Basic realm="Application"', headers["WWW-Authenticate"]
|
||||
end
|
||||
|
||||
test 'uses the request format as response content type' do
|
||||
sign_in_as_new_user_with_http("unknown", "123456", :xml)
|
||||
assert_equal 401, status
|
||||
assert_equal "application/xml", headers["Content-Type"]
|
||||
end
|
||||
|
||||
test 'returns a custom response with www-authenticate and chosen realm' do
|
||||
swap Devise, :http_authentication_realm => "MyApp" do
|
||||
sign_in_as_new_user_with_http("unknown")
|
||||
@@ -36,9 +42,9 @@ class HttpAuthenticationTest < ActionController::IntegrationTest
|
||||
|
||||
private
|
||||
|
||||
def sign_in_as_new_user_with_http(username="user@test.com", password="123456")
|
||||
def sign_in_as_new_user_with_http(username="user@test.com", password="123456", format=:html)
|
||||
user = create_user
|
||||
get users_path, {}, :authorization => "Basic #{ActiveSupport::Base64.encode64("#{username}:#{password}")}"
|
||||
get users_path(:format => format), {}, :authorization => "Basic #{ActiveSupport::Base64.encode64("#{username}:#{password}")}"
|
||||
user
|
||||
end
|
||||
end
|
||||
@@ -63,6 +63,12 @@ class ConfirmationInstructionsTest < ActionMailer::TestCase
|
||||
end
|
||||
end
|
||||
|
||||
test 'content type should be set to plain when manually configured' do
|
||||
swap Devise, :mailer_content_type => "text/plain" do
|
||||
assert_equal "text/plain", mail.content_type
|
||||
end
|
||||
end
|
||||
|
||||
test 'renders a scoped if scoped_views is set in the mailer class' do
|
||||
begin
|
||||
DeviseMailer.scoped_views = true
|
||||
|
||||
@@ -35,6 +35,9 @@ Devise.setup do |config|
|
||||
|
||||
# Configure the e-mail address which will be shown in DeviseMailer.
|
||||
config.mailer_sender = "please-change-me-omg@yourapp.com"
|
||||
|
||||
# Configure the content type of DeviseMailer mails (defaults to text/html")
|
||||
# config.mailer_content_type = "text/plain"
|
||||
|
||||
# Load and configure the ORM. Supports :active_record, :data_mapper and :mongo_mapper.
|
||||
require "devise/orm/#{DEVISE_ORM}"
|
||||
|
||||
Reference in New Issue
Block a user