challah 1.5.0 → 2.0.0.beta2

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.
Files changed (47) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +32 -0
  3. data/README.md +6 -39
  4. data/VERSION +1 -1
  5. data/app/controllers/sessions_controller.rb +11 -10
  6. data/app/models/authorization.rb +2 -0
  7. data/lib/challah/audit.rb +38 -36
  8. data/lib/challah/authenticators/api_key.rb +4 -2
  9. data/lib/challah/authenticators/password.rb +3 -1
  10. data/lib/challah/authenticators.rb +5 -3
  11. data/lib/challah/concerns/authorizeable.rb +4 -0
  12. data/lib/challah/concerns/user/attributeable.rb +37 -29
  13. data/lib/challah/concerns/user/authenticateable.rb +4 -2
  14. data/lib/challah/concerns/user/authorizable.rb +16 -12
  15. data/lib/challah/concerns/user/findable.rb +13 -10
  16. data/lib/challah/concerns/user/passwordable.rb +5 -3
  17. data/lib/challah/concerns/user/provideable.rb +22 -20
  18. data/lib/challah/concerns/user/statusable.rb +3 -21
  19. data/lib/challah/concerns/user/validateable.rb +3 -1
  20. data/lib/challah/concerns/userable.rb +1 -3
  21. data/lib/challah/controller.rb +69 -65
  22. data/lib/challah/cookie_store.rb +7 -5
  23. data/lib/challah/encrypter.rb +4 -2
  24. data/lib/challah/engine.rb +5 -18
  25. data/lib/challah/providers/password_provider.rb +9 -7
  26. data/lib/challah/providers.rb +3 -1
  27. data/lib/challah/random.rb +6 -4
  28. data/lib/challah/routes.rb +6 -6
  29. data/lib/challah/session.rb +27 -25
  30. data/lib/challah/signup.rb +5 -3
  31. data/lib/challah/simple_cookie_store.rb +82 -80
  32. data/lib/challah/techniques/api_key_technique.rb +2 -2
  33. data/lib/challah/techniques/password_technique.rb +2 -1
  34. data/lib/challah/techniques/token_technique.rb +3 -1
  35. data/lib/challah/techniques.rb +2 -0
  36. data/lib/challah/test.rb +6 -0
  37. data/lib/challah/validators/email_validator.rb +2 -0
  38. data/lib/challah/validators/password_validator.rb +5 -3
  39. data/lib/challah/version.rb +3 -1
  40. data/lib/challah.rb +2 -5
  41. data/lib/generators/challah_generator.rb +17 -0
  42. data/lib/generators/templates/migration.erb +39 -0
  43. data/lib/tasks/setup.rake +7 -3
  44. metadata +63 -26
  45. data/db/migrate/20120127150433_create_users.rb +0 -29
  46. data/db/migrate/20121116210759_create_authorizations.rb +0 -22
  47. data/lib/challah/plugins.rb +0 -54
@@ -1,29 +0,0 @@
1
- class CreateUsers < ActiveRecord::Migration
2
-
3
- def change
4
- create_table :users do |t|
5
- t.string :first_name
6
- t.string :last_name
7
- t.string :email
8
- t.string :email_hash
9
- t.string :persistence_token
10
- t.string :api_key
11
- t.datetime :last_session_at
12
- t.string :last_session_ip
13
- t.integer :session_count, default: 0
14
- t.integer :failed_auth_count, default: 0
15
- t.integer :created_by, default: 0
16
- t.integer :updated_by, default: 0
17
- t.datetime :created_at
18
- t.datetime :updated_at
19
- t.integer :status, default: 0 # defaults to :active
20
- t.timestamps null: true
21
- end
22
-
23
- add_index :users, :first_name
24
- add_index :users, :last_name
25
- add_index :users, :email
26
- add_index :users, :api_key
27
- end
28
-
29
- end
@@ -1,22 +0,0 @@
1
- class CreateAuthorizations < ActiveRecord::Migration
2
-
3
- def change
4
- create_table :authorizations do |t|
5
- t.integer :user_id
6
- t.string :provider, limit: 50
7
- t.string :uid
8
- t.string :token, limit: 500
9
- t.datetime :expires_at
10
- t.datetime :last_session_at
11
- t.string :last_session_ip
12
- t.integer :session_count, default: 0
13
- t.timestamps null: true
14
- end
15
-
16
- add_index :authorizations, :user_id
17
- add_index :authorizations, [ :user_id, :provider ]
18
- add_index :authorizations, :uid
19
- add_index :authorizations, :token
20
- end
21
-
22
- end
@@ -1,54 +0,0 @@
1
- module Challah
2
- # Plugins are used to extend the functionality of Challah.
3
- module Plugins
4
- # A simple DSL for registering a plugin
5
- class Plugin
6
- attr_reader :active_record, :action_controller, :user_extensions, :user_init_methods
7
-
8
- def initialize
9
- @active_record ||= []
10
- @action_controller ||= []
11
- @user_extensions ||= []
12
- @user_init_methods ||= []
13
- end
14
-
15
- # When active_record or action_controller is loaded, run the given block
16
- def on_load(framework, &block)
17
- return unless [ :active_record, :action_controller ].include?(framework)
18
- instance_variable_get("@#{framework}") << block
19
- end
20
-
21
- # Pass a module name to include it in the base User model after challah_user
22
- # is run
23
- def extend_user(module_name, init_method = nil)
24
- @user_extensions << module_name
25
- @user_init_methods << init_method unless init_method.nil?
26
- end
27
- end
28
-
29
- # Register a new plugin.
30
- def register_plugin(name, &block)
31
- plugin = Plugin.new
32
- plugin.instance_eval(&block)
33
- @plugins[name] = plugin
34
- end
35
-
36
- # Get the list of all plugins
37
- def plugins
38
- @plugins
39
- end
40
- end
41
-
42
- # Loop through all registered plugins and extend User functionality.
43
- def self.include_user_plugins!
44
- Challah.plugins.values.each do |plugin|
45
- plugin.user_extensions.each do |mod|
46
- Challah.user.send(:extend, mod)
47
- end
48
-
49
- plugin.user_init_methods.each do |method_name|
50
- Challah.user.send(method_name)
51
- end
52
- end
53
- end
54
- end