simple_user 0.1.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +35 -0
  4. data/Rakefile +40 -0
  5. data/app/assets/javascripts/simple_user/application.js +15 -0
  6. data/app/assets/javascripts/simple_user/facebook_connect.js.erb +33 -0
  7. data/app/assets/stylesheets/simple_user/application.css +13 -0
  8. data/app/controllers/simple_user/admin_users/registrations_controller.rb +7 -0
  9. data/app/controllers/simple_user/admin_users/sessions_controller.rb +20 -0
  10. data/app/controllers/simple_user/admin_users_controller.rb +134 -0
  11. data/app/controllers/simple_user/application_controller.rb +7 -0
  12. data/app/controllers/simple_user/auth_controller.rb +26 -0
  13. data/app/controllers/simple_user/users/registrations_controller.rb +5 -0
  14. data/app/controllers/simple_user/users/sessions_controller.rb +41 -0
  15. data/app/controllers/simple_user/users_controller.rb +88 -0
  16. data/app/helpers/simple_user/application_helper.rb +13 -0
  17. data/app/helpers/simple_user/links_helper.rb +9 -0
  18. data/app/models/ability.rb +25 -0
  19. data/app/models/role.rb +18 -0
  20. data/app/models/simple_user/admin_user.rb +48 -0
  21. data/app/models/simple_user/authentication.rb +9 -0
  22. data/app/models/simple_user/user.rb +92 -0
  23. data/app/views/layouts/simple_user/application.html.erb +28 -0
  24. data/app/views/simple_user/admin_users/_form.html.erb +15 -0
  25. data/app/views/simple_user/admin_users/confirmations/new.html.erb +16 -0
  26. data/app/views/simple_user/admin_users/edit.html.erb +6 -0
  27. data/app/views/simple_user/admin_users/index.html.erb +27 -0
  28. data/app/views/simple_user/admin_users/mailer/confirmation_instructions.html.erb +5 -0
  29. data/app/views/simple_user/admin_users/mailer/reset_password_instructions.html.erb +8 -0
  30. data/app/views/simple_user/admin_users/mailer/unlock_instructions.html.erb +7 -0
  31. data/app/views/simple_user/admin_users/new.html.erb +5 -0
  32. data/app/views/simple_user/admin_users/passwords/edit.html.erb +19 -0
  33. data/app/views/simple_user/admin_users/passwords/new.html.erb +15 -0
  34. data/app/views/simple_user/admin_users/registrations/edit.html.erb +28 -0
  35. data/app/views/simple_user/admin_users/registrations/new.html.erb +18 -0
  36. data/app/views/simple_user/admin_users/sessions/new.html.erb +15 -0
  37. data/app/views/simple_user/admin_users/shared/_links.erb +25 -0
  38. data/app/views/simple_user/admin_users/show.html.erb +15 -0
  39. data/app/views/simple_user/admin_users/unlocks/new.html.erb +16 -0
  40. data/app/views/simple_user/application/_menu_admin_users.html.erb +15 -0
  41. data/app/views/simple_user/application/_menu_users.html.erb +9 -0
  42. data/app/views/simple_user/users/_form.html.erb +14 -0
  43. data/app/views/simple_user/users/confirmations/new.html.erb +16 -0
  44. data/app/views/simple_user/users/edit.html.erb +6 -0
  45. data/app/views/simple_user/users/index.html.erb +31 -0
  46. data/app/views/simple_user/users/mailer/confirmation_instructions.html.erb +5 -0
  47. data/app/views/simple_user/users/mailer/reset_password_instructions.html.erb +8 -0
  48. data/app/views/simple_user/users/mailer/unlock_instructions.html.erb +7 -0
  49. data/app/views/simple_user/users/new.html.erb +5 -0
  50. data/app/views/simple_user/users/passwords/edit.html.erb +19 -0
  51. data/app/views/simple_user/users/passwords/new.html.erb +15 -0
  52. data/app/views/simple_user/users/registrations/edit.html.erb +30 -0
  53. data/app/views/simple_user/users/registrations/new.html.erb +20 -0
  54. data/app/views/simple_user/users/sessions/new.html.erb +15 -0
  55. data/app/views/simple_user/users/shared/_links.erb +25 -0
  56. data/app/views/simple_user/users/show.html.erb +25 -0
  57. data/app/views/simple_user/users/unlocks/new.html.erb +16 -0
  58. data/config/initializers/devise.rb +243 -0
  59. data/config/initializers/omniauth.rb +7 -0
  60. data/config/initializers/rolify.rb +8 -0
  61. data/config/locales/devise.en.yml +59 -0
  62. data/config/routes.rb +39 -0
  63. data/db/migrate/20130312215459_devise_create_simple_user_users.rb +50 -0
  64. data/db/migrate/20130312215519_devise_create_simple_user_admin_users.rb +48 -0
  65. data/db/migrate/20130312215950_create_simple_user_authentications.rb +13 -0
  66. data/db/migrate/20130312226960_rolify_create_roles.rb +19 -0
  67. data/db/seed.rb +9 -0
  68. data/lib/generators/simple_user/generate_views/generate_views_generator.rb +12 -0
  69. data/lib/generators/simple_user/install/install_generator.rb +20 -0
  70. data/lib/generators/simple_user/install/templates/devise_config.yml +1 -0
  71. data/lib/generators/simple_user/install/templates/fb_config.yml +3 -0
  72. data/lib/generators/simple_user/install/templates/simple_user.yml +3 -0
  73. data/lib/simple_user.rb +4 -0
  74. data/lib/simple_user/engine.rb +48 -0
  75. data/lib/simple_user/version.rb +3 -0
  76. data/lib/tasks/simple_user_tasks.rake +16 -0
  77. data/test/dummy/README.rdoc +261 -0
  78. data/test/dummy/Rakefile +7 -0
  79. data/test/dummy/app/assets/javascripts/application.js +16 -0
  80. data/test/dummy/app/assets/javascripts/welcome.js +2 -0
  81. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  82. data/test/dummy/app/assets/stylesheets/welcome.css +4 -0
  83. data/test/dummy/app/controllers/application_controller.rb +31 -0
  84. data/test/dummy/app/controllers/welcome_controller.rb +4 -0
  85. data/test/dummy/app/helpers/application_helper.rb +2 -0
  86. data/test/dummy/app/helpers/welcome_helper.rb +2 -0
  87. data/test/dummy/app/views/admin_users/_form.html.erb +15 -0
  88. data/test/dummy/app/views/admin_users/confirmations/new.html.erb +16 -0
  89. data/test/dummy/app/views/admin_users/edit.html.erb +6 -0
  90. data/test/dummy/app/views/admin_users/index.html.erb +27 -0
  91. data/test/dummy/app/views/admin_users/mailer/confirmation_instructions.html.erb +5 -0
  92. data/test/dummy/app/views/admin_users/mailer/reset_password_instructions.html.erb +8 -0
  93. data/test/dummy/app/views/admin_users/mailer/unlock_instructions.html.erb +7 -0
  94. data/test/dummy/app/views/admin_users/new.html.erb +5 -0
  95. data/test/dummy/app/views/admin_users/passwords/edit.html.erb +19 -0
  96. data/test/dummy/app/views/admin_users/passwords/new.html.erb +15 -0
  97. data/test/dummy/app/views/admin_users/registrations/edit.html.erb +28 -0
  98. data/test/dummy/app/views/admin_users/registrations/new.html.erb +18 -0
  99. data/test/dummy/app/views/admin_users/sessions/new.html.erb +15 -0
  100. data/test/dummy/app/views/admin_users/shared/_links.erb +25 -0
  101. data/test/dummy/app/views/admin_users/show.html.erb +15 -0
  102. data/test/dummy/app/views/admin_users/unlocks/new.html.erb +16 -0
  103. data/test/dummy/app/views/application/_menu_admin_users.html.erb +15 -0
  104. data/test/dummy/app/views/application/_menu_users.html.erb +9 -0
  105. data/test/dummy/app/views/layouts/application.html.erb +28 -0
  106. data/test/dummy/app/views/simple_user/admin_users/_form.html.erb +15 -0
  107. data/test/dummy/app/views/simple_user/admin_users/confirmations/new.html.erb +16 -0
  108. data/test/dummy/app/views/simple_user/admin_users/edit.html.erb +6 -0
  109. data/test/dummy/app/views/simple_user/admin_users/index.html.erb +27 -0
  110. data/test/dummy/app/views/simple_user/admin_users/mailer/confirmation_instructions.html.erb +5 -0
  111. data/test/dummy/app/views/simple_user/admin_users/mailer/reset_password_instructions.html.erb +8 -0
  112. data/test/dummy/app/views/simple_user/admin_users/mailer/unlock_instructions.html.erb +7 -0
  113. data/test/dummy/app/views/simple_user/admin_users/new.html.erb +5 -0
  114. data/test/dummy/app/views/simple_user/admin_users/passwords/edit.html.erb +19 -0
  115. data/test/dummy/app/views/simple_user/admin_users/passwords/new.html.erb +15 -0
  116. data/test/dummy/app/views/simple_user/admin_users/registrations/edit.html.erb +28 -0
  117. data/test/dummy/app/views/simple_user/admin_users/registrations/new.html.erb +18 -0
  118. data/test/dummy/app/views/simple_user/admin_users/sessions/new.html.erb +15 -0
  119. data/test/dummy/app/views/simple_user/admin_users/shared/_links.erb +25 -0
  120. data/test/dummy/app/views/simple_user/admin_users/show.html.erb +15 -0
  121. data/test/dummy/app/views/simple_user/admin_users/unlocks/new.html.erb +16 -0
  122. data/test/dummy/app/views/simple_user/application/_menu_admin_users.html.erb +15 -0
  123. data/test/dummy/app/views/simple_user/application/_menu_users.html.erb +9 -0
  124. data/test/dummy/app/views/simple_user/users/_form.html.erb +14 -0
  125. data/test/dummy/app/views/simple_user/users/confirmations/new.html.erb +16 -0
  126. data/test/dummy/app/views/simple_user/users/edit.html.erb +6 -0
  127. data/test/dummy/app/views/simple_user/users/index.html.erb +31 -0
  128. data/test/dummy/app/views/simple_user/users/mailer/confirmation_instructions.html.erb +5 -0
  129. data/test/dummy/app/views/simple_user/users/mailer/reset_password_instructions.html.erb +8 -0
  130. data/test/dummy/app/views/simple_user/users/mailer/unlock_instructions.html.erb +7 -0
  131. data/test/dummy/app/views/simple_user/users/new.html.erb +5 -0
  132. data/test/dummy/app/views/simple_user/users/passwords/edit.html.erb +19 -0
  133. data/test/dummy/app/views/simple_user/users/passwords/new.html.erb +15 -0
  134. data/test/dummy/app/views/simple_user/users/registrations/edit.html.erb +30 -0
  135. data/test/dummy/app/views/simple_user/users/registrations/new.html.erb +20 -0
  136. data/test/dummy/app/views/simple_user/users/sessions/new.html.erb +15 -0
  137. data/test/dummy/app/views/simple_user/users/shared/_links.erb +25 -0
  138. data/test/dummy/app/views/simple_user/users/show.html.erb +25 -0
  139. data/test/dummy/app/views/simple_user/users/unlocks/new.html.erb +16 -0
  140. data/test/dummy/app/views/welcome/index.html.erb +3 -0
  141. data/test/dummy/config.ru +4 -0
  142. data/test/dummy/config/application.rb +59 -0
  143. data/test/dummy/config/boot.rb +10 -0
  144. data/test/dummy/config/database.yml +25 -0
  145. data/test/dummy/config/devise_config.yml +1 -0
  146. data/test/dummy/config/environment.rb +5 -0
  147. data/test/dummy/config/environments/development.rb +37 -0
  148. data/test/dummy/config/environments/production.rb +67 -0
  149. data/test/dummy/config/environments/test.rb +37 -0
  150. data/test/dummy/config/fb_config.yml +3 -0
  151. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  152. data/test/dummy/config/initializers/inflections.rb +15 -0
  153. data/test/dummy/config/initializers/mime_types.rb +5 -0
  154. data/test/dummy/config/initializers/secret_token.rb +7 -0
  155. data/test/dummy/config/initializers/session_store.rb +8 -0
  156. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  157. data/test/dummy/config/locales/en.yml +5 -0
  158. data/test/dummy/config/routes.rb +7 -0
  159. data/test/dummy/db/development.sqlite3 +0 -0
  160. data/test/dummy/db/migrate/20130314021609_devise_create_simple_user_users.simple_user.rb +51 -0
  161. data/test/dummy/db/migrate/20130314021610_devise_create_simple_user_admin_users.simple_user.rb +49 -0
  162. data/test/dummy/db/migrate/20130314021611_create_simple_user_authentications.simple_user.rb +14 -0
  163. data/test/dummy/db/migrate/20130314021612_rolify_create_simple_user_roles.simple_user.rb +20 -0
  164. data/test/dummy/db/migrate/20130314222446_devise_create_simple_user_users.simple_user.rb +51 -0
  165. data/test/dummy/db/migrate/20130314222447_devise_create_simple_user_admin_users.simple_user.rb +49 -0
  166. data/test/dummy/db/migrate/20130314222448_create_simple_user_authentications.simple_user.rb +14 -0
  167. data/test/dummy/db/migrate/20130314222449_rolify_create_roles.simple_user.rb +20 -0
  168. data/test/dummy/db/schema.rb +87 -0
  169. data/test/dummy/log/development.log +100 -0
  170. data/test/dummy/public/404.html +26 -0
  171. data/test/dummy/public/422.html +26 -0
  172. data/test/dummy/public/500.html +25 -0
  173. data/test/dummy/public/favicon.ico +0 -0
  174. data/test/dummy/script/rails +6 -0
  175. data/test/dummy/test/functional/welcome_controller_test.rb +9 -0
  176. data/test/dummy/test/unit/helpers/welcome_helper_test.rb +4 -0
  177. data/test/dummy/tmp/cache/assets/C43/6A0/sprockets%2F9112a8a5c58f114023075f00ab994366 +0 -0
  178. data/test/dummy/tmp/cache/assets/C7B/190/sprockets%2F37b103f4623089af1456b90830fe941c +0 -0
  179. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  180. data/test/dummy/tmp/cache/assets/D13/C60/sprockets%2F2dedb8177c20286c4259c1d58c5646cc +0 -0
  181. data/test/dummy/tmp/cache/assets/D21/5D0/sprockets%2Fe2c4f946939f2d7d0b42d86383755cae +0 -0
  182. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  183. data/test/dummy/tmp/cache/assets/D3E/F40/sprockets%2F25a167c7563d6fe8ec6b13ec1ac09274 +0 -0
  184. data/test/dummy/tmp/cache/assets/D43/A50/sprockets%2Fa41b368b71464f0a4feb19b6f875e44e +0 -0
  185. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  186. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  187. data/test/dummy/tmp/cache/assets/D92/950/sprockets%2Fcda629d2e4e4583027facd41bf1ea406 +0 -0
  188. data/test/dummy/tmp/cache/assets/DA0/140/sprockets%2F25f485eb0a9f28b68e69ab1c0f57c0da +0 -0
  189. data/test/dummy/tmp/cache/assets/DCF/BD0/sprockets%2Fc8b53c6aae12e5a5be5fe8db5472a793 +0 -0
  190. data/test/dummy/tmp/cache/assets/DD2/810/sprockets%2Fdc8aca3689d6b6e14aa38b7c88a46bc3 +0 -0
  191. data/test/dummy/tmp/cache/assets/DD8/CE0/sprockets%2F5de7f141c1d9dc26ce8af1ad6246d99f +0 -0
  192. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  193. data/test/dummy/tmp/cache/assets/E02/930/sprockets%2Fec83bf6c33e43fb6a5cf38a52df8c60e +0 -0
  194. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  195. data/test/dummy/tmp/cache/assets/E2A/CE0/sprockets%2F17bd5e2fd8a5fd2d834c9dadfd102c2f +0 -0
  196. data/test/fixtures/simple_user/admin_users.yml +11 -0
  197. data/test/fixtures/simple_user/authentications.yml +13 -0
  198. data/test/fixtures/simple_user/users.yml +11 -0
  199. data/test/integration/navigation_test.rb +10 -0
  200. data/test/simple_user_test.rb +7 -0
  201. data/test/test_helper.rb +15 -0
  202. data/test/unit/simple_user/admin_user_test.rb +9 -0
  203. data/test/unit/simple_user/authentication_test.rb +9 -0
  204. data/test/unit/simple_user/user_test.rb +9 -0
  205. metadata +516 -0
