tb_core 1.3.3 → 1.3.4

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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -0
  3. data/app/assets/javascripts/admin/core/application.js +2 -1
  4. data/app/assets/javascripts/admin/core/modal.js +36 -6
  5. data/app/assets/javascripts/admin/core/users.js +121 -2
  6. data/app/assets/javascripts/tb_core/configuration.js.erb +1 -1
  7. data/app/assets/javascripts/tb_core/remote.js +9 -6
  8. data/app/assets/javascripts/tb_core/utility.js +11 -0
  9. data/app/assets/stylesheets/admin/core/application.scss +118 -117
  10. data/app/assets/stylesheets/admin/core/login.scss +15 -14
  11. data/app/assets/stylesheets/admin/core/users.scss +14 -0
  12. data/app/controllers/admin/application_controller.rb +4 -14
  13. data/app/controllers/admin/password_resets_controller.rb +1 -1
  14. data/app/controllers/admin/user_sessions_controller.rb +0 -27
  15. data/app/controllers/admin/users_controller.rb +37 -4
  16. data/app/controllers/password_resets_controller.rb +1 -1
  17. data/app/controllers/spud/application_controller.rb +37 -11
  18. data/app/controllers/user_sessions_controller.rb +46 -10
  19. data/app/helpers/admin/application_helper.rb +8 -1
  20. data/app/helpers/spud/application_helper.rb +36 -0
  21. data/app/helpers/tb_core/application_helper.rb +2 -2
  22. data/app/mailers/tb_core_mailer.rb +25 -0
  23. data/app/models/spud/spud_user_model.rb +14 -0
  24. data/app/views/admin/setup/new.html.erb +6 -14
  25. data/app/views/admin/user_sessions/new.html.erb +1 -25
  26. data/app/views/admin/users/_form.html.erb +25 -2
  27. data/app/views/layouts/admin/application.html.erb +2 -2
  28. data/app/views/layouts/admin/login.html.erb +2 -1
  29. data/app/views/layouts/mailer.html.erb +23 -0
  30. data/app/views/tb_core_mailer/forgot_password_notification.html.erb +12 -0
  31. data/app/views/tb_core_mailer/user_credentials.html.erb +19 -0
  32. data/app/views/user_sessions/_form.html.erb +24 -0
  33. data/app/views/user_sessions/change_password.html.erb +21 -0
  34. data/app/views/user_sessions/new.html.erb +1 -22
  35. data/config/locales/en.yml +12 -2
  36. data/config/routes.rb +5 -2
  37. data/db/migrate/20150610143438_add_requires_password_change_to_spud_users.rb +5 -0
  38. data/lib/generators/spud/setup_generator.rb +5 -0
  39. data/lib/generators/spud/templates/assets/application.js +1 -1
  40. data/lib/generators/spud/templates/assets/application.scss +2 -2
  41. data/lib/generators/spud/templates/assets/bootstrap.js +14 -0
  42. data/lib/spud_core/belongs_to_app.rb +1 -1
  43. data/lib/spud_core/engine.rb +1 -0
  44. data/lib/spud_core/errors.rb +8 -0
  45. data/lib/spud_core/version.rb +1 -1
  46. data/lib/tb_core/form_builder.rb +31 -6
  47. data/spec/controllers/admin/user_sessions_controller_spec.rb +0 -28
  48. data/spec/dummy/config/environments/development.rb +2 -2
  49. data/spec/dummy/db/migrate/20150610180845_add_requires_password_change_to_spud_users.tb_core.rb +6 -0
  50. data/spec/dummy/db/schema.rb +23 -22
  51. data/spec/models/spud_user_spec.rb +18 -2
  52. metadata +28 -20
  53. data/app/assets/libs/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  54. data/app/assets/libs/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  55. data/app/assets/libs/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  56. data/app/assets/libs/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  57. data/app/assets/libs/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  58. data/app/assets/libs/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  59. data/app/assets/libs/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  60. data/app/assets/libs/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  61. data/app/assets/libs/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  62. data/app/assets/libs/jquery-ui/images/ui-icons_2e83ff_256x240.png +0 -0
  63. data/app/assets/libs/jquery-ui/images/ui-icons_454545_256x240.png +0 -0
  64. data/app/assets/libs/jquery-ui/images/ui-icons_888888_256x240.png +0 -0
  65. data/app/assets/libs/jquery-ui/images/ui-icons_cd0a0a_256x240.png +0 -0
  66. data/app/assets/libs/jquery-ui/jquery-ui.js +0 -8952
  67. data/app/assets/libs/jquery-ui/jquery-ui.scss +0 -784
  68. data/app/mailers/core_mailer.rb +0 -9
  69. data/app/views/core_mailer/forgot_password_notification.html.erb +0 -14
  70. data/app/views/core_mailer/forgot_password_notification.text.erb +0 -10
