challah 1.5.0 → 2.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
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