caboose-cms 0.7.62 → 0.7.63

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c272bf371f2238c10f223ed9646be6b720abc489
4
- data.tar.gz: fc2f1856b64f891dd3276a518bc40e3ce657605e
3
+ metadata.gz: be2e150242b80d282f05be0a3e8c1905cf47ee9e
4
+ data.tar.gz: e255ca6c97cb05fe1ee2d1e90726ef52dbf85cec
5
5
  SHA512:
6
- metadata.gz: de227bf0058a89347d1cfa7a500f0f418097087d60517e751f25b16da3865c3c707ad3ebe284d8472e0adea868e37082458a6271189b41b20db65bbaa1f80635
7
- data.tar.gz: 2008b41b44cf266719f907e071402b4b10f42f5ffe6679b34af3081f74408e1d096425bb6d9879b47ac770e62ec3c1e72d85c77b39a3012b449cf5a3aae03155
6
+ metadata.gz: ffde0cf22e24ae832fdb9d1b0a245df0f2ba9b1f31038a06d0704fbca7636cdb139accfeb331abce2ec8a377462d8f42dc34d433893643cd8e558db90a4cd76d
7
+ data.tar.gz: 830f370a0f3c92b32c585168e323126842538336271e7e36549256f48ac27bc29eda5a61f45f8dbd892f0a7e5934b6f4d659757cdae4febfc8e45bd971f74a25
@@ -63,7 +63,7 @@ MediaController.prototype = {
63
63
  key: that.cat_id + '_${filename}', // use filename as a key
64
64
  Filename: that.cat_id + '_${filename}', // adding this to keep consistency across the runtimes
65
65
  acl: 'public-read',
66
- //'Content-Type': 'image/jpeg',
66
+ 'Content-Type': '',
67
67
  AWSAccessKeyId: that.aws_access_key_id,
68
68
  policy: that.policy,
69
69
  signature: that.signature
@@ -77,6 +77,7 @@ MediaController.prototype = {
77
77
  silverlight_xap_url: '../../js/Moxie.xap', // Silverlight settings
78
78
  init: {
79
79
  BeforeUpload: function(up, file) {
80
+ up.settings.multipart_params["Content-Type"] = file.type;
80
81
  $.ajax({
81
82
  url: '/admin/media/pre-upload',
82
83
  type: 'post',
@@ -126,8 +126,7 @@ BoundCheckboxMultiple = BoundControl.extend({
126
126
 
127
127
  var data = {};
128
128
  data[this.attribute.name] = [value,(checked ? 1 : 0)];
129
-
130
-
129
+
131
130
  $.ajax({
132
131
  url: this.attribute.update_url,
133
132
  type: 'put',
@@ -139,10 +138,10 @@ BoundCheckboxMultiple = BoundControl.extend({
139
138
  for (var thing in resp.attributes[that.attribute.name])
140
139
  that.attribute[thing] = resp.attributes[that.attribute.name][thing];
141
140
  that.attribute.value_clean = that.attribute.value;
142
-
143
- b.active_control = that;
144
- if (this2.binder.success)
145
- this2.binder.success(that);
141
+
142
+ that.binder.active_control = that;
143
+ if (that.binder.success)
144
+ that.binder.success(that);
146
145
  }
147
146
  else if (resp.error)
148
147
  that.error(resp.error);
@@ -69,12 +69,11 @@ module Caboose
69
69
  return
70
70
  end
71
71
 
72
- bob = nil
73
- bob = Caboose::User.where(:username => username).first if Caboose::User.where(:username => username).exists?
74
- bob = Caboose::User.where(:email => username).first if bob.nil? && bob = Caboose::User.where(:email => username)
72
+ bob = Caboose::User.where(:site_id => @site.id, :username => username).first
73
+ bob = Caboose::User.where(:site_id => @site.id, :email => username).first if bob.nil?
75
74
 
76
75
  if bob.nil?
77
- resp.error = "The given username is not in our system."
76
+ resp.error = "The given email or username is not in our system."
78
77
  render :json => resp
79
78
  return
80
79
  end
@@ -24,7 +24,7 @@ module Caboose
24
24
  { "bucket" => bucket },
25
25
  { "acl" => "public-read" },
26
26
  [ "starts-with", "$key", '' ],
27
- #[ "starts-with", "$Content-Type", 'image/' ],
27
+ [ "starts-with", "$Content-Type", "" ],
28
28
  [ 'starts-with', '$name', '' ],
29
29
  [ 'starts-with', '$Filename', '' ],
30
30
  ]
@@ -16,8 +16,10 @@ module Caboose
16
16
  resp = StdClass.new('error' => '', 'redirect' => '')
17
17
  return_url = params[:return_url].nil? ? "/" : params[:return_url];
18
18
 
19
- if (logged_in?)
19
+ if logged_in?
20
20
  resp.error = "Already logged in"
21
+ elsif !@site.allow_self_registration
22
+ resp.error = "This site doesn't allow self registration."
21
23
  else
22
24
 
23
25
  first_name = params[:first_name]
@@ -135,6 +135,7 @@ module Caboose
135
135
  when 'custom_css' then site.custom_css = value
136
136
  when 'custom_js' then site.custom_js = value
137
137
  when 'default_layout_id' then site.default_layout_id = value
138
+ when 'allow_self_registration' then site.allow_self_registration = value
138
139
  end
139
140
  end
140
141
 
@@ -19,10 +19,15 @@ module Caboose
19
19
  #===========================================================================
20
20
 
21
21
  # GET /admin/users
22
- def index
22
+ def admin_index
23
+ return if !user_is_allowed('users', 'view')
24
+ end
25
+
26
+ # GET /admin/users/json
27
+ def admin_json
23
28
  return if !user_is_allowed('users', 'view')
24
29
 
25
- @gen = PageBarGenerator.new(params, {
30
+ pager = PageBarGenerator.new(params, {
26
31
  'site_id' => @site.id,
27
32
  'first_name_like' => '',
28
33
  'last_name_like' => '',
@@ -34,32 +39,42 @@ module Caboose
34
39
  'desc' => false,
35
40
  'base_url' => '/admin/users',
36
41
  'use_url_params' => false
37
- })
38
- @users = @gen.items
42
+ })
43
+ render :json => {
44
+ :pages => pager,
45
+ :models => pager.items.as_json(:include => :roles)
46
+ }
47
+ end
48
+
49
+ # GET /admin/users/:id/json
50
+ def admin_json_single
51
+ return if !user_is_allowed('users', 'view')
52
+ u = User.find(params[:id])
53
+ render :json => u.as_json(:include => :roles)
39
54
  end
40
55
 
41
56
  # GET /admin/users/new
42
- def new
57
+ def admin_new
43
58
  return if !user_is_allowed('users', 'add')
44
59
  @newuser = User.new
45
60
  end
46
61
 
47
- # GET /admin/users/1/edit
48
- def edit
62
+ # GET /admin/users/:id
63
+ def admin_edit
49
64
  return if !user_is_allowed('users', 'edit')
50
65
  @edituser = User.find(params[:id])
51
66
  @all_roles = Role.tree(@site.id)
52
67
  @roles = Role.roles_with_user(@edituser.id)
53
68
  end
54
69
 
55
- # GET /admin/users/1/edit-password
56
- def edit_password
70
+ # GET /admin/users/:id/edit-password
71
+ def admin_edit_password
57
72
  return if !user_is_allowed('users', 'edit')
58
73
  @edituser = User.find(params[:id])
59
74
  end
60
75
 
61
76
  # GET /admin/users/import
62
- def import_form
77
+ def admin_import_form
63
78
  return if !user_is_allowed('users', 'edit')
64
79
  end
65
80
 
@@ -69,7 +84,7 @@ module Caboose
69
84
  end
70
85
 
71
86
  # POST /admin/users/import
72
- def import
87
+ def admin_import
73
88
  return if !user_is_allowed('users', 'add')
74
89
 
75
90
  resp = StdClass.new
@@ -133,7 +148,7 @@ module Caboose
133
148
  end
134
149
 
135
150
  # POST /admin/users
136
- def create
151
+ def admin_add
137
152
  return if !user_is_allowed('users', 'add')
138
153
 
139
154
  resp = StdClass.new({
@@ -147,8 +162,8 @@ module Caboose
147
162
 
148
163
  if user.email.length == 0
149
164
  resp.error = "Please enter a valid email address."
150
- elsif User.where(:email => user.email).exists?
151
- resp.error = "That email is already in the system."
165
+ elsif User.where(:site_id => @site.id, :email => user.email).exists?
166
+ resp.error = "That email is already in the system for this site."
152
167
  else
153
168
  user.save
154
169
  resp.redirect = "/admin/users/#{user.id}"
@@ -157,8 +172,8 @@ module Caboose
157
172
  render :json => resp
158
173
  end
159
174
 
160
- # PUT /admin/users/1
161
- def update
175
+ # PUT /admin/users/:id
176
+ def admin_update
162
177
  return if !user_is_allowed('users', 'edit')
163
178
 
164
179
  resp = StdClass.new
@@ -192,6 +207,7 @@ module Caboose
192
207
  else
193
208
  user.password = Digest::SHA1.hexdigest(Caboose::salt + value)
194
209
  end
210
+ when 'role_ids' then user.toggle_roles(value[0], value[1])
195
211
  when "roles"
196
212
  user.roles = [];
197
213
  value.each { |rid| user.roles << Role.find(rid) } unless value.nil?
@@ -203,14 +219,14 @@ module Caboose
203
219
  render json: resp
204
220
  end
205
221
 
206
- # POST /admin/users/1/update-pic
207
- def update_pic
222
+ # POST /admin/users/:id/update-pic
223
+ def admin_update_pic
208
224
  @edituser = User.find(params[:id])
209
225
  @new_value = "Testing"
210
226
  end
211
227
 
212
- # DELETE /admin/users/1
213
- def destroy
228
+ # DELETE /admin/users/:id
229
+ def admin_delete
214
230
  return if !user_is_allowed('users', 'delete')
215
231
  user = User.find(params[:id])
216
232
  user.destroy
@@ -222,7 +238,7 @@ module Caboose
222
238
  end
223
239
 
224
240
  # POST /admin/users/:id/roles/:role_id
225
- def add_to_role
241
+ def admin_add_to_role
226
242
  return if !user_is_allowed('users', 'edit')
227
243
  if !RoleMembership.where(:user_id => params[:id], :role_id => params[:role_id]).exists?
228
244
  RoleMembership.create(:user_id => params[:id], :role_id => params[:role_id])
@@ -231,14 +247,14 @@ module Caboose
231
247
  end
232
248
 
233
249
  # DELETE /admin/users/:id/roles/:role_id
234
- def remove_from_role
250
+ def admin_remove_from_role
235
251
  return if !user_is_allowed('users', 'edit')
236
252
  RoleMembership.where(:user_id => params[:id], :role_id => params[:role_id]).destroy_all
237
253
  render :json => true
238
254
  end
239
255
 
240
256
  # GET /admin/users/options
241
- def options
257
+ def admin_options
242
258
  return if !user_is_allowed('users', 'view')
243
259
  @users = User.where(:site_id => @site.id).reorder('last_name, first_name').all
244
260
  options = @users.collect { |u| { 'value' => u.id, 'text' => "#{u.first_name} #{u.last_name} (#{u.email})"}}
@@ -3,12 +3,12 @@ module Caboose
3
3
 
4
4
  def forgot_password_email(user)
5
5
  @user = user
6
- mail(:to => user.email, :subject => "#{Caboose::website_name} Forgot Password")
6
+ mail(:to => user.email, :subject => "#{user.site.name.capitalize} Forgot Password")
7
7
  end
8
8
 
9
9
  def locked_account(user)
10
10
  @user = user
11
- mail(:to => user.email, :subject => "#{Caboose::website_name} Locked Account")
11
+ mail(:to => user.email, :subject => "#{user.site.name.capitalize} Locked Account")
12
12
  end
13
13
 
14
14
  end
@@ -337,6 +337,10 @@ class Caboose::Page < ActiveRecord::Base
337
337
  return true if pid == parent_id
338
338
  return self.is_child(parent_id, pid)
339
339
  end
340
+
341
+ def is_child_of?(parent_id)
342
+ return Caboose::Page.is_child(parent_id, self.id)
343
+ end
340
344
 
341
345
  def linked_resources_map
342
346
  resources = { js: [], css: [] }
@@ -431,7 +435,7 @@ class Caboose::Page < ActiveRecord::Base
431
435
 
432
436
  self.block.duplicate_page_block(site_id, p.id, block_type_id)
433
437
 
434
- if duplicate_children
438
+ if duplicate_children && !p.is_child_of?(self.id)
435
439
  self.children.each do |p2|
436
440
  p2.duplicate(site_id, p.id, duplicate_children, child_block_type_id, child_block_type_id)
437
441
  end
@@ -681,6 +681,7 @@ class Caboose::Schema < Caboose::Utilities::Schema
681
681
  [ :use_fonts , :boolean , { :default => true }],
682
682
  [ :logo , :attachment ],
683
683
  [ :is_master , :boolean , { :default => false }],
684
+ [ :allow_self_registration , :boolean , { :default => false }],
684
685
  [ :analytics_id , :string ],
685
686
  [ :use_retargeting , :boolean , { :default => false }],
686
687
  [ :date_js_updated , :datetime ],
@@ -99,5 +99,24 @@ class Caboose::User < ActiveRecord::Base
99
99
  end
100
100
  return nil
101
101
  end
102
+
103
+ def toggle_roles(role_id, value)
104
+ if value.to_i > 0 # Add to role
105
+ if role_id == 'all'
106
+ Caboose::RoleMembership.where(:user_id => self.id).destroy_all
107
+ Caboose::Role.where(:site_id => self.site_id).reorder(:name).all.each{ |r| RoleMembership.create(:user_id => self.id, :role_id => r.id) }
108
+ else
109
+ if !Caboose::RoleMembership.where(:user_id => self.id, :role_id => role_id.to_i).exists?
110
+ Caboose::RoleMembership.create( :user_id => self.id, :role_id => role_id.to_i)
111
+ end
112
+ end
113
+ else # Remove from role
114
+ if role_id == 'all'
115
+ Caboose::RoleMembership.where(:user_id => self.id).destroy_all
116
+ else
117
+ Caboose::RoleMembership.where(:user_id => self.id, :role_id => role_id.to_i).destroy_all
118
+ end
119
+ end
120
+ end
102
121
 
103
122
  end
@@ -18,7 +18,7 @@
18
18
  </label>
19
19
 
20
20
  <ul id="login-options">
21
- <li><a href="/register?return_url=<%= @return_url %>" class='register'>Need to register?</a></li>
21
+ <% if @site.allow_self_registration %><li><a href="/register?return_url=<%= @return_url %>" class='register'>Need to register?</a></li><% end %>
22
22
  <li><a href="/login/forgot-password?return_url=<%= @return_url %>" class='forgot'>Forgot your password?</a></li>
23
23
  </ul>
24
24
  <div style='clear: both;' id="message"></div>
@@ -1,9 +1,10 @@
1
1
 
2
+ <h1>Register</h1>
3
+
2
4
  <form action='/register' method='post' id='register_form'>
3
5
  <p class='other_options'>
4
6
  <a href='/login?return_url=<%= @return_url %>'>Already a member?</a>
5
7
  </p>
6
- <h1>Register</h1>
7
8
  <input type='hidden' name='return_url' value='<%= @return_url %>' />
8
9
  <input type='text' name='first_name' id='first_name' placeholder='First name' />
9
10
  <input type='text' name='last_name' id='last_name' placeholder='Last name' />
@@ -13,6 +13,7 @@ user_ids = [] if user_ids.nil?
13
13
  <p><div id='site_<%= @site.id %>_under_construction_html' ></div></p>
14
14
  <p><div id='site_<%= @site.id %>_use_store' ></div></p>
15
15
  <p><div id='site_<%= @site.id %>_use_fonts' ></div></p>
16
+ <p><div id='site_<%= @site.id %>_allow_self_registration' ></div></p>
16
17
  <p><div id='site_<%= @site.id %>_default_layout_id' ></div></p>
17
18
 
18
19
  <h2>Domains</h2>
@@ -71,13 +72,14 @@ $(document).ready(function() {
71
72
  update_url: '/admin/sites/<%= @site.id %>',
72
73
  authenticity_token: '<%= form_authenticity_token %>',
73
74
  attributes: [
74
- { name: 'logo' , nice_name: 'Logo' , type: 'image' , value: <%= raw Caboose.json(@site.logo ? @site.logo.url(:thumb) : '') %>, width: 400, update_url: '/admin/sites/<%= @site.id %>/logo' },
75
- { name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(@site.name) %>, width: 400 },
76
- { name: 'description' , nice_name: 'Description' , type: 'textarea' , value: <%= raw Caboose.json(@site.description) %>, width: 600, height: 75 },
77
- { name: 'under_construction_html' , nice_name: 'Under Construction HTML' , type: 'textarea' , value: <%= raw Caboose.json(@site.under_construction_html) %>, width: 600, height: 75 },
78
- { name: 'use_store' , nice_name: 'Enable Store' , type: 'checkbox' , value: <%= raw Caboose.json(@site.use_store ? true : false) %>, width: 400 },
79
- { name: 'use_fonts' , nice_name: 'Enable Fonts' , type: 'checkbox' , value: <%= raw Caboose.json(@site.use_fonts ? true : false) %>, width: 400 },
80
- { name: 'default_layout_id' , nice_name: 'Default Layout' , type: 'select' , value: <%= raw Caboose.json(@site.default_layout_id) %>, width: 600, options_url: "/admin/sites/<%= @site.id %>/default-layout-options" }
75
+ { name: 'logo' , nice_name: 'Logo' , type: 'image' , value: <%= raw Caboose.json(@site.logo ? @site.logo.url(:thumb) : '') %>, width: 400, update_url: '/admin/sites/<%= @site.id %>/logo' },
76
+ { name: 'name' , nice_name: 'Name' , type: 'text' , value: <%= raw Caboose.json(@site.name) %>, width: 400 },
77
+ { name: 'description' , nice_name: 'Description' , type: 'textarea' , value: <%= raw Caboose.json(@site.description) %>, width: 600, height: 75 },
78
+ { name: 'under_construction_html' , nice_name: 'Under Construction HTML' , type: 'textarea' , value: <%= raw Caboose.json(@site.under_construction_html) %>, width: 600, height: 75 },
79
+ { name: 'use_store' , nice_name: 'Enable Store' , type: 'checkbox' , value: <%= raw Caboose.json(@site.use_store ? true : false) %>, width: 400 },
80
+ { name: 'use_fonts' , nice_name: 'Enable Fonts' , type: 'checkbox' , value: <%= raw Caboose.json(@site.use_fonts ? true : false) %>, width: 400 },
81
+ { name: 'allow_self_registration' , nice_name: 'Allow Self Registration' , type: 'checkbox' , value: <%= raw Caboose.json(@site.allow_self_registration ? true : false) %>, width: 400 },
82
+ { name: 'default_layout_id' , nice_name: 'Default Layout' , type: 'select' , value: <%= raw Caboose.json(@site.default_layout_id) %>, width: 600, options_url: "/admin/sites/<%= @site.id %>/default-layout-options" }
81
83
  ]
82
84
  });
83
85
  });
@@ -0,0 +1,41 @@
1
+
2
+ <h1>Users</h1>
3
+ <div id='users'></div>
4
+
5
+ <% content_for :caboose_js do %>
6
+ <%= javascript_include_tag 'caboose/model/all' %>
7
+ <script type='text/javascript'>
8
+
9
+ $(document).ready(function() {
10
+ var that = this;
11
+ var table = new IndexTable({
12
+ form_authenticity_token: '<%= form_authenticity_token %>',
13
+ container: 'users',
14
+ base_url: '/admin/users',
15
+ allow_bulk_edit: true,
16
+ allow_bulk_delete: true,
17
+ allow_duplicate: false,
18
+ allow_advanced_edit: true,
19
+ fields: [
20
+ { show: true , bulk_edit: true , name: 'first_name' , nice_name: 'First name' , sort: 'first_name' , type: 'text' , value: function(u) { return u.first_name }, width: 100 },
21
+ { show: true , bulk_edit: true , name: 'last_name' , nice_name: 'Last name' , sort: 'last_name' , type: 'text' , value: function(u) { return u.last_name }, width: 100 },
22
+ { show: true , bulk_edit: true , name: 'username' , nice_name: 'Username' , sort: 'username' , type: 'text' , value: function(u) { return u.username }, width: 100 },
23
+ { show: true , bulk_edit: true , name: 'email' , nice_name: 'Email' , sort: 'email' , type: 'text' , value: function(u) { return u.email }, width: 100 },
24
+ { show: true , bulk_edit: true , name: 'locked' , nice_name: 'Locked' , sort: 'locked' , type: 'checkbox' , value: function(u) { return u.locked }, width: 30 },
25
+ { show: true , bulk_edit: true , name: 'role_ids' , nice_name: 'Roles' , sort: 'email' , type: 'checkbox-multiple' , value: function(u) { return get_role_ids(u) }, text: function(u) { return get_role_names(u); }, width: 250, options_url: '/admin/roles/options' }
26
+ ],
27
+ new_model_text: 'New User',
28
+ no_models_text: 'There are no users right now.',
29
+ new_model_fields: [
30
+ { name: 'email', nice_name: 'Email', type: 'text', width: 400 }
31
+ ],
32
+ bulk_import_fields: ['email'],
33
+ bulk_import_url: '/admin/users/bulk'
34
+ });
35
+ });
36
+
37
+ function get_role_ids(u) { return $(u.roles).map(function(i, r) { return r.id }).get(); }
38
+ function get_role_names(u) { return $(u.roles).map(function(i, r) { return r.name }).get(); }
39
+
40
+ </script>
41
+ <% end %>
@@ -5,7 +5,10 @@
5
5
  <input type='hidden' name='authenticity_token' value='<%= form_authenticity_token %>' />
6
6
  <p><input type='text' name='email' id='email' placeholder='Email' value='' style='width: 400px;' /></p>
7
7
  <div id='message'></div>
8
- <p><input type='submit' value='Add User' /></p>
8
+ <p>
9
+ <input type='button' value='< Back' onclick="window.location='/admin/users';" />
10
+ <input type='submit' value='Add User' />
11
+ </p>
9
12
  </form>
10
13
 
11
14
  <% content_for :caboose_js do %>
@@ -174,21 +174,23 @@ Caboose::Engine.routes.draw do
174
174
  # Users
175
175
  #=============================================================================
176
176
 
177
- get "/admin/users" => "users#index"
178
- get "/admin/users/options" => "users#options"
179
- get "/admin/users/new" => "users#new"
180
- get "/admin/users/import" => "users#import_form"
181
- post "/admin/users/import" => "users#import"
177
+ get "/admin/users" => "users#admin_index"
178
+ get "/admin/users/json" => "users#admin_json"
179
+ get "/admin/users/options" => "users#admin_options"
180
+ get "/admin/users/new" => "users#admin_new"
181
+ get "/admin/users/import" => "users#admin_import_form"
182
+ post "/admin/users/import" => "users#admin_import"
183
+ get "/admin/users/:id/json" => "users#admin_json_single"
182
184
  get "/admin/users/:id/su/:token" => "users#admin_su_token"
183
185
  get "/admin/users/:id/su" => "users#admin_su"
184
- get "/admin/users/:id/edit-password" => "users#edit_password"
185
- get "/admin/users/:id" => "users#edit"
186
- put "/admin/users/:id" => "users#update"
187
- post "/admin/users" => "users#create"
188
- delete "/admin/users/:id" => "users#destroy"
189
-
190
- post "/admin/users/:id/roles/:role_id" => "users#add_to_role"
191
- delete "/admin/users/:id/roles/:role_id" => "users#remove_from_role"
186
+ get "/admin/users/:id/edit-password" => "users#admin_edit_password"
187
+ get "/admin/users/:id" => "users#admin_edit"
188
+ put "/admin/users/:id" => "users#admin_update"
189
+ post "/admin/users" => "users#admin_add"
190
+ delete "/admin/users/:id" => "users#admin_delete"
191
+
192
+ post "/admin/users/:id/roles/:role_id" => "users#admin_add_to_role"
193
+ delete "/admin/users/:id/roles/:role_id" => "users#admin_remove_from_role"
192
194
 
193
195
  #=============================================================================
194
196
  # Roles
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.7.62'
2
+ VERSION = '0.7.63'
3
3
  end
@@ -2,7 +2,17 @@ require "caboose/version"
2
2
  require 'aws-sdk'
3
3
 
4
4
  namespace :caboose do
5
-
5
+
6
+ desc "Update super admin password"
7
+ task :update_superadmin_password => :environment do
8
+ sa = Caboose::User.where(:username => 'superadmin').first
9
+ print "Enter a new password: "
10
+ sa.password = STDIN.noecho(&:gets).chomp
11
+ puts "\n\nThe password has been updated.\n\n"
12
+ sa.password = Digest::SHA1.hexdigest(Caboose::salt + sa.password)
13
+ sa.save
14
+ end
15
+
6
16
  desc "Show all comment routes in controllers"
7
17
  task :routes, [:arg1] => :environment do |t, args|
8
18
  puts Caboose::CommentRoutes.controller_routes(args ? args.first : nil)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.62
4
+ version: 0.7.63
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-25 00:00:00.000000000 Z
11
+ date: 2016-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -346,6 +346,20 @@ dependencies:
346
346
  - - ">="
347
347
  - !ruby/object:Gem::Version
348
348
  version: '0'
349
+ - !ruby/object:Gem::Dependency
350
+ name: highline
351
+ requirement: !ruby/object:Gem::Requirement
352
+ requirements:
353
+ - - ">="
354
+ - !ruby/object:Gem::Version
355
+ version: '0'
356
+ type: :runtime
357
+ prerelease: false
358
+ version_requirements: !ruby/object:Gem::Requirement
359
+ requirements:
360
+ - - ">="
361
+ - !ruby/object:Gem::Version
362
+ version: '0'
349
363
  - !ruby/object:Gem::Dependency
350
364
  name: rspec-rails
351
365
  requirement: !ruby/object:Gem::Requirement
@@ -1126,12 +1140,12 @@ files:
1126
1140
  - app/views/caboose/store/admin_edit_tax.html.erb
1127
1141
  - app/views/caboose/users/_admin_footer.html.erb
1128
1142
  - app/views/caboose/users/_admin_header.html.erb
1129
- - app/views/caboose/users/edit.html.erb
1130
- - app/views/caboose/users/edit_password.html.erb
1131
- - app/views/caboose/users/import_form.html.erb
1132
- - app/views/caboose/users/index.html.erb
1133
- - app/views/caboose/users/new.html.erb
1134
- - app/views/caboose/users/update_pic.html.erb
1143
+ - app/views/caboose/users/admin_edit.html.erb
1144
+ - app/views/caboose/users/admin_edit_password.html.erb
1145
+ - app/views/caboose/users/admin_import_form.html.erb
1146
+ - app/views/caboose/users/admin_index.html.erb
1147
+ - app/views/caboose/users/admin_new.html.erb
1148
+ - app/views/caboose/users/admin_update_pic.html.erb
1135
1149
  - app/views/caboose/variants/admin_edit.html.erb
1136
1150
  - app/views/caboose/variants/admin_edit_option1_media.html.erb
1137
1151
  - app/views/caboose/variants/admin_edit_option2_media.html.erb
@@ -1,41 +0,0 @@
1
- <h1>Users</h1>
2
-
3
- <form action='/admin/users' method='get' class='search_form'>
4
- <input type='text' name='first_name_like' value="<%= @gen.params['first_name_like'] %>" placeholder='First name' />
5
- <input type='text' name='last_name_like' value="<%= @gen.params['last_name_like'] %>" placeholder='Last name' />
6
- <input type='text' name='email_like' value="<%= @gen.params['email_like'] %>" placeholder='Email' />
7
- <input type='submit' value='Search' />
8
- </form>
9
-
10
- <p>
11
- <a href='/admin/users/new'>New User</a> |
12
- <a href='/admin/users/import'>Import CSV</a>
13
- </p>
14
-
15
- <table class='data' id='users_table'>
16
- <tr>
17
- <%= raw @gen.sortable_table_headings({
18
- 'first_name' => 'First Name',
19
- 'last_name, first_name' => 'Last Name',
20
- 'username' => 'Username',
21
- 'email' => 'Email'
22
- })
23
- %>
24
- </tr>
25
- <% @users.each do |user| %>
26
- <tr onclick="window.location='/admin/users/<%= user.id %>';">
27
- <td><%= user.first_name %></td>
28
- <td><%= user.last_name %></td>
29
- <td><%= user.username %></td>
30
- <td><%= user.email %></td>
31
- </tr>
32
- <% end %>
33
- </table>
34
-
35
- <p><%= raw @gen.generate %></p>
36
-
37
- <% content_for :caboose_js do %>
38
- <script type='text/javascript'>
39
-
40
- </script>
41
- <% end %>