@@ -2,25 +2,4 @@
2
2
 
3
3
  <h1><%= Spud::Core.config.site_name %> Login</h1>
4
4
 
5
- <%= form_for @user_session, :url => login_path, :html => {:class => 'login-form'} do |f| %>
6
- <%= tb_form_errors(@user_session) %>
7
- <% if params[:return_to] %>
8
- <%= hidden_field_tag :return_to, params[:return_to] %>
9
- <% end %>
10
- <div class="form-group">
11
- <% if Spud::Core.config.use_email_as_login %>
12
- <%= f.label :email %>
13
- <%= f.text_field :email, :placeholder => 'Email', :autofocus => 'autofocus', :autocomplete => 'username', :class => 'form-control' %>
14
- <% else %>
15
- <%= f.label :login %>
16
- <%= f.text_field :login, :placeholder => 'Username', :autofocus => 'autofocus', :autocomplete => 'username', :class => 'form-control' %>
17
- <% end %>
18
- </div>
19
- <div class="form-group">
20
- <%= f.label :password %>
21
- <%= f.password_field :password, :placeholder => 'Password', :autocomplete => 'current-password', :class => 'form-control' %>
22
- </div>
23
- <div class="form-group">
24
- <%= f.submit "Login", :class => 'btn btn-primary' %> <span>or</span> <%=link_to "Forgot Password?", password_resets_path %>
25
- </div>
26
- <% end %>
5
+ <%= render 'form' %>
@@ -10,9 +10,19 @@ en:
10
10
  message: "The %{item} you were looking for could not be found."
11
11
  access_denied:
12
12
  title: "Access Denied"
13
- message: "You are not authorized to view the requested %{item}."
13
+ message: "You do not have permission to view the requested %{item}."
14
+ unauthorized:
15
+ title: "Unauthorized"
16
+ message: "You must log in to view the requested %{item}."
14
17
  activerecord:
15
18
  attributes:
16
19
  spud_user:
17
20
  spud_role_id: 'Role'
18
- password_confirmation: 'Confirm Password'
21
+ password_confirmation: 'Confirm password'
22
+ requires_password_change: 'Require change'
23
+ tb_core_mailer:
24
+ forgot_password_notification:
25
+ subject: 'Forgot Password Request from %{site_name}'
26
+ user_credentials:
27
+ subject: 'Your login credentials for %{site_name}'
28
+ greeting: 'Here are your login credentials for %{site_name}:'
data/config/routes.rb CHANGED
@@ -3,9 +3,8 @@ Rails.application.routes.draw do
3
3
  namespace :admin do
4
4
 
5
5
  get 'login' => 'user_sessions#new', :as => 'login'
6
- post 'login' => 'user_sessions#create'
7
6
  get 'badges' => 'dashboard#badges'
8
- match 'logout' => 'user_sessions#destroy', :as => 'logout', :via => [:get, :post]
7
+
9
8
  resources :password_resets, :only => [:index, :create, :show, :update], :path => 'login/forgot'
10
9
 
11
10
  get 'settings' => 'settings#edit', :as => 'settings'
@@ -23,6 +22,10 @@ Rails.application.routes.draw do
23
22
  get 'login' => 'user_sessions#new', :as => 'login'
24
23
  post 'login' => 'user_sessions#create'
25
24
  match 'logout' => 'user_sessions#destroy', :as => 'logout', :via => [:get, :post]
25
+
26
+ get 'login/change_password' => 'user_sessions#change_password'
27
+ post 'login/change_password' => 'user_sessions#set_change_password'
28
+
26
29
  resources :password_resets, :only => [:index, :create, :show, :update], :path => 'login/forgot'
27
30
 
