caboose-cms 0.7.62 → 0.7.63

Sign up to get free protection for your applications and to get access to all the features.
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 %>