authentasaurus 0.8.8 → 0.8.9

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 (146) hide show
  1. data/CHANGELIST +2 -6
  2. data/TODO +0 -5
  3. data/app/controllers/areas_controller.rb +1 -1
  4. data/app/controllers/groups_controller.rb +1 -1
  5. data/app/controllers/permissions_controller.rb +1 -1
  6. data/app/controllers/recoveries_controller.rb +1 -1
  7. data/app/controllers/registrations_controller.rb +1 -1
  8. data/app/controllers/sessions_controller.rb +2 -2
  9. data/app/controllers/user_invitations_controller.rb +1 -1
  10. data/app/controllers/users_controller.rb +1 -1
  11. data/app/controllers/validations_controller.rb +1 -1
  12. data/app/models/area.rb +1 -1
  13. data/app/models/authentasaurus_emailer.rb +6 -6
  14. data/app/models/group.rb +1 -1
  15. data/app/models/permission.rb +1 -1
  16. data/app/models/recovery.rb +1 -1
  17. data/app/models/user_invitation.rb +1 -1
  18. data/app/models/validation.rb +1 -1
  19. data/app/views/authentasaurus_emailer/invitation_mail.html.erb +2 -2
  20. data/app/views/authentasaurus_emailer/recovery_mail.html.erb +2 -2
  21. data/app/views/authentasaurus_emailer/validation_mail.html.erb +2 -2
  22. data/lib/authentasaurus.rb +18 -52
  23. metadata +2 -136
  24. data/app/models/authentasaurus_session.rb +0 -3
  25. data/lib/authentasaurus/ac/acts_as_overrider.rb +0 -48
  26. data/lib/authentasaurus/ac/controllers/areas_controller.rb +0 -75
  27. data/lib/authentasaurus/ac/controllers/groups_controller.rb +0 -77
  28. data/lib/authentasaurus/ac/controllers/permissions_controller.rb +0 -76
  29. data/lib/authentasaurus/ac/controllers/recoveries_controller.rb +0 -67
  30. data/lib/authentasaurus/ac/controllers/registrations_controller.rb +0 -40
  31. data/lib/authentasaurus/ac/controllers/sessions_controller.rb +0 -57
  32. data/lib/authentasaurus/ac/controllers/user_invitations_controller.rb +0 -45
  33. data/lib/authentasaurus/ac/controllers/users_controller.rb +0 -75
  34. data/lib/authentasaurus/ac/controllers/validations_controller.rb +0 -48
  35. data/lib/authentasaurus/ac/routing.rb +0 -86
  36. data/lib/authentasaurus/ar/acts_as_authenticatable.rb +0 -107
  37. data/lib/authentasaurus/ar/acts_as_authenticatable_validatable.rb +0 -35
  38. data/lib/authentasaurus/ar/acts_as_overrider.rb +0 -49
  39. data/lib/authentasaurus/ar/authenticatable.rb +0 -64
  40. data/lib/authentasaurus/ar/migrations.rb +0 -165
  41. data/lib/authentasaurus/ar/models/recovery.rb +0 -34
  42. data/lib/authentasaurus/ar/models/session.rb +0 -78
  43. data/lib/authentasaurus/ar/models/user_invitation.rb +0 -30
  44. data/lib/authentasaurus/ar/models/validation.rb +0 -27
  45. data/lib/authentasaurus/arel/acts_as_authenticatable.rb +0 -67
  46. data/lib/authentasaurus/arel/authenticatable.rb +0 -21
  47. data/lib/authentasaurus/authorization.rb +0 -344
  48. data/lib/authentasaurus/configuration.rb +0 -30
  49. data/lib/authentasaurus/railtie.rb +0 -10
  50. data/lib/generators/authentasaurus/install/USAGE +0 -5
  51. data/lib/generators/authentasaurus/install/install_generator.rb +0 -10
  52. data/lib/generators/authentasaurus/install/templates/authentasaurus_tasks.rake +0 -48
  53. data/lib/generators/authentasaurus/install/templates/defaults.yml +0 -57
  54. data/lib/generators/authentasaurus/views/USAGE +0 -13
  55. data/lib/generators/authentasaurus/views/templates/areas/edit.html.erb +0 -7
  56. data/lib/generators/authentasaurus/views/templates/areas/index.html.erb +0 -11
  57. data/lib/generators/authentasaurus/views/templates/areas/new.html.erb +0 -7
  58. data/lib/generators/authentasaurus/views/templates/areas/show.html.erb +0 -7
  59. data/lib/generators/authentasaurus/views/templates/authentasaurus_emailer/invitation_mail.html.erb +0 -4
  60. data/lib/generators/authentasaurus/views/templates/authentasaurus_emailer/recovery_mail.html.erb +0 -7
  61. data/lib/generators/authentasaurus/views/templates/authentasaurus_emailer/validation_mail.html.erb +0 -6
  62. data/lib/generators/authentasaurus/views/templates/groups/edit.html.erb +0 -7
  63. data/lib/generators/authentasaurus/views/templates/groups/index.html.erb +0 -11
  64. data/lib/generators/authentasaurus/views/templates/groups/new.html.erb +0 -7
  65. data/lib/generators/authentasaurus/views/templates/groups/show.html.erb +0 -7
  66. data/lib/generators/authentasaurus/views/templates/permissions/edit.html.erb +0 -19
  67. data/lib/generators/authentasaurus/views/templates/permissions/index.html.erb +0 -17
  68. data/lib/generators/authentasaurus/views/templates/permissions/new.html.erb +0 -19
  69. data/lib/generators/authentasaurus/views/templates/permissions/show.html.erb +0 -7
  70. data/lib/generators/authentasaurus/views/templates/recoveries/edit.html.erb +0 -24
  71. data/lib/generators/authentasaurus/views/templates/recoveries/new.html.erb +0 -15
  72. data/lib/generators/authentasaurus/views/templates/registrations/new.html.erb +0 -21
  73. data/lib/generators/authentasaurus/views/templates/sessions/new.html.erb +0 -41
  74. data/lib/generators/authentasaurus/views/templates/sessions/no_access.html.erb +0 -1
  75. data/lib/generators/authentasaurus/views/templates/user_invitations/index.html.erb +0 -14
  76. data/lib/generators/authentasaurus/views/templates/user_invitations/new.html.erb +0 -9
  77. data/lib/generators/authentasaurus/views/templates/users/edit.html.erb +0 -27
  78. data/lib/generators/authentasaurus/views/templates/users/index.html.erb +0 -19
  79. data/lib/generators/authentasaurus/views/templates/users/new.html.erb +0 -27
  80. data/lib/generators/authentasaurus/views/templates/users/show.html.erb +0 -11
  81. data/lib/generators/authentasaurus/views/templates/validations/resend_validation_email.html.erb +0 -6
  82. data/lib/generators/authentasaurus/views/templates/validations/validate.html.erb +0 -6
  83. data/lib/generators/authentasaurus/views/views_generator.rb +0 -76
  84. data/rdoc/apple-touch-icon.png +0 -0
  85. data/rdoc/classes/Authentasaurus.html +0 -65
  86. data/rdoc/classes/Authentasaurus/Ac.html +0 -72
  87. data/rdoc/classes/Authentasaurus/Ac/ActsAsOverrider.html +0 -104
  88. data/rdoc/classes/Authentasaurus/Ac/ActsAsOverrider/ClassMethods.html +0 -397
  89. data/rdoc/classes/Authentasaurus/Ac/Routing.html +0 -61
  90. data/rdoc/classes/Authentasaurus/Ac/Routing/InstanceMethods.html +0 -390
  91. data/rdoc/classes/Authentasaurus/Ar.html +0 -77
  92. data/rdoc/classes/Authentasaurus/Ar/ActsAsAuthenticatable.html +0 -107
  93. data/rdoc/classes/Authentasaurus/Ar/ActsAsAuthenticatable/ClassMethods.html +0 -168
  94. data/rdoc/classes/Authentasaurus/Ar/ActsAsAuthenticatable/InstanceMethods.html +0 -357
  95. data/rdoc/classes/Authentasaurus/Ar/ActsAsAuthenticatableValidatable.html +0 -109
  96. data/rdoc/classes/Authentasaurus/Ar/ActsAsAuthenticatableValidatable/ClassMethods.html +0 -113
  97. data/rdoc/classes/Authentasaurus/Ar/ActsAsAuthenticatableValidatable/InstanceMethods.html +0 -54
  98. data/rdoc/classes/Authentasaurus/Ar/ActsAsOverrider.html +0 -104
  99. data/rdoc/classes/Authentasaurus/Ar/ActsAsOverrider/ClassMethods.html +0 -320
  100. data/rdoc/classes/Authentasaurus/Ar/Authenticatable.html +0 -104
  101. data/rdoc/classes/Authentasaurus/Ar/Authenticatable/ClassMethods.html +0 -182
  102. data/rdoc/classes/Authentasaurus/Ar/Migrations.html +0 -63
  103. data/rdoc/classes/Authentasaurus/Ar/Migrations/Columns.html +0 -68
  104. data/rdoc/classes/Authentasaurus/Ar/Migrations/Columns/InstanceMethods.html +0 -106
  105. data/rdoc/classes/Authentasaurus/Ar/Migrations/Tables.html +0 -68
  106. data/rdoc/classes/Authentasaurus/Ar/Migrations/Tables/InstanceMethods.html +0 -703
  107. data/rdoc/classes/Authentasaurus/Arel.html +0 -65
  108. data/rdoc/classes/Authentasaurus/Arel/ActsAsAuthenticatable.html +0 -107
  109. data/rdoc/classes/Authentasaurus/Arel/ActsAsAuthenticatable/ClassMethods.html +0 -139
  110. data/rdoc/classes/Authentasaurus/Arel/ActsAsAuthenticatable/InstanceMethods.html +0 -113
  111. data/rdoc/classes/Authentasaurus/Arel/Authenticatable.html +0 -105
  112. data/rdoc/classes/Authentasaurus/Arel/Authenticatable/ClassMethods.html +0 -119
  113. data/rdoc/classes/Authentasaurus/Authorization.html +0 -230
  114. data/rdoc/classes/Authentasaurus/Authorization/ActionController.html +0 -63
  115. data/rdoc/classes/Authentasaurus/Authorization/ActionController/ClassMethods.html +0 -263
  116. data/rdoc/classes/Authentasaurus/Authorization/ActionController/InstanceMethods.html +0 -54
  117. data/rdoc/classes/Authentasaurus/Authorization/ActionView.html +0 -54
  118. data/rdoc/classes/Authentasaurus/Authorization/CommonInstanceMethods.html +0 -240
  119. data/rdoc/created.rid +0 -1
  120. data/rdoc/css/main.css +0 -278
  121. data/rdoc/css/panel.css +0 -383
  122. data/rdoc/css/reset.css +0 -53
  123. data/rdoc/favicon.ico +0 -0
  124. data/rdoc/files/README_rdoc.html +0 -366
  125. data/rdoc/files/TODO.html +0 -64
  126. data/rdoc/files/lib/authentasaurus/ac/acts_as_overrider_rb.html +0 -52
  127. data/rdoc/files/lib/authentasaurus/ac/routing_rb.html +0 -60
  128. data/rdoc/files/lib/authentasaurus/ar/acts_as_authenticatable_rb.html +0 -52
  129. data/rdoc/files/lib/authentasaurus/ar/acts_as_authenticatable_validatable_rb.html +0 -52
  130. data/rdoc/files/lib/authentasaurus/ar/acts_as_overrider_rb.html +0 -52
  131. data/rdoc/files/lib/authentasaurus/ar/authenticatable_rb.html +0 -52
  132. data/rdoc/files/lib/authentasaurus/ar/migrations_rb.html +0 -52
  133. data/rdoc/files/lib/authentasaurus/arel/acts_as_authenticatable_rb.html +0 -52
  134. data/rdoc/files/lib/authentasaurus/arel/authenticatable_rb.html +0 -72
  135. data/rdoc/files/lib/authentasaurus/authorization_rb.html +0 -208
  136. data/rdoc/i/arrows.png +0 -0
  137. data/rdoc/i/results_bg.png +0 -0
  138. data/rdoc/i/tree_bg.png +0 -0
  139. data/rdoc/index.html +0 -15
  140. data/rdoc/js/jquery-1.3.2.min.js +0 -19
  141. data/rdoc/js/jquery-effect.js +0 -593
  142. data/rdoc/js/main.js +0 -22
  143. data/rdoc/js/searchdoc.js +0 -628
  144. data/rdoc/panel/index.html +0 -71
  145. data/rdoc/panel/search_index.js +0 -1
  146. data/rdoc/panel/tree.js +0 -1