28
31
  get 'spud/admin' => 'admin/user_sessions#legacy_redirect'
@@ -0,0 +1,5 @@
1
+ class AddRequiresPasswordChangeToSpudUsers < ActiveRecord::Migration
2
+ def change
3
+ add_column :spud_users, :requires_password_change, :boolean, :default => false
4
+ end
5
+ end
@@ -21,6 +21,11 @@ class Spud::SetupGenerator < ::Rails::Generators::Base
21
21
  if defined?(Bootstrap)
22
22
  theme_file = Bootstrap::Rails::Engine.root.join('templates', 'project', '_bootstrap-variables.sass')
23
23
  template theme_file, 'app/assets/stylesheets/imports/bootstrap_theme.scss' if File.exist?(theme_file)
24
+
25
+ modules_file = Bootstrap::Rails::Engine.root.join('assets', 'stylesheets', '_bootstrap.scss')
26
+ template modules_file, 'app/assets/stylesheets/imports/bootstrap_modules.scss' if File.exist?(modules_file)
27
+
28
+ template 'assets/bootstrap.js', 'app/assets/javascripts/bootstrap_modules.js'
24
29
  end
25
30
 
26
31
  environment(spud_core_configs())
@@ -1,7 +1,7 @@
1
1
  //= require jquery
2
2
  //= require jquery_ujs
3
3
  //= require tb_core
4
- //= require bootstrap-sprockets
4
+ //= require bootstrap_modules
5
5
  //= require_self
6
6
  //= require_directory .
7
7
 
@@ -1,6 +1,6 @@
1
1
  //= require_self
2
2
  //= require_directory .
3
3
 
4
- @import "imports/bootstrap_theme";
5
4
  @import "bootstrap-sprockets";
6
- @import "bootstrap";
5
+ @import "imports/bootstrap_theme";
6
+ @import "imports/bootstrap_modules";
@@ -0,0 +1,14 @@
1
+ // Use this file to comment out any Bootstrap JavaScript files you are not using
2
+ //
3
+ //= require bootstrap/affix
4
+ //= require bootstrap/alert
5
+ //= require bootstrap/button
6
+ //= require bootstrap/carousel
7
+ //= require bootstrap/collapse
8
+ //= require bootstrap/dropdown
9
+ //= require bootstrap/modal
10
+ //= require bootstrap/scrollspy
11
+ //= require bootstrap/tab
12
+ //= require bootstrap/transition
13
+ //= require bootstrap/tooltip
14
+ //= require bootstrap/popover
@@ -9,7 +9,7 @@ module Spud::BelongsToApp
9
9
  def belongs_to_spud_app(name=nil,options={})
10
10
  @page_title = options[:page_title]
11
11
  Spud::Core.admin_applications.each do |app|
12
- if app[:name].parameterize.underscore.to_sym == name
12
+ if app[:key] == name
13
13
  @page_application = app
14
14
  break
15
15
  end
@@ -1,5 +1,6 @@
1
1
  require 'responders'
2
2
  require 'jquery-rails'
3
+ require 'jquery-ui-rails'
3
4
  require 'authlogic'
4
5
  require 'bootstrap-sass'
5
6
  require 'autoprefixer-rails'
@@ -38,3 +38,11 @@ class Spud::NotFoundError < Spud::RequestError
38
38
  super(item_or_opts, opts)
39
39
  end
40
40
  end
41
+
42
+ class Spud::UnauthorizedError < Spud::RequestError
43
+ def initialize(item_or_opts='page', opts={})
44
+ @code = 401
45
+ @i18n = 'unauthorized'
46
+ super(item_or_opts, opts)
47
+ end
48
+ end
@@ -1,5 +1,5 @@
1
1
  module Spud
2
2
  module Core
3
- VERSION = "1.3.3"
3
+ VERSION = "1.3.4"
4
4
  end
5
5
  end
@@ -114,7 +114,7 @@ class TbCore::FormBuilder < ActionView::Helpers::FormBuilder
114
114
  content_tag :div, :class => 'col-sm-offset-2 col-sm-10' do
115
115
  concat submit "Save #{model_name}", :class => 'btn btn-primary', :data => {:disable_with => "Saving #{model_name}...", :enable_with => 'Saved!'}
