authentasaurus 0.8.8 → 0.8.9

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