trusty-cms 3.8.0 → 3.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +100 -92
  3. data/app/assets/images/admin/default_forgot_password.svg +1 -0
  4. data/app/assets/images/admin/default_reset_password.svg +1 -0
  5. data/app/assets/images/admin/default_safe_login.svg +1 -0
  6. data/app/assets/javascripts/admin.js +0 -1
  7. data/app/assets/javascripts/admin/modernizr.js +3 -409
  8. data/app/assets/stylesheets/admin/partials/_forms.scss +39 -0
  9. data/app/assets/stylesheets/admin/partials/_layout.scss +8 -0
  10. data/app/assets/stylesheets/admin/partials/_validations.scss +6 -13
  11. data/app/controllers/admin/assets_controller.rb +7 -0
  12. data/app/controllers/admin/preferences_controller.rb +1 -1
  13. data/app/controllers/admin/resource_controller.rb +6 -0
  14. data/app/controllers/admin/users_controller.rb +3 -2
  15. data/app/controllers/application_controller.rb +5 -7
  16. data/app/controllers/site_controller.rb +2 -1
  17. data/app/controllers/social_mailer_controller.rb +2 -1
  18. data/app/models/legacy_user.rb +6 -0
  19. data/app/models/user.rb +39 -68
  20. data/app/models/user_action_observer.rb +4 -2
  21. data/app/views/admin/configuration/show.html.haml +2 -7
  22. data/app/views/admin/layouts/_site_chooser.html.haml +1 -1
  23. data/app/views/admin/pages/_node.html.haml +2 -2
  24. data/app/views/admin/preferences/edit.html.haml +9 -14
  25. data/app/views/admin/users/_form.html.haml +8 -15
  26. data/app/views/admin/users/index.html.haml +0 -1
  27. data/app/views/devise/passwords/edit.html.haml +23 -0
  28. data/app/views/devise/passwords/new.html.haml +14 -0
  29. data/app/views/devise/sessions/new.html.haml +25 -0
  30. data/app/views/devise/shared/_links.html.haml +16 -0
  31. data/app/views/layouts/application.html.haml +1 -1
  32. data/config/application.rb +1 -0
  33. data/config/initializers/devise.rb +310 -0
  34. data/config/routes.rb +6 -10
  35. data/db/migrate/20200117141251_create_admin_users.rb +51 -0
  36. data/lib/generators/extension_controller/templates/controller.rb +1 -1
  37. data/lib/login_system.rb +40 -44
  38. data/lib/tasks/upgrade_to_devise.rake +22 -0
  39. data/lib/trusty_cms.rb +1 -1
  40. data/lib/trusty_cms/admin_ui.rb +3 -3
  41. data/lib/trusty_cms/engine.rb +2 -0
  42. data/lib/trusty_cms/setup.rb +0 -1
  43. data/trusty_cms.gemspec +1 -0
  44. data/vendor/extensions/clipped-extension/clipped_extension.rb +0 -2
  45. data/vendor/extensions/multi-site-extension/lib/multi_site/site_chooser_helper.rb +1 -1
  46. data/vendor/extensions/snippets-extension/snippets_extension.rb +0 -2
  47. metadata +27 -8
  48. data/app/assets/javascripts/admin/cookie.js +0 -80
  49. data/app/controllers/admin/password_resets_controller.rb +0 -31
  50. data/app/controllers/admin/welcome_controller.rb +0 -47
  51. data/app/views/admin/password_resets/edit.html.haml +0 -27
  52. data/app/views/admin/password_resets/new.html.haml +0 -12
  53. data/app/views/password_mailer/password_reset.html.haml +0 -8