116
116
  concat ' '
117
- concat @template.link_to 'Cancel', cancel_path, :class => 'btn btn-default'
117
+ concat @template.link_to 'Cancel', cancel_path, :class => 'btn btn-default', :data => {:dismiss => :modal}
118
118
  end
119
119
  end
120
120
  end
@@ -242,6 +242,30 @@ class TbCore::FormBuilder < ActionView::Helpers::FormBuilder
242
242
  end
243
243
  end
244
244
 
245
+ # Return a picker for a new or existing user
246
+ #
247
+ # * attribute: The spud user column name. Default = spud_user_id.
248
+ # * users: Optional query object representing the list of users to display. Default = all users.
249
+ # * selected: Desired id to select. Will try to look up the value currently on the record if blank.
250
+ # * default_text: Text to show for blank option. Default = 'Select User'
251
+ #
252
+ def tb_user_select(attribute = :spud_user_id, users: SpudUser.ordered, selected: nil, default_text: 'Select User')
253
+ selected = @object[attribute] if selected.nil?
254
+ return content_tag :div, :class => 'form-group' do
255
+ concat label attribute, :class => 'control-label col-sm-2'
256
+ concat content_tag(:div, :class => 'col-sm-10'){
257
+ concat select(
258
+ attribute,
259
+ @template.options_from_collection_for_select(users, :id, :full_name_with_email, selected),
260
+ {:include_blank => default_text},
261
+ {:class => 'form-control tb-user-select'}
262
+ )
263
+ concat @template.link_to 'Edit User', @template.edit_admin_user_path(':id'), :class => 'btn btn-default tb-user-select-btn tb-user-select-edit'
264
+ concat @template.link_to 'New User', @template.new_admin_user_path, :class => 'btn btn-default tb-user-select-btn tb-user-select-add'
265
+ }
266
+ end
267
+ end
268
+
245
269
  private
246
270
 
247
271
  def concat(*args)
@@ -264,12 +288,13 @@ private
264
288
  end
265
289
 
266
290
  def get_limit_for_column(attribute)
267
- col = @object.class.columns.find{ |c| c.name == attribute.to_s }
268
- if col.present? && col.sql_type.match(/^varchar/)
269
- return col.limit
270
- else
271
- return nil
291
+ if @object.class.respond_to?(:columns)
292
+ col = @object.class.columns.find{ |c| c.name == attribute.to_s }
293
+ if col.present? && col.sql_type.match(/^varchar/)
294
+ return col.limit
295
+ end
272
296
  end
297
+ return nil
273
298
  end
274
299
 
275
300
  end
@@ -20,32 +20,4 @@ describe Admin::UserSessionsController, :type => :controller do
20
20
  end
21
21
  end
22
22
 
23
- describe 'create' do
24
- it "should rerender form when login is invalid" do
25
- post :create
26
- expect(response).to be_success
27
- end
28
- it "should redirect to admin root if login is valid" do
29
- u = FactoryGirl.create(:spud_user,:login => "testuser")
30
- u.save
31
- user_session = {:login => "testuser", :password => "password"}
32
- post :create, :spud_user_session => user_session
33
- expect(response).to redirect_to(admin_root_path)
34
- end
35
- end
36
-
37
- describe 'destroy' do
38
- it "should redirect to login after logout when no referer" do
39
- activate_session(admin: true)
40
- delete :destroy
41
- expect(response).to redirect_to(admin_login_path)
42
- end
43
- it "should redirect to the admin login page after logout" do
44
- request.env["HTTP_REFERER"] = "/"
45
- activate_authlogic
46
- SpudUserSession.create(FactoryGirl.build(:spud_user))
47
- delete :destroy
48
- expect(response).to redirect_to("/admin/login")
49
- end
50
- end
51
23
  end
@@ -23,11 +23,11 @@ Dummy::Application.configure do
23
23
  config.action_dispatch.best_standards_support = :builtin
24
24
 
25
25
  # Raise exception on mass assignment protection for Active Record models
26
- config.active_record.mass_assignment_sanitizer = :strict
26
+ # config.active_record.mass_assignment_sanitizer = :strict
27
27
 
28
28
  # Log the query plan for queries taking more than this (works
29
29
  # with SQLite, MySQL, and PostgreSQL)