@@ -0,0 +1,13 @@
1
+ module SimpleUser
2
+ module ApplicationHelper
3
+
4
+ def print_yes_or_no(value)
5
+ value ? "Yes" : "No"
6
+ end
7
+
8
+ def link_to_login(label = "Login", options = {})
9
+ link_to label, my_engine.new_user_session_path, options
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ module SimpleUser
2
+ module LinksHelper
3
+
4
+ def login(label = "Login", options = {})
5
+ link_to label, simple_user.new_user_session_path, options
6
+ end
7
+
8
+ end
9
+ end
@@ -0,0 +1,25 @@
1
+ class Ability
2
+ include CanCan::Ability
3
+
4
+ def initialize(admin_user)
5
+ admin_user ||= SimpleUser::AdminUser.new
6
+
7
+ puts "ADMIN USER: #{admin_user.inspect}"
8
+
9
+ if admin_user.has_role? :admin
10
+ can :manage, :all
11
+ else
12
+ if admin_user.has_role? :role_manager
13
+ can :manage, SimpleUser::AdminUser
14
+ can :manage, Role
15
+ elsif admin_user.has_role? :admin_user_manager
16
+ can :manage, SimpleUser::AdminUser
17
+ end
18
+
19
+ if admin_user.has_role? :user_manager
20
+ can :manage, SimpleUser::User
21
+ end
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,18 @@
1
+ class Role < ActiveRecord::Base
2
+
3
+ =begin
4
+ has_and_belongs_to_many :simple_user_admin_users,
5
+ :class_name => "AdminUser",
6
+ :join_table => :simple_user_users_roles,
7
+ :foreign_key => :simple_user_role_id
8
+ #:association_foreign_key => "simple_user_admin_user_id"
9
+ =end
10
+
11
+
12
+ has_and_belongs_to_many :admin_users, :join_table => "users_roles"
13
+
14
+ belongs_to :resource, :polymorphic => true
15
+
16
+ scopify
17
+
18
+ end
@@ -0,0 +1,48 @@
1
+ module SimpleUser
2
+ class AdminUser < ActiveRecord::Base
3
+
4
+ rolify
5
+ #resourcify
6
+
7
+ #has_and_belongs_to_many :roles, :join_table => :users_roles, :foreign_key => "user_id"
8
+ #has_many :simple_user_users_roles, :foreign_key => :user_id
9
+ #has_and_belongs_to_many :simple_user_roles, :join_table => :simple_user_users_roles
10
+
11
+ #has_and_belongs_to_many :roles, :join_table => :simple_user_users_roles
12
+ =begin
13
+ has_and_belongs_to_many :simple_user_roles,
14
+ :class_name => "Role",
15
+ :join_table => :simple_user_users_roles,
16
+ :foreign_key => :simple_user_admin_user_id
17
+ =end
18
+ #has_and_belongs_to_many :simple_user_admin_users, :join_table => :simple_user_users_roles
19
+ has_and_belongs_to_many :roles, :join_table => "users_roles", :foreign_key => :simple_user_admin_user_id
20
+
21
+ # Include default devise modules. Others available are:
22
+ # :token_authenticatable, :confirmable,
23
+ # :lockable, :timeoutable and :omniauthable
24
+ devise :database_authenticatable, :registerable,
25
+ :recoverable, :rememberable, :trackable, :validatable
26
+
27
+ # Setup accessible (or protected) attributes for your model
28
+ attr_accessible :email, :password, :password_confirmation, :remember_me, :username, :active
29
+ attr_accessible :temporal_roles
30
+ attr_accessor :temporal_roles
31
+
32
+ validates :email, :uniqueness => true
33
+ validates :username, :uniqueness => true
34
+
35
+ def get_roles
36
+ @temporal_roles = roles.collect{ |role| role.name }.join(", ")
37
+ end
38
+
39
+ def banned?
40
+ !active
41
+ end
42
+
43
+ def self.get_editable_admins_except(admin_id)
44
+ joins(:roles).where("roles.name <> ? AND simple_user_admin_users.id <> ?", "admin", admin_id).group(:id)
45
+ end
46
+
47
+ end
48
+ end
@@ -0,0 +1,9 @@
1
+ module SimpleUser
2
+ class Authentication < ActiveRecord::Base
3
+
4
+ belongs_to :user
5
+
6
+ attr_accessible :provider, :token, :uid, :user_id
7
+
8
+ end
9
+ end
@@ -0,0 +1,92 @@
1
+ module SimpleUser
2
+ class User < ActiveRecord::Base
3
+
4
+ resourcify
5
+
6
+ has_many :authentications, :dependent => :delete_all
7
+
8
+ # Include default devise modules. Others available are:
9
+ # :token_authenticatable, :confirmable,
10
+ # :lockable, :timeoutable and :omniauthable
11
+ devise :database_authenticatable, :registerable,
12
+ :recoverable, :rememberable, :trackable, :validatable
13
+
14
+ attr_accessible :email, :password, :password_confirmation, :remember_me, :username, :first_name, :last_name, :active
15
+
16
+ validates :email, :uniqueness => true
17
+ validates :username, :uniqueness => true
18
+
19
+ def self.build_new_auth(auth)
20
+ email = ""
21
+
22
+ if auth['provider'] == 'facebook'
23
+ user = User.find_by_email(auth['extra']['raw_info']['email'])
24
+ end
25
+
26
+ user ||= User.new
27
+ user.apply_omniauth(auth)
28
+ return user
29
+ end
30
+
31
+ def apply_omniauth(auth)
32
+ #Generates random usernames and passwords for the first time
33
+ if self.id.nil?
34
+ tmp_password = generate_random(8)
35
+ tmp_username = generate_random(6)
36
+ end
37
+
38
+ #Gets AUTH information
39
+ if auth['provider'] == 'facebook'
40
+ #Saves username and email for the first time
41
+ if self.id.nil?
42
+ tmp_username = auth['extra']['raw_info']['username'] rescue generate_random(6)
43
+ self.email = auth['extra']['raw_info']['email']
44
+ end
45
+
46
+ self.first_name = auth['extra']['raw_info']['first_name'] if self.first_name.nil?
47
+ self.last_name = auth['extra']['raw_info']['last_name'] if self.last_name.nil?
48
+ end
49
+
50
+ #Check if the username exists in the database and if it exists replace it with a new one, for the first time
51
+ if self.id.nil?
52
+ invalid_username = true
53
+
54
+ while invalid_username
55
+ tmp_user = User.find_by_username(tmp_username) rescue nil
56
+ if tmp_user.nil?
57
+ invalid_username = false
58
+ else
59
+ tmp_username = generate_random(6)
60
+ end
61
+ end
62
+ end
63
+
64
+ #Sets main values for the first time
65
+ if self.id.nil?
66
+ self.username = tmp_username
67
+ self.password = tmp_password
68
+ self.password_confirmation = tmp_password
69
+ end
70
+
71
+ #Saves the authentication
72
+ authentications.build(:provider => auth['provider'], :uid => auth['uid'], :token => auth['credentials']['token'])
73
+ end
74
+
75
+ def full_name
76
+ first_name.to_s + " " + last_name.to_s
77
+ end
78
+
79
+ def banned?
80
+ !active
81
+ end
82
+
83
+ private
84
+ def generate_random(str_length)
85
+ charlist = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
86
+ generate_str = ""
87
+ 1.upto(str_length) {|i| generate_str << charlist[rand(charlist.size-1)]}
88
+ return generate_str
89
+ end
90
+
91
+ end
92
+ end
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>SimpleUser</title>
5
+ <%= stylesheet_link_tag "application", :media => "all" %>
6
+ <%= javascript_include_tag "application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+
10
+ <body>
11
+ <div>
12
+ <%= render "menu_users" %> || <%= render "menu_admin_users" %>
13
+ </div>
14
+
15
+ <div>
16
+ <% flash.each do |name, msg| %>
17
+ <div class="alert alert-<%= name == :notice ? "success" : "error" %>">
18
+ <a class="close" data-dismiss="alert">×</a>
19
+ <%= msg %>
20
+ </div>
21
+ <% end %>
22
+ </div>
23
+
24
+ <div>
25
+ <%= yield %>
26
+ </div>
27
+ </body>
28
+ </html>
@@ -0,0 +1,15 @@
1
+ <%= simple_form_for @admin_user, :html => { :class => 'form-horizontal' } do |f| %>
2
+ <%= f.input :username, :required => true %>
3
+ <%= f.input :email, :required => true %>
4
+ <%= f.input :password, :required => @required_password %>
5
+ <%= f.input :password_confirmation, :required => @required_password %>
6
+
7
+ <% if can? :manage, Role %>
8
+ <%= f.input :temporal_roles, :label => "Roles" %>
9
+ <%= f.input :active %>
10
+ <% end %>
11
+
12
+ <div class="actions">
13
+ <%= f.button :submit %>
14
+ </div>
15
+ <% end %>
@@ -0,0 +1,16 @@
1
+ <h2>Resend confirmation instructions</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f| %>
4
+ <%= f.error_notification %>
5
+ <%= f.full_error :confirmation_token %>
6
+
7
+ <div class="form-inputs">
8
+ <%= f.input :email, :required => true, :autofocus => true %>
9
+ </div>
10
+
11
+ <div class="form-actions">
12
+ <%= f.button :submit, "Resend confirmation instructions" %>
13
+ </div>
14
+ <% end %>
15
+
16
+ <%= render "devise/shared/links" %>
@@ -0,0 +1,6 @@
1
+ <h1>Editing admin_user</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Show', @admin_user %> |
6
+ <%= link_to 'Back', admin_users_path %>
@@ -0,0 +1,27 @@
1
+ <h1>Administrators</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Email</th>
6
+ <th>Username</th>
7
+ <th>Active</th>
8
+ <th></th>
9
+ <th></th>
10
+ <th></th>
11
+ </tr>
12
+
13
+ <% @admin_users.each do |admin_user| %>
14
+ <tr>
15
+ <td><%= admin_user.email %></td>
16
+ <td><%= admin_user.username %></td>
17
+ <td><%= print_yes_or_no admin_user.active %></td>
18
+ <td><%= link_to 'Show', admin_user %></td>
19
+ <td><%= link_to 'Edit', edit_admin_user_path(admin_user) %></td>
20
+ <td><%= link_to 'Destroy', admin_user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
21
+ </tr>
22
+ <% end %>
23
+ </table>
24
+
25
+ <br />
26
+
27
+ <%= link_to 'New Admin user', new_admin_user_path %>
@@ -0,0 +1,5 @@
1
+ <p>Welcome <%= @email %>!</p>
2
+
3
+ <p>You can confirm your account email through the link below:</p>
4
+
5
+ <p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>
@@ -0,0 +1,8 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Someone has requested a link to change your password. You can do this through the link below.</p>
4
+
5
+ <p><%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %></p>
6
+
7
+ <p>If you didn't request this, please ignore this email.</p>
8
+ <p>Your password won't change until you access the link above and create a new one.</p>
@@ -0,0 +1,7 @@
1
+ <p>Hello <%= @resource.email %>!</p>
2
+
3
+ <p>Your account has been locked due to an excessive number of unsuccessful sign in attempts.</p>
4
+
5
+ <p>Click the link below to unlock your account:</p>
6
+
7
+ <p><%= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token) %></p>
@@ -0,0 +1,5 @@
1
+ <h1>New admin_user</h1>
2
+
3
+ <%= render 'form' %>
4
+
5
+ <%= link_to 'Back', admin_users_path %>
@@ -0,0 +1,19 @@
1
+ <h2>Change your password</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <%= f.input :reset_password_token, :as => :hidden %>
7
+ <%= f.full_error :reset_password_token %>
8
+
9
+ <div class="form-inputs">
10
+ <%= f.input :password, :label => "New password", :required => true, :autofocus => true %>
11
+ <%= f.input :password_confirmation, :label => "Confirm your new password", :required => true %>
12
+ </div>
13
+
14
+ <div class="form-actions">
15
+ <%= f.button :submit, "Change my password" %>
16
+ </div>
17
+ <% end %>
18
+
19
+ <%= render "devise/shared/links" %>
@@ -0,0 +1,15 @@
1
+ <h2>Forgot your password?</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="form-inputs">
7
+ <%= f.input :email, :required => true, :autofocus => true %>
8
+ </div>
9
+
10
+ <div class="form-actions">
11
+ <%= f.button :submit, "Send me reset password instructions" %>
12
+ </div>
13
+ <% end %>
14
+
15
+ <%= render "devise/shared/links" %>
@@ -0,0 +1,28 @@
1
+ <h2>Edit <%= resource_name.to_s.humanize %></h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="form-inputs">
7
+ <%= f.input :username, :required => true, :autofocus => true %>
8
+ <%= f.input :email, :required => true, :autofocus => true %>
9
+
10
+ <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
11
+ <p>Currently waiting confirmation for: <%= resource.unconfirmed_email %></p>
12
+ <% end %>
13
+
14
+ <%= f.input :password, :autocomplete => "off", :hint => "leave it blank if you don't want to change it", :required => false %>
15
+ <%= f.input :password_confirmation, :required => false %>
16
+ <%= f.input :current_password, :hint => "we need your current password to confirm your changes", :required => true %>
17
+ </div>
18
+
19
+ <div class="form-actions">
20
+ <%= f.button :submit, "Update" %>
21
+ </div>
22
+ <% end %>
23
+
24
+ <h3>Cancel my account</h3>
25
+
26
+ <p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %>.</p>
27
+
28
+ <%= link_to "Back", :back %>
@@ -0,0 +1,18 @@
1
+ <h2>Sign up</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
4
+ <%= f.error_notification %>
5
+
6
+ <div class="form-inputs">
7
+ <%= f.input :username, :required => true, :autofocus => true %>
8
+ <%= f.input :email, :required => true, :autofocus => true %>
9
+ <%= f.input :password, :required => true %>
10
+ <%= f.input :password_confirmation, :required => true %>
11
+ </div>
12
+
13
+ <div class="form-actions">
14
+ <%= f.button :submit, "Sign up" %>
15
+ </div>
16
+ <% end %>
17
+
18
+ <%= render "devise/shared/links" %>
@@ -0,0 +1,15 @@
1
+ <h2>Sign in</h2>
2
+
3
+ <%= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
4
+ <div class="form-inputs">
5
+ <%= f.input :username, :required => true, :autofocus => true %>
6
+ <%= f.input :password, :required => true %>
7
+ <%= f.input :remember_me, :as => :boolean if devise_mapping.rememberable? %>
8
+ </div>
9
+
10
+ <div class="form-actions">
11
+ <%= f.button :submit, "Sign in" %>
12
+ </div>
13
+ <% end %>
14
+
15
+ <%= render "devise/shared/links" %>