caboose-cms 0.3.86 → 0.3.87

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTFiZmFkNWM5MDk2ZTIwOTk5MjMwNWJmMDYxZWEzZjVlNTU5OThmZA==
4
+ NzU4NmNkZmVkZjE2ZTA2ZDUwYWEwNjlmY2FlZDdkZjhmODYyODViYQ==
5
5
  data.tar.gz: !binary |-
6
- YjQ0NDAzNjc0YmE0ZjQ5ODUxYmQ5NWRiMDk3YTQ5ZDBjZTI3OTFmNQ==
6
+ MDM3MTU1NmU1MDFmYWNhNzA1ZTQyMWIzYTExNmE5YzYzNmVhNGEzYw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YzNmN2Y5NTdlMjMyNjNjYTYwZTRmODM1OTc4ZTM4NDhmYzc5YjI0YjQxZThh
10
- OWM1OGM4ZGRhNTg3ZWNlOTdlZThmNGM1OWU5ZmU5MWFhNThhOGVlM2M4N2Jl
11
- ODQ2NWYwMzJiZTUzZTczZDdjMDUzNDZlOGE0MGU5YmM2MzY4Zjg=
9
+ YzE5MjJmZjI2MmVhNDVlNWJjYWU2NDY2NzcxOTc5Yjk1MGNhYjg3NDc2ZDky
10
+ YjZlYmRlNDgyZjMwNWEwY2M3Zjg3NDQ3ZGQyNDQyMWQwMjk4NjkzYTAwNzAw
11
+ NzExN2M3MDcwOTY4NzM3MDM0OGQ1NDhkNDEzZTEwYTgzNzYyNmQ=
12
12
  data.tar.gz: !binary |-
13
- Y2IyMmY5MGEyNzBmMzk5YzU0MGM1NjBmYzk3MmUxMGQzMGM0ZWJmN2QxMTIx
14
- Y2JjZDlhODA0ZGZhMjIyMWQwYzRhMmM3NTU1ZTE1MzQ0NjZkNGMzZTA2YjFi
15
- ODQ5YTkyYzU0NGI1MmI3OGE1OTdlYzlmZGUwN2JlNzI2NTVhZmU=
13
+ ZDRmNTkxZWQwODNmYzUxNzUzNjQyZTc5ZGRiNzI1OGFkMzQ3YTdlYmFhODZj
14
+ ZDFlZjM1MWYzOGRmMDg4NDNhMzVlYzgwZDRjODk2YjI1YmJjMTgyN2YyOTA2
15
+ YmQ3MjkxMjk1NzE0NjgwMjU3Nzg4N2E0Y2E4NTg3Mjg1NzUwMDE=
@@ -194,15 +194,18 @@ module Caboose
194
194
  })
195
195
 
196
196
  user = User.new()
197
- user.username = params[:username]
197
+ user.email = params[:email] ? params[:email].strip.downcase : nil
198
198
 
199
- if (user.username.length == 0)
200
- resp.error = "Your username is required."
201
- elsif
199
+ if user.email.length == 0
200
+ resp.error = "Please enter a valid email address."
201
+ elsif User.where(:email => user.email).exists?
202
+ resp.error = "That email is already in the system."
203
+ else
202
204
  user.save
203
205
  resp.redirect = "/admin/users/#{user.id}/edit"
204
206
  end
205
- render json: resp
207
+
208
+ render :json => resp
206
209
  end
207
210
 
208
211
  # PUT /admin/users/1
@@ -1,24 +1,33 @@
1
1
 
2
2
  <h1>New user</h1>
3
- <div id='user_new_container'></div>
3
+
4
+ <form action='/admin/users' method='post' id='new_user_form'>
5
+ <input type='hidden' name='authenticity_token' value='<%= form_authenticity_token %>' />
6
+ <p><input type='text' name='email' id='email' placeholder='Email' value='' style='width: 400px;' /></p>
7
+ <div id='message'></div>
8
+ <p><input type='submit' value='Add User' /></p>
9
+ </form>
4
10
 
5
11
  <% content_for :caboose_js do %>
6
12
  <script type='text/javascript'>
7
13
 
8
- var user = false;
9
14
  $(document).ready(function() {
15
+ $('#new_user_form').submit(function() { add_user(); return false; });
16
+ });
10
17
 
11
- user = new Model({
12
- name: 'User',
13
- id: 'new',
14
- listing_url: 'get /admin/users',
15
- create_url: 'post /admin/users',
16
- attributes: [
17
- { name: 'username', type: 'text', value: '' }
18
- ]
18
+ function add_user()
19
+ {
20
+ $('#message').html("<p class='loading'>Adding user...</p>");
21
+ $.ajax({
22
+ url: '/admin/users',
23
+ type: 'post',
24
+ data: $('#new_user_form').serialize(),
25
+ success: function(resp) {
26
+ if (resp.error) $('#message').html("<p class='note error'>" + resp.error + "</p>");
27
+ if (resp.redirect) window.location = resp.redirect;
28
+ }
19
29
  });
20
-
21
- });
30
+ }
22
31
 
23
32
  </script>
24
33
  <% end %>
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.3.86'
2
+ VERSION = '0.3.87'
3
3
  end
@@ -70,6 +70,22 @@ namespace :caboose do
70
70
  d = DateTime.strptime("04/01/2014 10:00 am -0700", "%m/%d/%Y %I:%M %P %Z")
71
71
  puts d
72
72
  end
73
+
74
+ desc "Removes duplicate users"
75
+ task :remove_duplicate_users => :environment do
76
+ while true
77
+ query = ["select email from users group by email having count(email) > ?", 1]
78
+ rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, query))
79
+ break if rows.nil? || rows.count == 0
80
+ puts "Deleting #{rows.count} emails..."
81
+ query = ["delete from users where id in (
82
+ select max(A.id) from users A
83
+ where A.email in (select email from users B group by B.email having count(B.email) > ?)
84
+ group by A.email
85
+ )", 1]
86
+ ActiveRecord::Base.connection.execute(ActiveRecord::Base.send(:sanitize_sql_array, query))
87
+ end
88
+ end
73
89
 
74
90
  end
75
91
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.86
4
+ version: 0.3.87
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - ! '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: httparty
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
153
167
  description: CMS built on rails with love.
154
168
  email:
155
169
  - william@nine.is