30
- config.active_record.auto_explain_threshold_in_seconds = 0.5
30
+ # config.active_record.auto_explain_threshold_in_seconds = 0.5
31
31
 
32
32
  # Do not compress assets
33
33
  config.assets.compress = false
@@ -0,0 +1,6 @@
1
+ # This migration comes from tb_core (originally 20150610143438)
2
+ class AddRequiresPasswordChangeToSpudUsers < ActiveRecord::Migration
3
+ def change
4
+ add_column :spud_users, :requires_password_change, :boolean, :default => false
5
+ end
6
+ end
@@ -11,9 +11,9 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20141214200812) do
14
+ ActiveRecord::Schema.define(version: 20150610180845) do
15
15
 
16
- create_table "spud_permissions", force: true do |t|
16
+ create_table "spud_permissions", force: :cascade do |t|
17
17
  t.string "name", limit: 255, null: false
18
18
  t.string "tag", limit: 255, null: false
19
19
  t.datetime "created_at"
@@ -22,7 +22,7 @@ ActiveRecord::Schema.define(version: 20141214200812) do
22
22
 
23
23
  add_index "spud_permissions", ["tag"], name: "index_spud_permissions_on_tag", unique: true, using: :btree
24
24
 
25
- create_table "spud_role_permissions", force: true do |t|
25
+ create_table "spud_role_permissions", force: :cascade do |t|
26
26
  t.integer "spud_role_id", limit: 4, null: false
27
27
  t.string "spud_permission_tag", limit: 255, null: false
28
28
  t.datetime "created_at"
@@ -32,13 +32,13 @@ ActiveRecord::Schema.define(version: 20141214200812) do
32
32
  add_index "spud_role_permissions", ["spud_permission_tag"], name: "index_spud_role_permissions_on_spud_permission_tag", using: :btree
33
33
  add_index "spud_role_permissions", ["spud_role_id"], name: "index_spud_role_permissions_on_spud_role_id", using: :btree
34
34
 
35
- create_table "spud_roles", force: true do |t|
35
+ create_table "spud_roles", force: :cascade do |t|
36
36
  t.string "name", limit: 255
37
37
  t.datetime "created_at"
38
38
  t.datetime "updated_at"
39
39
  end
40
40
 
41
- create_table "spud_user_settings", force: true do |t|
41
+ create_table "spud_user_settings", force: :cascade do |t|
42
42
  t.integer "spud_user_id", limit: 4
43
43
  t.string "key", limit: 255
44
44
  t.string "value", limit: 255
@@ -46,28 +46,29 @@ ActiveRecord::Schema.define(version: 20141214200812) do
46
46
  t.datetime "updated_at"
47
47
  end
48
48
 
49
- create_table "spud_users", force: true do |t|
50
- t.string "first_name", limit: 255
51
- t.string "last_name", limit: 255
52
- t.boolean "super_admin", limit: 1
53
- t.string "login", limit: 255, null: false
54
- t.string "email", limit: 255, null: false
55
- t.string "crypted_password", limit: 255, null: false
56
- t.string "password_salt", limit: 255, null: false
57
- t.string "persistence_token", limit: 255, null: false
58
- t.string "single_access_token", limit: 255, null: false
59
- t.string "perishable_token", limit: 255, null: false
60
- t.integer "login_count", limit: 4, default: 0, null: false
61
- t.integer "failed_login_count", limit: 4, default: 0, null: false
49
+ create_table "spud_users", force: :cascade do |t|
50
+ t.string "first_name", limit: 255
51
+ t.string "last_name", limit: 255
52
+ t.boolean "super_admin", limit: 1
53
+ t.string "login", limit: 255, null: false
54
+ t.string "email", limit: 255, null: false
55
+ t.string "crypted_password", limit: 255, null: false
56
+ t.string "password_salt", limit: 255, null: false
57
+ t.string "persistence_token", limit: 255, null: false
58
+ t.string "single_access_token", limit: 255, null: false
59
+ t.string "perishable_token", limit: 255, null: false
60
+ t.integer "login_count", limit: 4, default: 0, null: false
61
+ t.integer "failed_login_count", limit: 4, default: 0, null: false
62
62
  t.datetime "last_request_at"
63
63
  t.datetime "current_login_at"