@@ -1,48 +0,0 @@
1
- module Authentasaurus::Ac::Controllers
2
- module ValidationsController
3
- extend ActiveSupport::Concern
4
-
5
- module ClassMethods
6
- end
7
-
8
- def validate
9
- respond_to do |format|
10
- format.html
11
- end
12
- end
13
-
14
- def activate
15
- respond_to do |format|
16
- validation = Validation.find_by_validation_code(params[:vcode])
17
- if validation
18
- validation.user.activate
19
- validation.destroy
20
- format.html { redirect_to login_url, :notice => I18n.t(:validation_successful, :scope => [:authentasaurus, :messages, :validations])}
21
- else
22
- flash.now[:alert] = I18n.t(:validation_failed, :scope => [:authentasaurus, :messages, :validations])
23
- format.html { render :validate }
24
- end
25
- end
26
- end
27
-
28
- def resend_validation_email
29
- respond_to do |format|
30
- format.html
31
- end
32
- end
33
-
34
- def do_resend_validation_email
35
- validation = Validation.find_by_email params[:email]
36
-
37
- respond_to do |format|
38
- unless validation.nil?
39
- validation.send_validation
40
- format.html {redirect_to login_url, :notice => I18n.t(:validation_email_sent, :scope => [:authentasaurus, :messages, :validations])}
41
- else
42
- flash.now[:alert] = I18n.t(:validation_email_invalid, :scope => [:authentasaurus, :messages, :validations], :email => params[:email])
43
- format.html { render :resend_validation_email }
44
- end
45
- end
46
- end
47
- end
48
- end
@@ -1,86 +0,0 @@
1
- ## Authentasaurus routes helper
2
- module Authentasaurus::Ac
3
- module Routing
4
- extend ActiveSupport::Concern
5
-
6
- # TODO: add documentation here
7
- def authentasaurus_routes(*opts)
8
- options = opts.extract_options!
9
-
10
- # Authenticatable
11
- authentasaurus_sessions options.dup
12
- authentasaurus_users options.dup
13
- # Recoverable
14
- authentasaurus_recoverable
15
-
16
- # Authorizable
17
- if opts.include?(:authorization)
18
- authentasaurus_authorizable options.dup
19
- end
20
-
21
- # Validatable
22
- if opts.include?(:validation)
23
- authentasaurus_validatable
24
- end
25
-
26
- # Invitable
27
- if opts.include?(:invitation)
28
- authentasaurus_invitable options.dup
29
- authentasaurus_invitable_public
30
- end
31
- end
32
-
33
- # TODO: add documentation here
34
- def authentasaurus_sessions(*opts)
35
- get "/sessions/sign-in(.:format)" => "sessions#new", :as => :new_authentasaurus_session
36
- post "/sessions(.:format)" => "sessions#create", :as => :authentasaurus_sessions
37
- delete "/sessions/sign-out(.:format)" => "sessions#destroy", :as => :authentasaurus_session
38
- get "/sessions/no-access(.:format)" => "sessions#no_access", :as => :no_access_authentasaurus_sessions
39
- end
40
-
41
- # TODO: add documentation here
42
- def authentasaurus_users(*opts)
43
- options = opts.extract_options!
44
-
45
- resources :users, options.dup
46
- end
47
-
48
- # TODO: add documentation here
49
- def authentasaurus_authorizable(*opts)
50
- options = opts.extract_options!
51
-
52
- resources :groups, options.dup
53
- resources :areas, options.dup
54
- resources :permissions, options.dup
55
- end
56
-
57
- # TODO: add documentation here
58
- def authentasaurus_validatable
59
- match "/validate" => "validations#validate", :as => 'validate'
60
- match "/activate" => "validations#activate", :as => 'activate'
61
- match "/resend-validation" => "validations#resend_validation_email", :via => :get, :as => 'recover_password'
62
- match "/resend-validation" => "validations#do_resend_validation_email", :via => :post, :as => 'do_recover_password'
63
- end
64
-
65
- # TODO: add documentation here
66
- def authentasaurus_invitable(*opts)
67
- options = opts.extract_options!
68
-
69
- resources :user_invitations, options.dup.merge({:except => [:show, :edit, :update]})
70
- end
71
-
72
- def authentasaurus_invitable_public(*opts)
73
- options = opts.extract_options!
74
-
75
- resources :registrations, :only => [:new, :create], :path_prefix => "/:token", :requirements => {:token => /[0-9a-zA-Z]+/}
76
- end
77
-
78
- # TODO: add documentation here
79
- def authentasaurus_recoverable
80
- match "/forgot-password" => "recoveries#new", :via => :get, :as => 'forgot_password'
81
- match "/forgot-password" => "recoveries#create", :via => :post, :as => 'do_forgot_password'
82
- match "/recover-password/:token" => "recoveries#edit", :via => :get, :as => 'recover_password'
83
- match "/recover-password/:token" => "recoveries#destroy", :via => :delete, :as => 'do_recover_password'
84
- end
85
- end
86
- end
@@ -1,107 +0,0 @@
1
- module Authentasaurus::Ar
2
- module ActsAsAuthenticatable
3
- extend ActiveSupport::Concern
4
-
5
- module ClassMethods
6
- case Authentasaurus::Configuration.instance.hashing
7
- when "SHA2"
8
- require 'digest/sha2'
9
- when "SHA1"
10
- require 'digest/sha1'
11
- when "MD5"
12
- require 'digest/md5'
13
- else
14
- require 'digest/sha2'
15
- end
16
-
17
-
18
- ## Authenticates the username (or email) and password
19
- def authenticate(username_or_email, password, remember = false)
20
- user=self.find_by_username(username_or_email) || self.find_by_email(username_or_email)
21
- if user
22
- expected_password=encrypt_password(password, user.password_seed)
23
- unless expected_password == user.hashed_password && user.active
24
- user = nil
25
- else
26
- user.create_remember_me_token if remember
27
- end
28
- end
29
- return user
30
- end
31
-
32
- ## Encrypts the password using the given seed
33
- def encrypt_password(password, password_seed)
34
- pass_to_hash=password + "Securasaurus" + password_seed
35
-
36
- case Authentasaurus::Configuration.instance.hashing
37
- when "SHA2"
38
- Digest::SHA2.hexdigest(pass_to_hash)
39
- when "SHA1"
40
- Digest::SHA1.hexdigest(pass_to_hash)
41
- when "MD5"
42
- Digest::MD5.hexdigest(pass_to_hash)
43
- else
44
- Digest::SHA2.hexdigest(pass_to_hash)
45
- end
46
-
47
- end
48
- end
49
-
50
- def username=(username)
51
- super(username.downcase)
52
- end
53
-
54
- ## Password attribute (used when creating a user)
55
- def password
56
- return @password
57
- end
58
-
59
- def password=(pwd)
60
- @password = pwd
61
- return if pwd.blank?
62
- create_salt
63
- self.hashed_password = self.class.encrypt_password(@password, self.password_seed)
64
- end
65
-
66
- ## New password attribute (used when editing a user)
67
- def new_password
68
- return @new_password
69
- end
70
-
71
- def new_password=(pwd)
72
- @new_password = pwd
73
- return if pwd.blank?
74
- create_salt
75
- self.hashed_password = self.class.encrypt_password(@new_password, self.password_seed)
76
- end
77
-
78
- def activate
79
- self.update_attribute :active, true
80
- end
81
-
82
- def deactivate
83
- self.update_attribute :active, false
84
- end
85
-
86
- def create_remember_me_token
87
- pass_to_hash=Time.now.to_i.to_s + "Securasaurus" + password_seed
88
- self.update_attribute :remember_me_token, Digest::SHA1.hexdigest(pass_to_hash)
89
- self.remember_me_token
90
- end
91
-
92
- private
93
- def new_password_blank?
94
- self.new_password.blank?
95
- end
96
-
97
- ## Creates password seed (salt)
98
- def create_salt
99
- self.password_seed = self.object_id.to_s + rand.to_s
100
- end
101
-
102
- ## Dont delete the last user
103
- def dont_delete_admin
104
- raise "You cannot delete the last admin" if self.id == 1 || User.count == 1
105
- end
106
- end
107
- end
@@ -1,35 +0,0 @@
1
- module Authentasaurus::Ar
2
- module ActsAsAuthenticatableValidatable
3
- extend ActiveSupport::Concern
4
-
5
- included do
6
- include ActsAsAuthenticatable
7
- end
8
-
9
- module ClassMethods
10
- ## Authenticates the username (or email) and password
11
- def authenticate(username_or_email, password, remember = false)
12
- user=self.find_by_username(username_or_email) || self.find_by_email(username_or_email)
13
- if user
14
- expected_password=encrypt_password(password, user.password_seed)
15
- unless expected_password == user.hashed_password && user.active && user.validation.nil?
16
- user = nil
17
- else
18
- user.create_remember_me_token if remember
19
- end
20
- end
21
- return user
22
- end
23
- end
24
-
25
- private
26
- def send_validation
27
- unless self.active
28
- validation = self.build_validation(:email => self.email, :validation_code => User.encrypt_password(self.username,self.password_seed))
29
- unless validation.save
30
- raise "Could not create validation record"
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,49 +0,0 @@
1
- module Authentasaurus::Ar
2
- Dir[File.dirname(__FILE__) + '/models/*.rb'].each {|file| require file }
3
-
4
- module ActsAsOverrider
5
- extend ActiveSupport::Concern
6
-
7
- module ClassMethods
8
- def acts_as_area
9
- unloadable
10
-
11
- has_many :permissions, :dependent => :destroy
12
- has_many :groups, :through => :permissions
13
-
14
- validates_presence_of :name
15
- end
16
-
17
- def acts_as_group
18
- has_many :permissions, :dependent => :destroy
19
- has_many :areas, :through => :permissions
20
-
21
- validates_presence_of :name
22
- end
23
-
24
- def acts_as_permission
25
- unloadable
26
-
27
- belongs_to :group
28
- belongs_to :area
29
-
30
- # Check that everything is there
31
- validates_presence_of :group_id, :area_id
32
- # Check foreign keys
33
- validates_associated :group, :area
34
- end
35
-
36
- def acts_as_recovery
37
- include Authentasaurus::Ar::Models::Recovery
38
- end
39
-
40
- def acts_as_user_invitation
41
- include Authentasaurus::Ar::Models::UserInvitation
42
- end
43
-
44
- def acts_as_validation
45
- include Authentasaurus::Ar::Models::Validation
46
- end
47
- end
48
- end
49
- end
@@ -1,64 +0,0 @@
1
- module Authentasaurus::Ar
2
- module Authenticatable
3
- extend ActiveSupport::Concern
4
-
5
- module ClassMethods
6
- def authenticatable(*args)
7
- options = args.extract_options!
8
- args = args.flatten
9
- # Associations
10
- belongs_to :group
11
- has_many :permissions, :through => :group
12
- # Validation
13
- # basic attributes
14
- validates_presence_of :username, :hashed_password, :password_seed, :email, :name
15
- validates_uniqueness_of :username, :email
16
- validates_format_of :username, :with => /^[a-z0-9]*([a-z0-9]{4})+[a-z0-9]*$/ # alpha-numeric only and at least 4 characters
17
- validates_format_of :email, :with => %r{[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}}
18
- # password validations
19
- validates_confirmation_of :password, :on => :create, :if => Proc.new {|user| user.hashed_password.nil? || user.password_seed.nil? }
20
- validates_presence_of :password, :on => :create, :if => Proc.new {|user| user.hashed_password.nil? || user.password_seed.nil? }
21
- validates_length_of :password, :minimum => 6, :on => :create, :if => Proc.new {|user| user.hashed_password.nil? || user.password_seed.nil? }
22
- # new password
23
- validates_confirmation_of :new_password, :on => :update, :unless => :new_password_blank?
24
- validates_length_of :new_password, :minimum => 6, :on => :update, :unless => :new_password_blank?
25
- # format of password
26
- if args.include?(:strong_password)
27
- validates_format_of :password, :with => %r{[a-z]}, :on => :create, :message => :"authenticatable.lower_case_password", :if => Proc.new {|user| user.hashed_password.nil? || user.password_seed.nil? }
28
- validates_format_of :password, :with => %r{[A-Z]}, :on => :create, :message => :"authenticatable.upper_case_password", :if => Proc.new {|user| user.hashed_password.nil? || user.password_seed.nil? }
29
- validates_format_of :password, :with => %r{[0-9]}, :on => :create, :message => :"authenticatable.digit_password", :if => Proc.new {|user| user.hashed_password.nil? || user.password_seed.nil? }
30
- validates_format_of :password, :with => %r{[@$%!&]}, :on => :create, :message => :"authenticatable.symbol_password", :if => Proc.new {|user| user.hashed_password.nil? || user.password_seed.nil? }
31
- # new password
32
- validates_format_of :new_password, :with => %r{[a-z]}, :on => :update, :message => :"authenticatable.lower_case_password", :unless => :new_password_blank?
33
- validates_format_of :new_password, :with => %r{[A-Z]}, :on => :update, :message => :"authenticatable.upper_case_password", :unless => :new_password_blank?
34
- validates_format_of :new_password, :with => %r{[0-9]}, :on => :update, :message => :"authenticatable.digit_password", :unless => :new_password_blank?
35
- validates_format_of :new_password, :with => %r{[@$%!&]}, :on => :update, :message => :"authenticatable.symbol_password", :unless => :new_password_blank?
36
- end
37
-
38
- # Accessors
39
- attr_accessor :password_confirmation, :new_password_confirmation
40
-
41
- # default data
42
- class << self
43
- attr_accessor :default_data
44
- end
45
-
46
- @default_data = {}
47
-
48
- # dont delete admin
49
- before_destroy :dont_delete_admin
50
-
51
- #validation
52
- if args.include?(:validatable)
53
- has_one :validation, :as => :user
54
- after_create :send_validation
55
- # include authentication methods including validation
56
- include ActsAsAuthenticatableValidatable
57
- else
58
- # include authentication methods
59
- include ActsAsAuthenticatable
60
- end
61
- end
62
- end
63
- end
64
- end
@@ -1,165 +0,0 @@
1
- module Authentasaurus::Ar
2
- module Migrations
3
- # Extends ActiveRecord::ConnectionAdapters::SchemaStatements
4
- module Tables
5
- extend ActiveSupport::Concern
6
-
7
- # creates all tables
8
- def authentasaurus_tables
9
- authentasaurus_user :authorizable
10
- authentasaurus_group
11
- authentasaurus_area
12
- authentasaurus_permission
13
- authentasaurus_validation
14
- authentasaurus_user_invitation
15
- authentasaurus_recovery
16
- end
17
-
18
- # creates users table
19
- def authentasaurus_user(*opts)
20
- create_table :users do |t|
21
- t.string :username, :null => false
22
- t.string :hashed_password, :null => false
23
- t.string :password_seed, :null => false
24
- t.string :name, :null => false
25
- t.string :email, :null => false
26
- t.boolean :active, :null => false, :default => false
27
- t.string :remember_me_token
28
-
29
- if opts.include?(:authorizable) || opts.include?("authorizable")
30
- t.integer :group_id, :null => false
31
- end
32
-
33
- t.timestamps
34
- end
35
- end
36
-
37
- # creates groups table
38
- def authentasaurus_group
39
- create_table :groups do |t|
40
- t.string :name, :null => false
41
-
42
- t.timestamps
43
- end
44
- end
45
-
46
- # creates areas table
47
- def authentasaurus_area
48
- create_table :areas do |t|
49
- t.string :name, :null => false
50
-
51
- t.timestamps
52
- end
53
- end
54
-
55
- # creates permissions table
56
- def authentasaurus_permission
57
- create_table :permissions do |t|
58
- t.integer :group_id, :null => false
59
- t.integer :area_id, :null => false
60
- t.boolean :read, :null => false, :default => false
61
- t.boolean :write, :null => false, :default => false
62
-
63
- t.timestamps
64
- end
65
- end
66
-
67
- # creates validations table
68
- def authentasaurus_validation
69
- create_table :validations do |t|
70
- t.integer :user_id, :null => false
71
- t.string :user_type, :null => false
72
- t.string :email, :null => false
73
- t.string :validation_code, :null => false
74
-
75
- t.timestamps
76
- end
77
- end
78
-
79
- # creates user_invitations table
80
- def authentasaurus_user_invitation
81
- create_table :user_invitations do |t|
82
- t.string :token, :null => false, :unique => true
83
- t.string :email
84
-
85
- t.timestamps
86
- end
87
- end
88
-
89
- # creates recoveries table
90
- def authentasaurus_recovery
91
- create_table :recoveries do |t|
92
- t.integer :user_id, :null => false
93
- t.string :email, :null => false
94
- t.string :token, :null => false, :unique => true
95
-
96
- t.timestamps
97
- end
98
- end
99
-
100
- # drops all tables
101
- def authentasaurus_drop_tables
102
- authentasaurus_drop_user
103
- authentasaurus_drop_group
104
- authentasaurus_drop_area
105
- authentasaurus_drop_permission
106
- authentasaurus_drop_validation
107
- authentasaurus_drop_user_invitation
108
- authentasaurus_drop_recovery
109
- end
110
-
111
- # drops users table
112
- def authentasaurus_drop_user
113
- drop_table :users
114
- end
115
-
116
- # drops groups table
117
- def authentasaurus_drop_group
118
- drop_table :groups
119
- end
120
-
121
- # drops areas table
122
- def authentasaurus_drop_area
123
- drop_table :areas
124
- end
125
-
126
- # drops permissions table
127
- def authentasaurus_drop_permission
128
- drop_table :permissions
129
- end
130
-
131
- # drops validations table
132
- def authentasaurus_drop_validation
133
- drop_table :validations
134
- end
135
-
136
- # drops user_invitations table
137
- def authentasaurus_drop_user_invitation
138
- drop_table :user_invitations
139
- end
140
-
141
- # drops recoveries table
142
- def authentasaurus_drop_recovery
143
- drop_table :recoveries
144
- end
145
- end
146
-
147
- # Extends ActiveRecord::ConnectionAdapters::TableDefinition
148
- module Columns
149
- extend ActiveSupport::Concern
150
-
151
- def user(*opts)
152
- string :username, :null => false
153
- string :hashed_password, :null => false
154
- string :password_seed, :null => false
155
- string :name, :null => false
156
- string :email, :null => false
157
- string :remember_me_token
158
- boolean :active, :null => false, :default => false
159
- if opts.include?(:authorizable)
160
- integer :group_id, :null => false
161
- end
162
- end
163
- end
164
- end
165
- end