@@ -1,80 +0,0 @@
1
- /*
2
- cookie.js
3
-
4
- Copyright (c) 2007, 2008 Maxime Haineault
5
- (http://www.haineault.com/code/cookie-js/, http://code.google.com/p/cookie-js/)
6
-
7
- Portions Copyright (c) 2008, John W. Long
8
-
9
- Permission is hereby granted, free of charge, to any person obtaining
10
- a copy of this software and associated documentation files (the
11
- "Software"), to deal in the Software without restriction, including
12
- without limitation the rights to use, copy, modify, merge, publish,
13
- distribute, sublicense, and/or sell copies of the Software, and to
14
- permit persons to whom the Software is furnished to do so, subject to
15
- the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be
18
- included in all copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27
- */
28
-
29
- Cookie = {
30
- get: function(name) {
31
- // Still not sure that "[a-zA-Z0-9.()=|%/]+($|;)" match *all* allowed characters in cookies
32
- tmp = document.cookie.match((new RegExp(name +'=[a-zA-Z0-9.()=|%/]+($|;)','g')));
33
- if (!tmp || !tmp[0]) {
34
- return null;
35
- } else {
36
- return unescape(tmp[0].substring(name.length + 1, tmp[0].length).replace(';', '')) || null;
37
- }
38
- },
39
-
40
- set: function(name, value, expireInHours, path, domain, secure) {
41
- var cookie = [
42
- name + '=' + escape(value),
43
- 'path=' + ((!path || path == '') ? '/' : path)
44
- ];
45
- if (Cookie._notEmpty(domain)) cookie.push('domain=' + domain);
46
- if (Cookie._notEmpty(expireInHours)) cookie.push(Cookie._hoursToExpireDate(expireInHours));
47
- if (Cookie._notEmpty(secure)) cookie.push('secure');
48
- return document.cookie = cookie.join(';');
49
- },
50
-
51
- erase: function(name, path, domain) {
52
- path = (!path || typeof path != 'string') ? '' : path;
53
- domain = (!domain || typeof domain != 'string') ? '' : domain;
54
- if (Cookie.get(name)) Cookie.set(name, '', 'Thu, 01-Jan-70 00:00:01 GMT', path, domain);
55
- },
56
-
57
- // Returns true if cookies are enabled
58
- accept: function() {
59
- Cookie.set('b49f729efde9b2578ea9f00563d06e57', 'true');
60
- if (Cookie.get('b49f729efde9b2578ea9f00563d06e57') == 'true') {
61
- Cookie.erase('b49f729efde9b2578ea9f00563d06e57');
62
- return true;
63
- }
64
- return false;
65
- },
66
-
67
- _notEmpty: function(value) {
68
- return (typeof value != 'undefined' && value != null && value != '');
69
- },
70
-
71
- // Private function for calculating the date of expiration based on hours
72
- _hoursToExpireDate: function(hours) {
73
- if (parseInt(hours) == 'NaN' ) return '';
74
- else {
75
- now = new Date();
76
- now.setTime(now.getTime() + (parseInt(hours) * 60 * 60 * 1000));
77
- return now.toGMTString();
78
- }
79
- }
80
- };
@@ -1,31 +0,0 @@
1
- class Admin::PasswordResetsController < ApplicationController
2
- no_login_required
3
-
4
- def create
5
- user = User.find_by_email(params[:email])
6
- user.send_password_reset if user
7
- redirect_to welcome_path, :notice => "If the e-mail address you entered is associated with a customer account in our records, you will receive an e-mail from us with instructions for resetting your password.
8
- If you don't receive this e-mail, please check your junk mail folder or speak with your TrustyCMS administrator."
9
- end
10
-
11
- def edit
12
- @user = User.find_by_password_reset_token!(params[:id])
13
- end
14
-
15
- def update
16
- @user = User.find_by_password_reset_token!(params[:id])
17
- if @user.password_reset_sent_at < 2.hours.ago
18
- redirect_to new_password_reset_path, :alert => "Password reset has expired."
19
- elsif @user.update_attributes(password_params)
20
- redirect_to welcome_url, :notice => "Password has been reset!"
21
- else
22
- render :edit
23
- end
24
- end
25
-
26
- private
27
-
28
- def password_params
29
- params.require(:user).permit(:password, :password_confirmation)
30
- end
31
- end
@@ -1,47 +0,0 @@
1
- class Admin::WelcomeController < ApplicationController
2
- no_login_required
3
- before_action :never_cache
4
-
5
- def index
6
- redirect_to admin_pages_path
7
- end
8
-
9
- def login
10
- if request.post?
11
- @username_or_email = params[:username_or_email]
12
- password = params[:password]
13
- announce_invalid_user unless self.current_user = User.authenticate(@username_or_email, password)
14
- end
15
- if current_user
16
- if params[:remember_me]
17
- current_user.remember_me
18
- set_session_cookie
19
- end
20
- redirect_to(session[:return_to] || welcome_path)
21
- session[:return_to] = nil
22
- end
23
- end
24
-
25
- def logout
26
- request.cookies[:session_token] = { :expires => 1.day.ago.utc }
27
- self.current_user.forget_me if self.current_user
28
- self.current_user = nil
29
- announce_logged_out
30
- redirect_to login_path
31
- end
32
-
33
- private
34
-
35
- def never_cache
36
- expires_now
37
- end
38
-
39
- def announce_logged_out
40
- flash[:notice] = t('welcome_controller.logged_out')
41
- end
42
-
43
- def announce_invalid_user
44
- flash.now[:error] = t('welcome_controller.invalid_user')
45
- end
46
-
47
- end
@@ -1,27 +0,0 @@
1
- - body_classes << "single_form"
2
-
3
- #single_form
4
-
5
- %h3= t('reset_your_password')
6
-
7
- = form_for @user, :url => admin_password_reset_path(params[:id]) do |f|
8
- - if @user.errors.any?
9
- .error_messages
10
- %h2 Form is invalid
11
- %ul
12
- - for message in @user.errors.full_messages
13
- %li= message
14
- %p
15
- %label{:for=>"password"}= t('password')
16
- = f.password_field :password
17
- %p
18
- %label{:for=>"password_confirmation"}= t('password_confirmation')
19
- = f.password_field :password_confirmation
20
- .actions= f.submit "Update Password"
21
-
22
- %p.version
23
- = t('powered_by')
24
- %a{ :href => "https://github.com/pgharts/trusty-cms" } TrustyCms CMS
25
- = t('version')
26
- = TrustyCms.loaded_via_gem? ? "#{TrustyCms::VERSION} (gem)." : "#{TrustyCms::VERSION}."
27
-
@@ -1,12 +0,0 @@
1
- - body_classes << "single_form"
2
-
3
- #single_form
4
-
5
- %h3= t('reset_your_password')
6
-
7
- = form_tag admin_password_resets_path, :method => :post do
8
- %p
9
- %label{:for=>"email"}= t('email')
10
- = text_field_tag :email, params[:email], :class => 'textbox', :maxlength => 70, :size => 70
11
- .actions
12
- = submit_tag "Reset Password"
@@ -1,8 +0,0 @@
1
- = "Hi, #{@user.name} -"
2
-
3
- %p
4
- We received a request to reset your password.
5
- %p
6
- = link_to('Click here to reset', edit_admin_password_reset_url(@user.password_reset_token))
7
- %p
8
- If you did not request your password to be reset, please alert your TrustyCMS Admin.