64
64
  t.datetime "last_login_at"
65
- t.string "current_login_ip", limit: 255
66
- t.string "last_login_ip", limit: 255
65
+ t.string "current_login_ip", limit: 255
66
+ t.string "last_login_ip", limit: 255
67
67
  t.datetime "created_at"
68
68
  t.datetime "updated_at"
69
- t.string "time_zone", limit: 255
70
- t.integer "spud_role_id", limit: 4
69
+ t.string "time_zone", limit: 255
70
+ t.integer "spud_role_id", limit: 4
71
+ t.boolean "requires_password_change", limit: 1, default: false
71
72
  end
72
73
 
73
74
  add_index "spud_users", ["email"], name: "index_spud_users_on_email", using: :btree
@@ -25,8 +25,8 @@ describe SpudUser, :type => :model do
25
25
  end
26
26
 
27
27
  it { should_not allow_value('').for(:login) }
28
- it { should ensure_length_of(:login).is_at_least(3) }
29
- it { should ensure_length_of(:password).is_at_least(4) }
28
+ it { should validate_length_of(:login).is_at_least(3) }
29
+ it { should validate_length_of(:password).is_at_least(4) }
30
30
  it { should_not allow_value('@mail.com').for(:email) }
31
31
  it { should_not allow_value('mail.com').for(:email) }
32
32
  it { should allow_value('test@mail.com').for(:email) }
@@ -36,4 +36,20 @@ describe SpudUser, :type => :model do
36
36
  expect(u.save).to eq(false)
37
37
  end
38
38
 
39
+ describe '#unset_requires_password_change' do
40
+ it 'should not unset the requires_password_change flag' do
41
+ u = FactoryGirl.create(:spud_user, :requires_password_change => true)
42
+ expect{
43
+ u.update_attributes(:first_name => 'updated')
44
+ }.to_not change(u, :requires_password_change)
45
+ end
46
+
47
+ it 'should unset the requires_password_change flag' do
48
+ u = FactoryGirl.create(:spud_user, :requires_password_change => true)
49
+ expect{
50
+ u.update_attributes(:password => 'updated', :password_confirmation => 'updated')
51
+ }.to change(u, :requires_password_change).from(true).to(false)
52
+ end
53
+ end
54
+
39
55
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tb_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Woods
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-02 00:00:00.000000000 Z
11
+ date: 2015-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: jquery-ui-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: breadcrumbs_on_rails
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -293,24 +307,10 @@ files:
293
307
  - app/assets/libs/datepicker/css/datepicker.css
294
308
  - app/assets/libs/datepicker/js/bootstrap-datepicker.js
295
309
  - app/assets/libs/datepicker/less/datepicker.less
296
- - app/assets/libs/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png
297
- - app/assets/libs/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png
298
- - app/assets/libs/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png
299
- - app/assets/libs/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png
300
- - app/assets/libs/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png
301
- - app/assets/libs/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png
302
- - app/assets/libs/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png
303
- - app/assets/libs/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png
304
- - app/assets/libs/jquery-ui/images/ui-icons_222222_256x240.png
305
- - app/assets/libs/jquery-ui/images/ui-icons_2e83ff_256x240.png
306
- - app/assets/libs/jquery-ui/images/ui-icons_454545_256x240.png
307
- - app/assets/libs/jquery-ui/images/ui-icons_888888_256x240.png
308
- - app/assets/libs/jquery-ui/images/ui-icons_cd0a0a_256x240.png
309
- - app/assets/libs/jquery-ui/jquery-ui.js
310
- - app/assets/libs/jquery-ui/jquery-ui.scss
311
310
  - app/assets/stylesheets/admin/application.css
312
311
  - app/assets/stylesheets/admin/core/application.scss
313
312
  - app/assets/stylesheets/admin/core/login.scss
313
+ - app/assets/stylesheets/admin/core/users.scss
314
314
  - app/controllers/admin/application_controller.rb
315
315
  - app/controllers/admin/dashboard_controller.rb
316
316
  - app/controllers/admin/password_resets_controller.rb
@@ -325,8 +325,9 @@ files:
325
325
  - app/controllers/user_sessions_controller.rb
326
326
  - app/helpers/admin/application_helper.rb
327
327
  - app/helpers/admin/roles_helper.rb
