tb_core 1.0.2 → 1.1.0
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 +8 -8
- data/README.md +89 -0
- data/app/assets/javascripts/{spud/admin → admin}/application.js +1 -7
- data/app/assets/javascripts/admin/dashboard.js +9 -0
- data/app/assets/javascripts/admin/split_pane.js +138 -0
- data/app/assets/javascripts/admin/users.js +84 -0
- data/app/assets/stylesheets/{spud/admin/application.css → admin/application.css.scss} +14 -104
- data/app/assets/stylesheets/admin/login.css.scss +49 -0
- data/app/assets/stylesheets/admin/split_pane.css.scss +126 -0
- data/app/assets/stylesheets/admin/users.css.scss +9 -0
- data/app/controllers/{spud/admin → admin}/application_controller.rb +29 -30
- data/app/controllers/admin/dashboard_controller.rb +23 -0
- data/app/controllers/admin/password_resets_controller.rb +51 -0
- data/app/controllers/admin/roles_controller.rb +58 -0
- data/app/controllers/admin/settings_controller.rb +19 -0
- data/app/controllers/admin/setup_controller.rb +24 -0
- data/app/controllers/{spud/admin → admin}/user_sessions_controller.rb +8 -8
- data/app/controllers/admin/users_controller.rb +69 -0
- data/app/controllers/password_resets_controller.rb +52 -0
- data/app/controllers/sitemaps_controller.rb +8 -0
- data/app/controllers/spud/application_controller.rb +6 -20
- data/app/controllers/user_sessions_controller.rb +26 -0
- data/app/helpers/{spud/admin → admin}/application_helper.rb +1 -1
- data/app/helpers/admin/roles_helper.rb +2 -0
- data/app/helpers/spud/application_helper.rb +0 -7
- data/app/mailers/core_mailer.rb +9 -0
- data/app/models/spud_permission.rb +33 -0
- data/app/models/spud_role.rb +32 -0
- data/app/models/spud_role_permission.rb +9 -0
- data/app/models/spud_user.rb +79 -24
- data/app/models/spud_user_setting.rb +3 -3
- data/app/views/{spud/admin → admin}/dashboard/index.html.erb +1 -4
- data/app/views/admin/password_resets/index.html.erb +10 -0
- data/app/views/admin/password_resets/show.html.erb +15 -0
- data/app/views/admin/roles/_form.html.erb +33 -0
- data/app/views/admin/roles/edit.html.erb +2 -0
- data/app/views/admin/roles/index.html.erb +29 -0
- data/app/views/admin/roles/new.html.erb +2 -0
- data/app/views/{spud/admin → admin}/settings/edit.html.erb +6 -1
- data/app/views/admin/setup/new.html.erb +44 -0
- data/app/views/admin/user_sessions/new.html.erb +17 -0
- data/app/views/{spud/admin → admin}/users/_form.html.erb +20 -20
- data/app/views/admin/users/_index.html.erb +15 -0
- data/app/views/admin/users/edit.html.erb +3 -0
- data/app/views/admin/users/index.html.erb +34 -0
- data/app/views/admin/users/new.html.erb +3 -0
- data/app/views/admin/users/show.html.erb +28 -0
- data/app/views/layouts/admin/application.html.erb +68 -0
- data/app/views/layouts/{spud/admin → admin}/detail.html.erb +2 -2
- data/app/views/layouts/admin/login.html.erb +27 -0
- data/app/views/password_resets/index.html.erb +11 -0
- data/app/views/password_resets/show.html.erb +26 -0
- data/app/views/user_sessions/new.html.erb +25 -0
- data/config/routes.rb +22 -15
- data/db/migrate/20130620143010_create_spud_roles.rb +10 -0
- data/db/migrate/20130620143941_create_spud_permissions.rb +10 -0
- data/db/migrate/20130620151132_create_spud_role_permissions.rb +11 -0
- data/db/migrate/20130620163144_drop_spud_admin_permissions.rb +15 -0
- data/db/seeds.rb +3 -0
- data/lib/spud_core/belongs_to_app.rb +35 -48
- data/lib/spud_core/configuration.rb +5 -10
- data/lib/spud_core/engine.rb +31 -6
- data/lib/spud_core/exceptions.rb +7 -0
- data/lib/spud_core/searchable.rb +9 -9
- data/lib/spud_core/version.rb +3 -3
- data/spec/controllers/{spud/admin → admin}/application_controller_spec.rb +10 -6
- data/spec/controllers/{spud/admin → admin}/dashboard_controller_spec.rb +17 -29
- data/spec/controllers/{spud/admin → admin}/password_reset_controller_spec.rb +5 -5
- data/spec/controllers/admin/settings_controller_spec.rb +30 -0
- data/spec/controllers/admin/setup_controller_spec.rb +39 -0
- data/spec/controllers/admin/user_sessions_controller_spec.rb +52 -0
- data/spec/controllers/{spud/admin → admin}/users_controller_spec.rb +19 -35
- data/spec/controllers/{spud/sitemap_controllers_spec.rb → sitemap_controllers_spec.rb} +1 -1
- data/spec/dummy/config/database.yml +2 -2
- data/spec/dummy/db/schema.rb +23 -5
- data/spec/dummy/log/test.log +36118 -0
- data/spec/helpers/spud/admin/application_helper_spec.rb +1 -1
- data/spec/models/spud_role_spec.rb +46 -0
- data/spec/models/spud_user_spec.rb +0 -1
- metadata +101 -97
- data/README.markdown +0 -60
- data/app/assets/images/back_disabled.jpg +0 -0
- data/app/assets/images/back_enabled.jpg +0 -0
- data/app/assets/images/favicon.ico +0 -0
- data/app/assets/images/forward_disabled.jpg +0 -0
- data/app/assets/images/forward_enabled.jpg +0 -0
- data/app/assets/images/sort_asc.png +0 -0
- data/app/assets/images/sort_asc_disabled.png +0 -0
- data/app/assets/images/sort_both.png +0 -0
- data/app/assets/images/sort_desc.png +0 -0
- data/app/assets/images/sort_desc_disabled.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_flat_55_ffffff_40x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-icons_0073ea_256x240.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-icons_666666_256x240.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-icons_ff0084_256x240.png +0 -0
- data/app/assets/images/spud/admin/flick/ui-icons_ffffff_256x240.png +0 -0
- data/app/assets/images/spud/admin/spud_logo.png +0 -0
- data/app/assets/images/spud/admin/spud_logo@2x.png +0 -0
- data/app/assets/javascripts/spud/admin/dashboard.js +0 -80
- data/app/assets/javascripts/spud/admin/jquery.dataTables.min.js +0 -151
- data/app/assets/stylesheets/spud/forms.css +0 -108
- data/app/assets/stylesheets/spud/login/application.css +0 -302
- data/app/assets/stylesheets/spud/login.css +0 -58
- data/app/assets/stylesheets/spud/setup.css +0 -4
- data/app/assets/stylesheets/spud/sitemaps.css +0 -4
- data/app/assets/stylesheets/spud/user_sessions.css +0 -4
- data/app/assets/stylesheets/spud/users.css +0 -4
- data/app/controllers/spud/admin/dashboard_controller.rb +0 -34
- data/app/controllers/spud/admin/password_resets_controller.rb +0 -52
- data/app/controllers/spud/admin/settings_controller.rb +0 -27
- data/app/controllers/spud/admin/users_controller.rb +0 -109
- data/app/controllers/spud/setup_controller.rb +0 -21
- data/app/controllers/spud/sitemaps_controller.rb +0 -8
- data/app/helpers/spud/password_resets_helper.rb +0 -2
- data/app/mailers/spud/core_mailer.rb +0 -12
- data/app/models/spud_admin_permission.rb +0 -5
- data/app/views/layouts/spud/admin/application.html.erb +0 -73
- data/app/views/layouts/spud/login/application.html.erb +0 -17
- data/app/views/layouts/spud/setup.html.erb +0 -47
- data/app/views/spud/admin/password_resets/index.html.erb +0 -14
- data/app/views/spud/admin/password_resets/show.html.erb +0 -25
- data/app/views/spud/admin/user_sessions/new.html.erb +0 -27
- data/app/views/spud/admin/users/_edit.html.erb +0 -14
- data/app/views/spud/admin/users/_new.html.erb +0 -15
- data/app/views/spud/admin/users/edit.html.erb +0 -3
- data/app/views/spud/admin/users/index.html.erb +0 -42
- data/app/views/spud/admin/users/new.html.erb +0 -3
- data/app/views/spud/admin/users/show.html.erb +0 -12
- data/app/views/spud/setup/index.html.erb +0 -43
- data/spec/controllers/spud/admin/settings_controller_spec.rb +0 -55
- data/spec/controllers/spud/admin/user_sessions_controller_spec.rb +0 -51
- data/spec/controllers/spud/setup_controller_spec.rb +0 -56
- /data/app/assets/images/{spud/admin → admin}/down_arrow.gif +0 -0
- /data/app/assets/images/{spud/admin → admin}/up_arrow.gif +0 -0
- /data/app/assets/images/{spud/admin → admin}/users_thumb.png +0 -0
- /data/app/assets/javascripts/{spud/admin → admin}/date_picker.js +0 -0
- /data/app/assets/javascripts/{spud/admin → admin}/editor.js +0 -0
- /data/app/assets/javascripts/{spud/admin → admin}/preinit.js +0 -0
- /data/app/assets/javascripts/{spud/password_resets.js → admin/roles.js} +0 -0
- /data/app/assets/stylesheets/{spud/admin → admin}/jquery-ui.css +0 -0
- /data/app/assets/stylesheets/{spud/password_resets.css → admin/roles.css} +0 -0
- /data/app/views/{spud/admin → admin}/settings/_form.html.erb +0 -0
- /data/app/views/{spud/core_mailer → core_mailer}/forgot_password_notification.html.erb +0 -0
- /data/app/views/{spud/core_mailer → core_mailer}/forgot_password_notification.text.erb +0 -0
- /data/app/views/{spud/sitemaps → sitemaps}/show.xml.builder +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Admin::UserSessionsController do
|
|
4
|
+
before(:each) do
|
|
5
|
+
# activate_authlogic
|
|
6
|
+
# SpudUserSession.create(FactoryGirl.build(:spud_user))
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe :new do
|
|
10
|
+
it "should redirect to setup url if no users exist" do
|
|
11
|
+
get :new
|
|
12
|
+
response.should redirect_to(admin_setup_path)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should render login form if users do exist" do
|
|
16
|
+
u = FactoryGirl.create(:spud_user)
|
|
17
|
+
u.save
|
|
18
|
+
get :new
|
|
19
|
+
response.should be_success
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
describe :create do
|
|
24
|
+
it "should rerender form when login is invalid" do
|
|
25
|
+
post :create
|
|
26
|
+
response.should 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
|
+
response.should 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_authlogic
|
|
40
|
+
SpudUserSession.create(FactoryGirl.build(:spud_user))
|
|
41
|
+
delete :destroy
|
|
42
|
+
response.should redirect_to(admin_login_path)
|
|
43
|
+
end
|
|
44
|
+
it "should redirect to the admin login page after logout" do
|
|
45
|
+
request.env["HTTP_REFERER"] = "/"
|
|
46
|
+
activate_authlogic
|
|
47
|
+
SpudUserSession.create(FactoryGirl.build(:spud_user))
|
|
48
|
+
delete :destroy
|
|
49
|
+
response.should redirect_to("/admin/login")
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe Admin::UsersController do
|
|
4
4
|
before(:each) do
|
|
5
5
|
activate_authlogic
|
|
6
6
|
@user = SpudUserSession.create(FactoryGirl.build(:spud_user, :super_admin => true))
|
|
7
|
+
@role = FactoryGirl.create(:spud_role)
|
|
8
|
+
Spud::Core.admin_applications += [{:name => 'Test', :key => :test}]
|
|
9
|
+
Spud::Core.permissions.push(SpudPermission.new('admin.test.full_access', 'Test', [:test]))
|
|
7
10
|
end
|
|
8
11
|
|
|
9
12
|
describe :index do
|
|
@@ -29,27 +32,28 @@ describe Spud::Admin::UsersController do
|
|
|
29
32
|
|
|
30
33
|
it "should allow access to users with the correct permissions" do
|
|
31
34
|
u = FactoryGirl.create(:spud_user, :super_admin => false)
|
|
32
|
-
|
|
35
|
+
@role.permission_tags = ['admin.users.full_access']
|
|
36
|
+
@role.save()
|
|
37
|
+
u.role = @role
|
|
33
38
|
SpudUserSession.create(u)
|
|
34
39
|
get :index
|
|
35
40
|
|
|
36
41
|
response.should be_success
|
|
37
42
|
end
|
|
38
43
|
|
|
39
|
-
it "should not allow access to users without
|
|
44
|
+
it "should not allow access to users without a role, and redirect to root_url if the user has no permissions" do
|
|
40
45
|
u = FactoryGirl.create(:spud_user, :super_admin => false)
|
|
41
|
-
u.
|
|
46
|
+
u.role = nil
|
|
42
47
|
SpudUserSession.create(u)
|
|
43
48
|
get :index
|
|
44
49
|
|
|
45
50
|
response.should redirect_to(root_url)
|
|
46
51
|
end
|
|
47
52
|
|
|
48
|
-
it "should not allow access to users
|
|
53
|
+
it "should not allow access to users with a role that contains no permissions, and redirect to root_url if the users has no other admin modules" do
|
|
49
54
|
u = FactoryGirl.create(:spud_user, :super_admin => false)
|
|
50
|
-
u.
|
|
51
|
-
|
|
52
|
-
]
|
|
55
|
+
u.role = @role
|
|
56
|
+
@role.spud_role_permissions = []
|
|
53
57
|
SpudUserSession.create(u)
|
|
54
58
|
get :index
|
|
55
59
|
|
|
@@ -58,14 +62,12 @@ describe Spud::Admin::UsersController do
|
|
|
58
62
|
|
|
59
63
|
it "should not allow access to users without permission and redirect to admin_root if the users has other admin modules" do
|
|
60
64
|
u = FactoryGirl.create(:spud_user, :super_admin => false)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
FactoryGirl.build(:spud_admin_permission, :name => "App2", :access => true)
|
|
64
|
-
]
|
|
65
|
+
@role.permission_tags = ['admin.test.full_access']
|
|
66
|
+
u.role = @role
|
|
65
67
|
SpudUserSession.create(u)
|
|
66
68
|
get :index
|
|
67
69
|
|
|
68
|
-
response.should redirect_to(
|
|
70
|
+
response.should redirect_to(admin_root_path)
|
|
69
71
|
end
|
|
70
72
|
end
|
|
71
73
|
|
|
@@ -105,33 +107,15 @@ describe Spud::Admin::UsersController do
|
|
|
105
107
|
lambda {
|
|
106
108
|
post :create, :spud_user => FactoryGirl.attributes_for(:spud_user)
|
|
107
109
|
}.should change(SpudUser, :count).by(1)
|
|
108
|
-
response.should be_redirect
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
it "should not create a user with an invalid form entry" do
|
|
112
|
-
lambda {
|
|
113
|
-
post :create, :spud_user => FactoryGirl.attributes_for(:spud_user, :email => nil)
|
|
114
|
-
}.should_not change(SpudUser, :count)
|
|
115
|
-
flash[:error].should_not be_blank
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
context "JS format" do
|
|
120
|
-
it "should create a new user with a valid form submission" do
|
|
121
|
-
lambda {
|
|
122
|
-
post :create, :spud_user => FactoryGirl.attributes_for(:spud_user), :format => :js
|
|
123
|
-
}.should change(SpudUser, :count).by(1)
|
|
124
110
|
response.should be_success
|
|
125
111
|
end
|
|
126
112
|
|
|
127
113
|
it "should not create a user with an invalid form entry" do
|
|
128
114
|
lambda {
|
|
129
|
-
post :create, :spud_user => FactoryGirl.attributes_for(:spud_user, :email => nil)
|
|
115
|
+
post :create, :spud_user => FactoryGirl.attributes_for(:spud_user, :email => nil)
|
|
130
116
|
}.should_not change(SpudUser, :count)
|
|
131
|
-
response.should_not be_success
|
|
132
117
|
end
|
|
133
|
-
|
|
134
|
-
end
|
|
118
|
+
end
|
|
135
119
|
end
|
|
136
120
|
|
|
137
121
|
describe :edit do
|
|
@@ -166,11 +150,11 @@ describe Spud::Admin::UsersController do
|
|
|
166
150
|
}.should change(user, :first_name).to(new_name)
|
|
167
151
|
end
|
|
168
152
|
|
|
169
|
-
it "should redirect to the admin users after a successful update" do
|
|
153
|
+
it "should redirect to the admin users show view after a successful update" do
|
|
170
154
|
user = FactoryGirl.create(:spud_user)
|
|
171
155
|
put :update, :id => user.id, :spud_user => user.attributes.merge!(:first_name => "Adam")
|
|
172
156
|
|
|
173
|
-
response.should redirect_to(
|
|
157
|
+
response.should redirect_to(admin_user_path(user))
|
|
174
158
|
end
|
|
175
159
|
end
|
|
176
160
|
|
data/spec/dummy/db/schema.rb
CHANGED
|
@@ -11,15 +11,31 @@
|
|
|
11
11
|
#
|
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
|
13
13
|
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
|
14
|
+
ActiveRecord::Schema.define(:version => 20130620163144) do
|
|
15
15
|
|
|
16
|
-
create_table "
|
|
17
|
-
t.
|
|
16
|
+
create_table "spud_permissions", :force => true do |t|
|
|
17
|
+
t.string "name", :null => false
|
|
18
|
+
t.string "tag", :null => false
|
|
19
|
+
t.datetime "created_at", :null => false
|
|
20
|
+
t.datetime "updated_at", :null => false
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
add_index "spud_permissions", ["tag"], :name => "index_spud_permissions_on_tag", :unique => true
|
|
24
|
+
|
|
25
|
+
create_table "spud_role_permissions", :force => true do |t|
|
|
26
|
+
t.integer "spud_role_id", :null => false
|
|
27
|
+
t.string "spud_permission_tag", :null => false
|
|
28
|
+
t.datetime "created_at", :null => false
|
|
29
|
+
t.datetime "updated_at", :null => false
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
add_index "spud_role_permissions", ["spud_permission_tag"], :name => "index_spud_role_permissions_on_spud_permission_tag"
|
|
33
|
+
add_index "spud_role_permissions", ["spud_role_id"], :name => "index_spud_role_permissions_on_spud_role_id"
|
|
34
|
+
|
|
35
|
+
create_table "spud_roles", :force => true do |t|
|
|
18
36
|
t.string "name"
|
|
19
|
-
t.boolean "access"
|
|
20
37
|
t.datetime "created_at", :null => false
|
|
21
38
|
t.datetime "updated_at", :null => false
|
|
22
|
-
t.string "scope"
|
|
23
39
|
end
|
|
24
40
|
|
|
25
41
|
create_table "spud_user_settings", :force => true do |t|
|
|
@@ -51,9 +67,11 @@ ActiveRecord::Schema.define(:version => 20120329174000) do
|
|
|
51
67
|
t.datetime "created_at", :null => false
|
|
52
68
|
t.datetime "updated_at", :null => false
|
|
53
69
|
t.string "time_zone"
|
|
70
|
+
t.integer "spud_role_id"
|
|
54
71
|
end
|
|
55
72
|
|
|
56
73
|
add_index "spud_users", ["email"], :name => "index_spud_users_on_email"
|
|
57
74
|
add_index "spud_users", ["login"], :name => "index_spud_users_on_login"
|
|
75
|
+
add_index "spud_users", ["spud_role_id"], :name => "index_spud_users_on_spud_role_id"
|
|
58
76
|
|
|
59
77
|
end
|