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.
- checksums.yaml +4 -4
- data/README.md +10 -0
- data/app/assets/javascripts/admin/core/application.js +2 -1
- data/app/assets/javascripts/admin/core/modal.js +36 -6
- data/app/assets/javascripts/admin/core/users.js +121 -2
- data/app/assets/javascripts/tb_core/configuration.js.erb +1 -1
- data/app/assets/javascripts/tb_core/remote.js +9 -6
- data/app/assets/javascripts/tb_core/utility.js +11 -0
- data/app/assets/stylesheets/admin/core/application.scss +118 -117
- data/app/assets/stylesheets/admin/core/login.scss +15 -14
- data/app/assets/stylesheets/admin/core/users.scss +14 -0
- data/app/controllers/admin/application_controller.rb +4 -14
- data/app/controllers/admin/password_resets_controller.rb +1 -1
- data/app/controllers/admin/user_sessions_controller.rb +0 -27
- data/app/controllers/admin/users_controller.rb +37 -4
- data/app/controllers/password_resets_controller.rb +1 -1
- data/app/controllers/spud/application_controller.rb +37 -11
- data/app/controllers/user_sessions_controller.rb +46 -10
- data/app/helpers/admin/application_helper.rb +8 -1
- data/app/helpers/spud/application_helper.rb +36 -0
- data/app/helpers/tb_core/application_helper.rb +2 -2
- data/app/mailers/tb_core_mailer.rb +25 -0
- data/app/models/spud/spud_user_model.rb +14 -0
- data/app/views/admin/setup/new.html.erb +6 -14
- data/app/views/admin/user_sessions/new.html.erb +1 -25
- data/app/views/admin/users/_form.html.erb +25 -2
- data/app/views/layouts/admin/application.html.erb +2 -2
- data/app/views/layouts/admin/login.html.erb +2 -1
- data/app/views/layouts/mailer.html.erb +23 -0
- data/app/views/tb_core_mailer/forgot_password_notification.html.erb +12 -0
- data/app/views/tb_core_mailer/user_credentials.html.erb +19 -0
- data/app/views/user_sessions/_form.html.erb +24 -0
- data/app/views/user_sessions/change_password.html.erb +21 -0
- data/app/views/user_sessions/new.html.erb +1 -22
- data/config/locales/en.yml +12 -2
- data/config/routes.rb +5 -2
- data/db/migrate/20150610143438_add_requires_password_change_to_spud_users.rb +5 -0
- data/lib/generators/spud/setup_generator.rb +5 -0
- data/lib/generators/spud/templates/assets/application.js +1 -1
- data/lib/generators/spud/templates/assets/application.scss +2 -2
- data/lib/generators/spud/templates/assets/bootstrap.js +14 -0
- data/lib/spud_core/belongs_to_app.rb +1 -1
- data/lib/spud_core/engine.rb +1 -0
- data/lib/spud_core/errors.rb +8 -0
- data/lib/spud_core/version.rb +1 -1
- data/lib/tb_core/form_builder.rb +31 -6
- data/spec/controllers/admin/user_sessions_controller_spec.rb +0 -28
- data/spec/dummy/config/environments/development.rb +2 -2
- data/spec/dummy/db/migrate/20150610180845_add_requires_password_change_to_spud_users.tb_core.rb +6 -0
- data/spec/dummy/db/schema.rb +23 -22
- data/spec/models/spud_user_spec.rb +18 -2
- metadata +28 -20
- data/app/assets/libs/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-icons_888888_256x240.png +0 -0
- data/app/assets/libs/jquery-ui/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/libs/jquery-ui/jquery-ui.js +0 -8952
- data/app/assets/libs/jquery-ui/jquery-ui.scss +0 -784
- data/app/mailers/core_mailer.rb +0 -9
- data/app/views/core_mailer/forgot_password_notification.html.erb +0 -14
- 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
|
-
<%=
|
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' %>
|
data/config/locales/en.yml
CHANGED
@@ -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
|
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
|
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
|
-
|
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'
|
@@ -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())
|
@@ -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[:
|
12
|
+
if app[:key] == name
|
13
13
|
@page_application = app
|
14
14
|
break
|
15
15
|
end
|
data/lib/spud_core/engine.rb
CHANGED
data/lib/spud_core/errors.rb
CHANGED
@@ -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
|
data/lib/spud_core/version.rb
CHANGED
data/lib/tb_core/form_builder.rb
CHANGED
@@ -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
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
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
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -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:
|
14
|
+
ActiveRecord::Schema.define(version: 20150610180845) do
|
15
15
|
|
16
|
-
create_table "spud_permissions", force:
|
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:
|
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:
|
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:
|
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:
|
50
|
-
t.string "first_name",
|
51
|
-
t.string "last_name",
|
52
|
-
t.boolean "super_admin",
|
53
|
-
t.string "login",
|
54
|
-
t.string "email",
|
55
|
-
t.string "crypted_password",
|
56
|
-
t.string "password_salt",
|
57
|
-
t.string "persistence_token",
|
58
|
-
t.string "single_access_token",
|
59
|
-
t.string "perishable_token",
|
60
|
-
t.integer "login_count",
|
61
|
-
t.integer "failed_login_count",
|
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",
|
66
|
-
t.string "last_login_ip",
|
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",
|
70
|
-
t.integer "spud_role_id",
|
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
|
29
|
-
it { should
|
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.
|
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-
|
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/
|
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
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|