328
+ - app/helpers/spud/application_helper.rb
328
329
  - app/helpers/tb_core/application_helper.rb
329
- - app/mailers/core_mailer.rb
330
+ - app/mailers/tb_core_mailer.rb
330
331
  - app/models/spud/spud_user_model.rb
331
332
  - app/models/spud_permission.rb
332
333
  - app/models/spud_role.rb
@@ -353,8 +354,6 @@ files:
353
354
  - app/views/admin/users/index.html.erb
354
355
  - app/views/admin/users/new.html.erb
355
356
  - app/views/admin/users/show.html.erb
356
- - app/views/core_mailer/forgot_password_notification.html.erb
357
- - app/views/core_mailer/forgot_password_notification.text.erb
358
357
  - app/views/layouts/admin/_flashes.html.erb
359
358
  - app/views/layouts/admin/_search.html.erb
360
359
  - app/views/layouts/admin/application.html.erb
@@ -362,10 +361,15 @@ files:
362
361
  - app/views/layouts/admin/error_page.html.erb
363
362
  - app/views/layouts/admin/login.html.erb
364
363
  - app/views/layouts/error_page.html.erb
364
+ - app/views/layouts/mailer.html.erb
365
365
  - app/views/layouts/spud/admin/detail.html.erb
366
366
  - app/views/layouts/user_sessions.html.erb
367
367
  - app/views/password_resets/index.html.erb
368
368
  - app/views/password_resets/show.html.erb
369
+ - app/views/tb_core_mailer/forgot_password_notification.html.erb
370
+ - app/views/tb_core_mailer/user_credentials.html.erb
371
+ - app/views/user_sessions/_form.html.erb
372
+ - app/views/user_sessions/change_password.html.erb
369
373
  - app/views/user_sessions/new.html.erb
370
374
  - config/locales/en.yml
371
375
  - config/routes.rb
@@ -378,6 +382,7 @@ files:
378
382
  - db/migrate/20130620143941_create_spud_permissions.rb
379
383
  - db/migrate/20130620151132_create_spud_role_permissions.rb
380
384
  - db/migrate/20130620163144_drop_spud_admin_permissions.rb
385
+ - db/migrate/20150610143438_add_requires_password_change_to_spud_users.rb
381
386
  - db/seeds.rb
382
387
  - lib/generators/spud/controller_spec_generator.rb
383
388
  - lib/generators/spud/module_generator.rb
@@ -389,6 +394,7 @@ files:
389
394
  - lib/generators/spud/templates/assets/admin/module.js.erb
390
395
  - lib/generators/spud/templates/assets/application.js
391
396
  - lib/generators/spud/templates/assets/application.scss
397
+ - lib/generators/spud/templates/assets/bootstrap.js
392
398
  - lib/generators/spud/templates/assets/module.js.erb
393
399
  - lib/generators/spud/templates/controller.rb.erb
394
400
  - lib/generators/spud/templates/controller_spec.rb.erb
@@ -457,6 +463,7 @@ files:
457
463
  - spec/dummy/db/migrate/20141214200810_create_spud_permissions.tb_core.rb
458
464
  - spec/dummy/db/migrate/20141214200811_create_spud_role_permissions.tb_core.rb
459
465
  - spec/dummy/db/migrate/20141214200812_drop_spud_admin_permissions.tb_core.rb
466
+ - spec/dummy/db/migrate/20150610180845_add_requires_password_change_to_spud_users.tb_core.rb
460
467
  - spec/dummy/db/schema.rb
461
468
  - spec/dummy/public/404.html
462
469
  - spec/dummy/public/422.html
@@ -536,6 +543,7 @@ test_files:
536
543
  - spec/dummy/db/migrate/20141214200810_create_spud_permissions.tb_core.rb
537
544
  - spec/dummy/db/migrate/20141214200811_create_spud_role_permissions.tb_core.rb
538
545
  - spec/dummy/db/migrate/20141214200812_drop_spud_admin_permissions.tb_core.rb
546
+ - spec/dummy/db/migrate/20150610180845_add_requires_password_change_to_spud_users.tb_core.rb
539
547
  - spec/dummy/db/schema.rb
540
548
  - spec/dummy/public/404.html
541
549
  - spec/dummy/public/422.html