bpluser 0.3.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +42 -3
- data/app/controllers/bookmarks_controller.rb +1 -1
- data/app/controllers/concerns/bpluser/registrations.rb +22 -6
- data/app/views/devise/registrations/new.html.erb +5 -0
- data/app/views/folders/show.html.erb +1 -1
- data/config/locales/bpluser.en.yml +4 -0
- data/lib/bpluser/engine.rb +6 -0
- data/lib/bpluser/version.rb +1 -1
- data/lib/generators/bpluser/install_generator.rb +4 -0
- data/lib/generators/bpluser/templates/config/initializers/recaptcha.rb +6 -0
- metadata +20 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd649e2a92743c6ccfba60658937a9f8875e852fdb0d69ab4e492b3847c0da0c
|
4
|
+
data.tar.gz: cb75d8272d9c0a349420742b3387b6a0c9c34a4543dc506da9ce15cf6b3a97cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0f409d0f76f047bd5183e70efdea64a82b13a8c3f34cf5bf70531985fc8794a3fe0fce0c663e7aa6f9b03af759c356ba0d218f9c68b1fe9f6269ca4af318fd8
|
7
|
+
data.tar.gz: fe4199c4dcb0a8f152697d878924237968004e96490dcc47df0d793f00b97686aa02adb4c44040b03b134c095cd35fa2acbbe6a6fe0a0d79b757244d22ae064b
|
data/README.md
CHANGED
@@ -8,13 +8,13 @@ Rails engine for providing Devise-based user models and functionality for digita
|
|
8
8
|
This includes bookmarks (Blacklight default), custom folders, and saved searches.
|
9
9
|
|
10
10
|
# Requirements
|
11
|
-
- `ruby >=
|
12
|
-
- `rails ~> 6.
|
11
|
+
- `ruby >= 3.1, < 3.2`
|
12
|
+
- `rails ~> 6.1.7`
|
13
13
|
- `postgres v12 or higher`
|
14
14
|
|
15
15
|
To install, add the following to your Gemfile:
|
16
16
|
```ruby
|
17
|
-
gem 'bpluser', '~> 0.
|
17
|
+
gem 'bpluser', '~> 0.5.0'
|
18
18
|
# OR
|
19
19
|
gem 'bpluser', git: 'https://github.com/boston-library/bpluser'
|
20
20
|
```
|
@@ -31,3 +31,42 @@ rails bpluser:install:update_migrations
|
|
31
31
|
```
|
32
32
|
|
33
33
|
(Note that the installer will ask to overwrite your local `config/locales/devise.en.yml`).
|
34
|
+
|
35
|
+
### Local development
|
36
|
+
|
37
|
+
In one console, start Solr from project root:
|
38
|
+
```
|
39
|
+
$ solr_wrapper --config .solr_wrapper.yml
|
40
|
+
```
|
41
|
+
In a second console, index the sample Solr documents (run from `./spec/dummy`):
|
42
|
+
```
|
43
|
+
# Solr must be running
|
44
|
+
$ bundle exec rake bpluser:test_index:seed
|
45
|
+
```
|
46
|
+
Run the migrations and start the app (in second console, run from `./spec/dummy`):
|
47
|
+
```
|
48
|
+
bundle exec rake db:create
|
49
|
+
bundle exec rake db:migrate
|
50
|
+
rails s
|
51
|
+
# app should be accessible at 127.0.0.1:3000
|
52
|
+
```
|
53
|
+
|
54
|
+
### Running tests
|
55
|
+
|
56
|
+
Start Solr from project root:
|
57
|
+
```
|
58
|
+
$ solr_wrapper --config .solr_wrapper_test.yml
|
59
|
+
```
|
60
|
+
Index the sample Solr documents (run from `./spec/dummy`):
|
61
|
+
```
|
62
|
+
# Solr must be running
|
63
|
+
$ RAILS_ENV=test bundle exec rake bpluser:test_index:seed
|
64
|
+
```
|
65
|
+
Run specs
|
66
|
+
```
|
67
|
+
# run all tests
|
68
|
+
$ bundle exec rake spec
|
69
|
+
|
70
|
+
# run a single spec
|
71
|
+
$ bundle exec rake spec SPEC=./spec/models/some_model_spec.rb
|
72
|
+
```
|
@@ -22,7 +22,7 @@ class BookmarksController < CatalogController
|
|
22
22
|
|
23
23
|
if request.xhr?
|
24
24
|
# success ? render(json: { bookmarks: { count: current_or_guest_user.bookmarks.count }}) : render(:text => "", :status => "500")
|
25
|
-
success ? render(:update) : render(plain: '', status:
|
25
|
+
success ? render(:update) : render(plain: '', status: :internal_server_error)
|
26
26
|
else
|
27
27
|
if @bookmarks.any? && success
|
28
28
|
flash[:notice] = I18n.t('blacklight.bookmarks.add.success', count: @bookmarks.count)
|
@@ -10,14 +10,30 @@ module Bpluser
|
|
10
10
|
end
|
11
11
|
|
12
12
|
module InstanceMethods
|
13
|
-
#
|
13
|
+
# override #create from Devise::RegistrationsController to add verify_captcha and logic for error handling
|
14
|
+
# this is the best way to preserve and re-render any submitted params when verify_recaptcha fails
|
14
15
|
def create
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
end
|
16
|
+
build_resource(sign_up_params)
|
17
|
+
|
18
|
+
resource.save if verify_recaptcha
|
19
19
|
|
20
|
-
|
20
|
+
yield resource if block_given?
|
21
|
+
if resource.persisted?
|
22
|
+
if resource.active_for_authentication?
|
23
|
+
set_flash_message! :notice, :signed_up
|
24
|
+
sign_up(resource_name, resource)
|
25
|
+
respond_with resource, location: after_sign_up_path_for(resource)
|
26
|
+
else
|
27
|
+
set_flash_message! :notice, :"signed_up_but_#{resource.inactive_message}"
|
28
|
+
expire_data_after_sign_in!
|
29
|
+
respond_with resource, location: after_inactive_sign_up_path_for(resource)
|
30
|
+
end
|
31
|
+
else
|
32
|
+
resource.errors.add(:errors, message: t('devise.registrations.recaptcha_error')) unless verify_recaptcha
|
33
|
+
clean_up_passwords resource
|
34
|
+
set_minimum_password_length
|
35
|
+
respond_with resource
|
36
|
+
end
|
21
37
|
end
|
22
38
|
|
23
39
|
protected
|
@@ -34,6 +34,11 @@
|
|
34
34
|
<%= f.password_field :password_confirmation, autocomplete: 'off', class: 'form-control' %>
|
35
35
|
</div>
|
36
36
|
</div>
|
37
|
+
<div class="form-group row">
|
38
|
+
<div class="offset-sm-2 col-sm-4">
|
39
|
+
<%= recaptcha_tags(id: 'registrations_recaptcha') %>
|
40
|
+
</div>
|
41
|
+
</div>
|
37
42
|
<div class="form-group row">
|
38
43
|
<div class="offset-sm-2 col-sm-4">
|
39
44
|
<%= f.submit 'Sign up', class: 'btn btn-primary' %>
|
data/lib/bpluser/engine.rb
CHANGED
data/lib/bpluser/version.rb
CHANGED
@@ -0,0 +1,6 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Recaptcha.configure do |config|
|
4
|
+
config.site_key = ENV.fetch('RECAPTCHA_SITE_KEY') { Rails.application.credentials[:recaptcha_site_key] }
|
5
|
+
config.secret_key = ENV.fetch('RECAPTCHA_SECRET_KEY') { Rails.application.credentials[:recaptcha_secret_key] }
|
6
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bpluser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boston Public Library Repository Services
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: blacklight
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 6.1.7.4
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: recaptcha
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '5.12'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '5.12'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: awesome_print
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -266,6 +280,7 @@ files:
|
|
266
280
|
- lib/generators/bpluser/devise_generator.rb
|
267
281
|
- lib/generators/bpluser/install_generator.rb
|
268
282
|
- lib/generators/bpluser/templates/config/initializers/devise.rb.bak
|
283
|
+
- lib/generators/bpluser/templates/config/initializers/recaptcha.rb
|
269
284
|
- lib/generators/bpluser/templates/config/locales/devise.en.yml
|
270
285
|
- lib/generators/bpluser/templates/config/omniauth-polaris.yml
|
271
286
|
- lib/generators/bpluser/templates/models/user.rb
|
@@ -283,17 +298,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
283
298
|
requirements:
|
284
299
|
- - ">="
|
285
300
|
- !ruby/object:Gem::Version
|
286
|
-
version: 3.
|
301
|
+
version: '3.1'
|
287
302
|
- - "<"
|
288
303
|
- !ruby/object:Gem::Version
|
289
|
-
version: '3.
|
304
|
+
version: '3.2'
|
290
305
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
291
306
|
requirements:
|
292
307
|
- - ">="
|
293
308
|
- !ruby/object:Gem::Version
|
294
309
|
version: '0'
|
295
310
|
requirements: []
|
296
|
-
rubygems_version: 3.
|
311
|
+
rubygems_version: 3.3.27
|
297
312
|
signing_key:
|
298
313
|
specification_version: 4
|
299
314
|
summary: Shared user access gem for public front ends
|