devise_oam 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +6 -3
- data/lib/devise_oam/authenticatable_entity.rb +4 -3
- data/lib/devise_oam/strategies/header_authenticatable.rb +35 -14
- data/lib/devise_oam/version.rb +1 -1
- data/lib/devise_oam.rb +8 -1
- data/test/authenticatable_entity_test.rb +21 -0
- data/test/device_oam_test.rb +20 -0
- data/test/dummy/app/models/user.rb +6 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/log/development.log +153 -0
- data/test/dummy/log/test.log +5211 -0
- data/test/dummy/tmp/cache/assets/C7C/0A0/sprockets%2F597e930120327bb64dc863270f4750cc +0 -0
- data/test/dummy/tmp/cache/assets/CBF/400/sprockets%2Fd61b9c798a00b2d9a90a027658659e88 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/DA2/2B0/sprockets%2F30e17171d77ff9cf3ec4717f1dbb1ea9 +0 -0
- data/test/dummy/tmp/cache/assets/DC2/9A0/sprockets%2Fcac341f68ddf22babb24636eee6d4071 +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/{devise_oam_test.rb → header_authenticatable_test.rb} +15 -26
- metadata +34 -6
data/README.md
CHANGED
@@ -8,7 +8,7 @@ integration with Oracle Access Manager.
|
|
8
8
|
## Installation
|
9
9
|
In **Rails 3**, add this to your Gemfile and run the `bundle` command.
|
10
10
|
|
11
|
-
gem "devise_oam",
|
11
|
+
gem "devise_oam", "~> 0.0.3"
|
12
12
|
|
13
13
|
## Usage
|
14
14
|
1) Add the `HeaderAuthenticatable` strategy in devise initializer `config/initializers/devise.rb`:
|
@@ -38,7 +38,10 @@ end
|
|
38
38
|
* `create_user_if_not_found` - if set to true this will create a new user if no user was found
|
39
39
|
* `create_user_method` - method in the `user_class` to handle new user creation
|
40
40
|
* `ldap_header` - HTTP header for LDAP roles
|
41
|
-
* `
|
41
|
+
* `update_user_method` - method in the `user_class` to handle updating user roles and additional attributes
|
42
|
+
* `attr_headers` - headers with additional attributes that are passed to `update_user_method`
|
43
|
+
|
44
|
+
`roles_setter` should still work, but is deprecated
|
42
45
|
|
43
46
|
### Automatic user creation
|
44
47
|
If you need to automatically create new users based on `oam_header` you need to do the following:
|
@@ -54,7 +57,7 @@ To use LDAP roles parsing:
|
|
54
57
|
|
55
58
|
1. Set `ldap_header` setting to the HTTP header with roles (should be a comma separated string)
|
56
59
|
2. Add a method to your user class that will accept an array with roles and update the user
|
57
|
-
3. In the initializer set `
|
60
|
+
3. In the initializer set `update_user_method` setting to the method you've just created
|
58
61
|
|
59
62
|
For an example see `test/dummy` app.
|
60
63
|
|
@@ -1,10 +1,11 @@
|
|
1
1
|
module DeviseOam
|
2
2
|
class AuthenticatableEntity
|
3
|
-
attr_accessor :login, :ldap_roles
|
3
|
+
attr_accessor :login, :ldap_roles, :attributes
|
4
4
|
|
5
|
-
def initialize(login, ldap_roles = nil)
|
5
|
+
def initialize(login, ldap_roles = nil, attributes = {})
|
6
6
|
@login = login
|
7
7
|
@ldap_roles = parse_ldap_roles(ldap_roles) if ldap_roles
|
8
|
+
@attributes = attributes
|
8
9
|
end
|
9
10
|
|
10
11
|
private
|
@@ -12,4 +13,4 @@ module DeviseOam
|
|
12
13
|
ldap_roles.strip.downcase.split(',')
|
13
14
|
end
|
14
15
|
end
|
15
|
-
end
|
16
|
+
end
|
@@ -4,24 +4,20 @@ module DeviseOam
|
|
4
4
|
class HeaderAuthenticatable < ::Devise::Strategies::Base
|
5
5
|
attr_reader :authenticatable
|
6
6
|
|
7
|
+
# strategy is only valid if there is a DeviseOam.oam_header header in the request
|
7
8
|
def valid?
|
8
|
-
# this strategy is only valid if there is a DeviseOam.oam_header header in the request
|
9
9
|
request.headers[DeviseOam.oam_header]
|
10
10
|
end
|
11
11
|
|
12
12
|
def authenticate!
|
13
|
-
failure_message = "OAM authentication failed"
|
14
|
-
|
15
13
|
oam_data = request.headers[DeviseOam.oam_header]
|
16
|
-
if DeviseOam.ldap_header
|
17
|
-
|
18
|
-
end
|
14
|
+
ldap_data = request.headers[DeviseOam.ldap_header] if DeviseOam.ldap_header
|
15
|
+
attributes = get_attributes if DeviseOam.attr_headers
|
19
16
|
|
20
17
|
if oam_data.blank?
|
21
|
-
fail!(
|
18
|
+
fail!("OAM authentication failed")
|
22
19
|
else
|
23
|
-
@authenticatable = AuthenticatableEntity.new(oam_data, ldap_data)
|
24
|
-
|
20
|
+
@authenticatable = AuthenticatableEntity.new(oam_data, ldap_data, attributes)
|
25
21
|
user = find_or_create_user
|
26
22
|
success!(user)
|
27
23
|
end
|
@@ -34,17 +30,42 @@ module DeviseOam
|
|
34
30
|
private
|
35
31
|
|
36
32
|
def find_or_create_user
|
37
|
-
user =
|
38
|
-
|
33
|
+
user = find_user
|
39
34
|
if user.nil? && DeviseOam.create_user_if_not_found
|
40
|
-
user =
|
35
|
+
user = create_user
|
41
36
|
elsif user && set_roles?
|
42
|
-
user
|
37
|
+
update_user(user)
|
43
38
|
end
|
44
39
|
|
45
40
|
user
|
46
41
|
end
|
42
|
+
|
43
|
+
def find_user
|
44
|
+
DeviseOam.user_class.where({ DeviseOam.user_login_field.to_sym => @authenticatable.login }).first
|
45
|
+
end
|
46
|
+
|
47
|
+
def create_user
|
48
|
+
DeviseOam.user_class.send(DeviseOam.create_user_method, {
|
49
|
+
DeviseOam.user_login_field.to_sym => @authenticatable.login,
|
50
|
+
roles: @authenticatable.ldap_roles
|
51
|
+
})
|
52
|
+
end
|
53
|
+
|
54
|
+
def update_user(user)
|
55
|
+
if @authenticatable.attributes.any?
|
56
|
+
user.send(DeviseOam.update_user_method, @authenticatable.ldap_roles, @authenticatable.attributes)
|
57
|
+
else
|
58
|
+
user.send(DeviseOam.update_user_method, @authenticatable.ldap_roles)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def get_attributes
|
63
|
+
hash = DeviseOam.attr_headers.inject({}) {|attr_hash, attr_header|
|
64
|
+
attr_hash[attr_header.underscore] = request.headers[attr_header] if request.headers[attr_header]
|
65
|
+
attr_hash
|
66
|
+
}
|
67
|
+
end
|
47
68
|
end
|
48
69
|
end
|
49
70
|
end
|
50
|
-
end
|
71
|
+
end
|
data/lib/devise_oam/version.rb
CHANGED
data/lib/devise_oam.rb
CHANGED
@@ -3,7 +3,6 @@ require "devise_oam/strategies/header_authenticatable"
|
|
3
3
|
require "devise_oam/authenticatable_entity"
|
4
4
|
|
5
5
|
module DeviseOam
|
6
|
-
|
7
6
|
# Settings
|
8
7
|
mattr_accessor :oam_header
|
9
8
|
mattr_accessor :user_class
|
@@ -12,6 +11,10 @@ module DeviseOam
|
|
12
11
|
mattr_accessor :create_user_method
|
13
12
|
mattr_accessor :ldap_header
|
14
13
|
mattr_accessor :roles_setter
|
14
|
+
mattr_accessor :attr_headers
|
15
|
+
mattr_writer :update_user_method
|
16
|
+
|
17
|
+
@@update_user_method = nil
|
15
18
|
|
16
19
|
def self.setup
|
17
20
|
yield self
|
@@ -20,4 +23,8 @@ module DeviseOam
|
|
20
23
|
def self.user_class
|
21
24
|
@@user_class.constantize
|
22
25
|
end
|
26
|
+
|
27
|
+
def self.update_user_method
|
28
|
+
@@update_user_method || @@roles_setter
|
29
|
+
end
|
23
30
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
include TestHelpers
|
3
|
+
|
4
|
+
class DeviseOamTest < ActiveSupport::TestCase
|
5
|
+
test "correctly parses ldap roles" do
|
6
|
+
ldap_roles = 'role-1,Role-2'
|
7
|
+
roles = ["role-1", "role-2"]
|
8
|
+
|
9
|
+
authenticatable = DeviseOam::AuthenticatableEntity.new("login", ldap_roles)
|
10
|
+
|
11
|
+
assert_equal authenticatable.ldap_roles, roles
|
12
|
+
end
|
13
|
+
|
14
|
+
test "login is case sensitive" do
|
15
|
+
auth1 = DeviseOam::AuthenticatableEntity.new("Login")
|
16
|
+
auth2 = DeviseOam::AuthenticatableEntity.new("loGin")
|
17
|
+
|
18
|
+
assert_equal auth1.login, "Login"
|
19
|
+
assert_equal auth2.login, "loGin"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
include TestHelpers
|
3
|
+
|
4
|
+
class DeviseOamTest < ActiveSupport::TestCase
|
5
|
+
test "truth" do
|
6
|
+
assert_kind_of Module, DeviseOam
|
7
|
+
end
|
8
|
+
|
9
|
+
test "setup block yields self" do
|
10
|
+
DeviseOam.setup do |config|
|
11
|
+
assert_equal DeviseOam, config
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
test "update_user_method is set to roles_setter by default" do
|
16
|
+
DeviseOam.update_user_method = nil
|
17
|
+
DeviseOam.roles_setter = :roles_setter
|
18
|
+
assert_equal DeviseOam.update_user_method, :roles_setter
|
19
|
+
end
|
20
|
+
end
|
Binary file
|
@@ -0,0 +1,153 @@
|
|
1
|
+
Connecting to database specified by database.yml
|
2
|
+
|
3
|
+
|
4
|
+
Started GET "/" for 127.0.0.1 at 2012-09-19 17:26:30 +0400
|
5
|
+
Processing by UsersController#index as HTML
|
6
|
+
Completed 401 Unauthorized in 9ms
|
7
|
+
|
8
|
+
|
9
|
+
Started GET "/users/sign_in" for 127.0.0.1 at 2012-09-19 17:26:30 +0400
|
10
|
+
Processing by Devise::SessionsController#new as HTML
|
11
|
+
Completed 500 Internal Server Error in 46ms
|
12
|
+
|
13
|
+
ActiveRecord::StatementInvalid (Could not find table 'users'):
|
14
|
+
activerecord (3.2.5) lib/active_record/connection_adapters/sqlite_adapter.rb:472:in `table_structure'
|
15
|
+
activerecord (3.2.5) lib/active_record/connection_adapters/sqlite_adapter.rb:346:in `columns'
|
16
|
+
activerecord (3.2.5) lib/active_record/connection_adapters/schema_cache.rb:12:in `block in initialize'
|
17
|
+
activerecord (3.2.5) lib/active_record/model_schema.rb:228:in `yield'
|
18
|
+
activerecord (3.2.5) lib/active_record/model_schema.rb:228:in `default'
|
19
|
+
activerecord (3.2.5) lib/active_record/model_schema.rb:228:in `columns'
|
20
|
+
activerecord (3.2.5) lib/active_record/model_schema.rb:243:in `column_defaults'
|
21
|
+
activerecord (3.2.5) lib/active_record/base.rb:482:in `initialize'
|
22
|
+
devise (2.1.2) app/controllers/devise_controller.rb:102:in `new'
|
23
|
+
devise (2.1.2) app/controllers/devise_controller.rb:102:in `build_resource'
|
24
|
+
devise (2.1.2) app/controllers/devise/sessions_controller.rb:8:in `new'
|
25
|
+
actionpack (3.2.5) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
|
26
|
+
actionpack (3.2.5) lib/abstract_controller/base.rb:167:in `process_action'
|
27
|
+
actionpack (3.2.5) lib/action_controller/metal/rendering.rb:10:in `process_action'
|
28
|
+
actionpack (3.2.5) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
|
29
|
+
activesupport (3.2.5) lib/active_support/callbacks.rb:458:in `_run__3322301534199686528__process_action__3654599336353534351__callbacks'
|
30
|
+
activesupport (3.2.5) lib/active_support/callbacks.rb:405:in `__run_callback'
|
31
|
+
activesupport (3.2.5) lib/active_support/callbacks.rb:385:in `_run_process_action_callbacks'
|
32
|
+
activesupport (3.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks'
|
33
|
+
actionpack (3.2.5) lib/abstract_controller/callbacks.rb:17:in `process_action'
|
34
|
+
actionpack (3.2.5) lib/action_controller/metal/rescue.rb:29:in `process_action'
|
35
|
+
actionpack (3.2.5) lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
|
36
|
+
activesupport (3.2.5) lib/active_support/notifications.rb:123:in `block in instrument'
|
37
|
+
activesupport (3.2.5) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
|
38
|
+
activesupport (3.2.5) lib/active_support/notifications.rb:123:in `instrument'
|
39
|
+
actionpack (3.2.5) lib/action_controller/metal/instrumentation.rb:29:in `process_action'
|
40
|
+
actionpack (3.2.5) lib/action_controller/metal/params_wrapper.rb:206:in `process_action'
|
41
|
+
activerecord (3.2.5) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
|
42
|
+
actionpack (3.2.5) lib/abstract_controller/base.rb:121:in `process'
|
43
|
+
actionpack (3.2.5) lib/abstract_controller/rendering.rb:45:in `process'
|
44
|
+
actionpack (3.2.5) lib/action_controller/metal.rb:203:in `dispatch'
|
45
|
+
actionpack (3.2.5) lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
|
46
|
+
actionpack (3.2.5) lib/action_controller/metal.rb:246:in `block in action'
|
47
|
+
actionpack (3.2.5) lib/action_dispatch/routing/route_set.rb:73:in `call'
|
48
|
+
actionpack (3.2.5) lib/action_dispatch/routing/route_set.rb:73:in `dispatch'
|
49
|
+
actionpack (3.2.5) lib/action_dispatch/routing/route_set.rb:36:in `call'
|
50
|
+
actionpack (3.2.5) lib/action_dispatch/routing/mapper.rb:42:in `call'
|
51
|
+
journey (1.0.3) lib/journey/router.rb:68:in `block in call'
|
52
|
+
journey (1.0.3) lib/journey/router.rb:56:in `each'
|
53
|
+
journey (1.0.3) lib/journey/router.rb:56:in `call'
|
54
|
+
actionpack (3.2.5) lib/action_dispatch/routing/route_set.rb:600:in `call'
|
55
|
+
warden (1.2.1) lib/warden/manager.rb:35:in `block in call'
|
56
|
+
warden (1.2.1) lib/warden/manager.rb:34:in `catch'
|
57
|
+
warden (1.2.1) lib/warden/manager.rb:34:in `call'
|
58
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
|
59
|
+
rack (1.4.1) lib/rack/etag.rb:23:in `call'
|
60
|
+
rack (1.4.1) lib/rack/conditionalget.rb:25:in `call'
|
61
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/head.rb:14:in `call'
|
62
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
|
63
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/flash.rb:238:in `call'
|
64
|
+
rack (1.4.1) lib/rack/session/abstract/id.rb:205:in `context'
|
65
|
+
rack (1.4.1) lib/rack/session/abstract/id.rb:200:in `call'
|
66
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/cookies.rb:338:in `call'
|
67
|
+
activerecord (3.2.5) lib/active_record/query_cache.rb:64:in `call'
|
68
|
+
activerecord (3.2.5) lib/active_record/connection_adapters/abstract/connection_pool.rb:473:in `call'
|
69
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
|
70
|
+
activesupport (3.2.5) lib/active_support/callbacks.rb:405:in `_run__2963724873740439576__call__167442707437893209__callbacks'
|
71
|
+
activesupport (3.2.5) lib/active_support/callbacks.rb:405:in `__run_callback'
|
72
|
+
activesupport (3.2.5) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
|
73
|
+
activesupport (3.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks'
|
74
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
|
75
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/reloader.rb:65:in `call'
|
76
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
|
77
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
|
78
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
|
79
|
+
railties (3.2.5) lib/rails/rack/logger.rb:26:in `call_app'
|
80
|
+
railties (3.2.5) lib/rails/rack/logger.rb:16:in `call'
|
81
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/request_id.rb:22:in `call'
|
82
|
+
rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
|
83
|
+
rack (1.4.1) lib/rack/runtime.rb:17:in `call'
|
84
|
+
activesupport (3.2.5) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
|
85
|
+
rack (1.4.1) lib/rack/lock.rb:15:in `call'
|
86
|
+
actionpack (3.2.5) lib/action_dispatch/middleware/static.rb:62:in `call'
|
87
|
+
railties (3.2.5) lib/rails/engine.rb:479:in `call'
|
88
|
+
railties (3.2.5) lib/rails/application.rb:220:in `call'
|
89
|
+
rack (1.4.1) lib/rack/content_length.rb:14:in `call'
|
90
|
+
railties (3.2.5) lib/rails/rack/log_tailer.rb:17:in `call'
|
91
|
+
rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service'
|
92
|
+
/Users/whatthewhat/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
|
93
|
+
/Users/whatthewhat/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
|
94
|
+
/Users/whatthewhat/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
|
95
|
+
|
96
|
+
|
97
|
+
Rendered /Users/whatthewhat/.rvm/gems/ruby-1.9.3-p125/gems/actionpack-3.2.5/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.8ms)
|
98
|
+
Rendered /Users/whatthewhat/.rvm/gems/ruby-1.9.3-p125/gems/actionpack-3.2.5/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.2ms)
|
99
|
+
Rendered /Users/whatthewhat/.rvm/gems/ruby-1.9.3-p125/gems/actionpack-3.2.5/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (13.3ms)
|
100
|
+
Connecting to database specified by database.yml
|
101
|
+
[1m[36m (0.1ms)[0m [1mselect sqlite_version(*)[0m
|
102
|
+
[1m[35m (1.6ms)[0m CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
|
103
|
+
[1m[36m (0.0ms)[0m [1mPRAGMA index_list("schema_migrations")[0m
|
104
|
+
[1m[35m (1.2ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
105
|
+
[1m[36m (0.1ms)[0m [1mSELECT "schema_migrations"."version" FROM "schema_migrations" [0m
|
106
|
+
Migrating to DeviseCreateUsers (20120514070218)
|
107
|
+
[1m[35m (0.0ms)[0m begin transaction
|
108
|
+
[1m[36m (0.5ms)[0m [1mCREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "email" varchar(255) DEFAULT '' NOT NULL, "encrypted_password" varchar(255) DEFAULT '' NOT NULL, "reset_password_token" varchar(255), "reset_password_sent_at" datetime, "remember_created_at" datetime, "sign_in_count" integer DEFAULT 0, "current_sign_in_at" datetime, "last_sign_in_at" datetime, "current_sign_in_ip" varchar(255), "last_sign_in_ip" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) [0m
|
109
|
+
[1m[35m (0.1ms)[0m PRAGMA index_list("users")
|
110
|
+
[1m[36m (0.4ms)[0m [1mCREATE UNIQUE INDEX "index_users_on_email" ON "users" ("email")[0m
|
111
|
+
[1m[35m (0.1ms)[0m PRAGMA index_list("users")
|
112
|
+
[1m[36m (0.0ms)[0m [1mPRAGMA index_info('index_users_on_email')[0m
|
113
|
+
[1m[35m (0.2ms)[0m CREATE UNIQUE INDEX "index_users_on_reset_password_token" ON "users" ("reset_password_token")
|
114
|
+
[1m[36m (0.2ms)[0m [1mINSERT INTO "schema_migrations" ("version") VALUES ('20120514070218')[0m
|
115
|
+
[1m[35m (1.1ms)[0m commit transaction
|
116
|
+
Migrating to AddRolesMaskToUsers (20120521064519)
|
117
|
+
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
|
118
|
+
[1m[35m (0.9ms)[0m ALTER TABLE "users" ADD "roles_mask" integer
|
119
|
+
[1m[36m (0.2ms)[0m [1mINSERT INTO "schema_migrations" ("version") VALUES ('20120521064519')[0m
|
120
|
+
[1m[35m (0.8ms)[0m commit transaction
|
121
|
+
[1m[36m (0.4ms)[0m [1mselect sqlite_version(*)[0m
|
122
|
+
[1m[35m (0.2ms)[0m SELECT "schema_migrations"."version" FROM "schema_migrations"
|
123
|
+
[1m[36m (0.1ms)[0m [1mPRAGMA index_list("users")[0m
|
124
|
+
[1m[35m (0.0ms)[0m PRAGMA index_info('index_users_on_reset_password_token')
|
125
|
+
[1m[36m (0.0ms)[0m [1mPRAGMA index_info('index_users_on_email')[0m
|
126
|
+
Connecting to database specified by database.yml
|
127
|
+
|
128
|
+
|
129
|
+
Started GET "/users/sign_in" for 127.0.0.1 at 2012-09-19 17:27:00 +0400
|
130
|
+
Processing by Devise::SessionsController#new as HTML
|
131
|
+
Rendered /Users/whatthewhat/.rvm/gems/ruby-1.9.3-p125/gems/devise-2.1.2/app/views/devise/shared/_links.erb (1.9ms)
|
132
|
+
Rendered /Users/whatthewhat/.rvm/gems/ruby-1.9.3-p125/gems/devise-2.1.2/app/views/devise/sessions/new.html.erb within layouts/application (16.6ms)
|
133
|
+
Compiled application.css (0ms) (pid 5431)
|
134
|
+
Compiled jquery.js (3ms) (pid 5431)
|
135
|
+
Compiled jquery_ujs.js (0ms) (pid 5431)
|
136
|
+
Compiled application.js (51ms) (pid 5431)
|
137
|
+
Completed 200 OK in 247ms (Views: 187.3ms | ActiveRecord: 2.3ms)
|
138
|
+
|
139
|
+
|
140
|
+
Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2012-09-19 17:27:00 +0400
|
141
|
+
Served asset /application.css - 200 OK (4ms)
|
142
|
+
|
143
|
+
|
144
|
+
Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2012-09-19 17:27:00 +0400
|
145
|
+
Served asset /application.js - 200 OK (9ms)
|
146
|
+
|
147
|
+
|
148
|
+
Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2012-09-19 17:27:00 +0400
|
149
|
+
Served asset /jquery.js - 200 OK (5ms)
|
150
|
+
|
151
|
+
|
152
|
+
Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2012-09-19 17:27:00 +0400
|
153
|
+
Served asset /jquery_ujs.js - 200 OK (4ms)
|