solidus_devise_token_auth 2.8.0.alpha.3
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 +7 -0
- data/README.md +297 -0
- data/lib/sandbox.sh +55 -0
- data/lib/solidus.rb +7 -0
- data/lib/spree.rb +3 -0
- metadata +119 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5110a63ef96e833e7b8e35a08a57b41566fbaab69570d4e2bffaf0c3c9150004
|
4
|
+
data.tar.gz: 05a1c8ba3e9ce720aead71fbf4837761c9eab748361061d372e1a3c47f41982a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 31e75b5a469dd5eddbea8921a13e714c9ce38d52302f56e6b73bef6773e77c62e2010c80856192cc483c320cdb6b1e9bc5c229c6bbe669a7ea16826cb9ae0222
|
7
|
+
data.tar.gz: c56765a91b0a316dc0f9c1f452148136caefd608680e27f61aae2490ed08647e9dfc98dca532da4da3c6a4f0f35c2d5daa62694f5cf4f0194074fccb1d62c9ce
|
data/README.md
ADDED
@@ -0,0 +1,297 @@
|
|
1
|
+
|
2
|
+
<img src="./logo.svg" width=350>
|
3
|
+
|
4
|
+
- [solidus.io](http://solidus.io/)
|
5
|
+
- [Documentation](https://guides.solidus.io)
|
6
|
+
- [Join our Slack](http://slack.solidus.io/) ([solidusio.slack.com](http://solidusio.slack.com))
|
7
|
+
- [solidus-security](https://groups.google.com/forum/#!forum/solidus-security) mailing list
|
8
|
+
|
9
|
+
## devise_token_auth fork summary
|
10
|
+
|
11
|
+
Background story tl;dr: I wanted to use `solidus_api` along with provided admin panel (`solidus_backend`), but the default api authentication mechanism
|
12
|
+
did not satisfy my security and usage needs at all. At first, I only wanted to fork the `solidus_api` gem and integrate it with [devise_token_auth](https://github.com/lynndylanhurley/devise_token_auth),
|
13
|
+
but it turned out that the whole solidus project heavily relies on this default `spree_api_key` thing - so here it is, a `solidus` fork, extensively revised to be fully compliant with `devise_token_auth`,
|
14
|
+
replacing the `spree_api_key` mechanism also in stuff like `solidus_backend`. The test suite is fully passing; I have also upgraded it a little to test stuff (like authentication) that it used to just stub previously.
|
15
|
+
|
16
|
+
There are so many changes that it can't simply be merged to the upstream repository - people use that `spree_api_key` in their own integrations, so this fork is usable mostly when you're starting from scratch
|
17
|
+
and want to use solidus with devise_token_auth or you want to use the solidus_api for the first time, or if you want to refactor your existing `solidus_api` app to become more secure.
|
18
|
+
|
19
|
+
As of 24.10.2018 the upstream repository is merged, but if you need some latest solidus features and nobody updates this repo from the upstream, feel free to do it yourself - it shouldn't take much more
|
20
|
+
than just resolving some git conflicts, bumping the version and submitting a pull request here.
|
21
|
+
|
22
|
+
## So how do I use this with `devise_token_auth`?
|
23
|
+
|
24
|
+
To add solidus_devise_token_auth, begin with a Rails 5 application and a database configured and created. Add the following to your Gemfile:
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
gem 'solidus_devise_token_auth'
|
28
|
+
gem 'solidus_auth_devise'
|
29
|
+
```
|
30
|
+
|
31
|
+
Then basically just follow the original solidus guides, watching out for api authentication (described [here](https://github.com/skycocker/solidus/blob/master/guides/source/developers/api/overview.html.md)).
|
32
|
+
|
33
|
+
## How do I use just specific components?
|
34
|
+
|
35
|
+
Every piece is rebuilt and available on rubygems:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
gem 'solidus_api_devise_token_auth'
|
39
|
+
gem 'solidus_frontend_devise_token_auth'
|
40
|
+
gem 'solidus_backend_devise_token_auth'
|
41
|
+
gem 'solidus_core_devise_token_auth'
|
42
|
+
gem 'solidus_sample_devise_token_auth'
|
43
|
+
```
|
44
|
+
|
45
|
+
|
46
|
+
## Solidus summary
|
47
|
+
|
48
|
+
Solidus is a complete open source ecommerce solution built with Ruby on Rails.
|
49
|
+
It is a fork of [Spree](https://spreecommerce.org).
|
50
|
+
|
51
|
+
See the [Solidus class documentation](http://docs.solidus.io) and the [Solidus
|
52
|
+
Guides](https://guides.solidus.io) for information about the functionality that
|
53
|
+
Solidus provides.
|
54
|
+
|
55
|
+
Solidus consists of several gems. When you require the `solidus` gem in your
|
56
|
+
`Gemfile`, Bundler will install all of the gems maintained in this repository:
|
57
|
+
|
58
|
+
- [`solidus_api`](https://github.com/solidusio/solidus/tree/master/api) (RESTful API)
|
59
|
+
- [`solidus_frontend`](https://github.com/solidusio/solidus/tree/master/frontend) (Cart and storefront)
|
60
|
+
- [`solidus_backend`](https://github.com/solidusio/solidus/tree/master/backend) (Admin area)
|
61
|
+
- [`solidus_core`](https://github.com/solidusio/solidus/tree/master/core) (Essential models, mailers, and classes)
|
62
|
+
- [`solidus_sample`](https://github.com/solidusio/solidus/tree/master/sample) (Sample data)
|
63
|
+
|
64
|
+
All of the gems are designed to work together to provide a fully functional
|
65
|
+
ecommerce platform. However, you may only want to use the
|
66
|
+
[`solidus_core`](https://github.com/solidusio/solidus/tree/master/core) gem
|
67
|
+
combine it with your own custom frontend, admin interface, and API.
|
68
|
+
|
69
|
+
[](https://circleci.com/gh/solidusio/solidus/tree/master)
|
70
|
+
[](https://rubygems.org/gems/solidus)
|
71
|
+
[](LICENSE.md)
|
72
|
+
[](http://slack.solidus.io)
|
73
|
+
|
74
|
+
## Demo
|
75
|
+
|
76
|
+
Try out Solidus with one-click on Heroku:
|
77
|
+
|
78
|
+
[](https://heroku.com/deploy?template=https://github.com/solidusio/solidus)
|
79
|
+
|
80
|
+
## Getting started
|
81
|
+
|
82
|
+
Begin by making sure you have
|
83
|
+
[Imagemagick](http://imagemagick.org/script/download.php) installed, which is
|
84
|
+
required for Paperclip. (You can install it using [Homebrew](https://brew.sh) if
|
85
|
+
you're on a Mac.)
|
86
|
+
|
87
|
+
To add solidus, begin with a Rails 5 application and a database configured and
|
88
|
+
created. Add the following to your Gemfile.
|
89
|
+
|
90
|
+
```ruby
|
91
|
+
gem 'solidus'
|
92
|
+
gem 'solidus_auth_devise'
|
93
|
+
```
|
94
|
+
|
95
|
+
Run the `bundle` command to install.
|
96
|
+
|
97
|
+
After installing gems, you'll have to run the generators to create necessary
|
98
|
+
configuration files and migrations.
|
99
|
+
|
100
|
+
```bash
|
101
|
+
bundle exec rails g spree:install
|
102
|
+
bundle exec rails g solidus:auth:install
|
103
|
+
bundle exec rake railties:install:migrations
|
104
|
+
```
|
105
|
+
|
106
|
+
Run migrations to create the new models in the database.
|
107
|
+
|
108
|
+
```bash
|
109
|
+
bundle exec rake db:migrate
|
110
|
+
```
|
111
|
+
|
112
|
+
Finally start the rails server
|
113
|
+
|
114
|
+
```bash
|
115
|
+
bundle exec rails s
|
116
|
+
```
|
117
|
+
|
118
|
+
The [`solidus_frontend`](https://github.com/solidusio/solidus/tree/master/frontend) storefront will be accessible at [http://localhost:3000/](http://localhost:3000/)
|
119
|
+
and the admin can be found at [http://localhost:3000/admin/](http://localhost:3000/admin/).
|
120
|
+
|
121
|
+
### Default Username/Password
|
122
|
+
|
123
|
+
As part of running the above installation steps, you will be asked to set an admin email/password combination. The default values are `admin@example.com` and `test123`, respectively.
|
124
|
+
|
125
|
+
### Questions?
|
126
|
+
|
127
|
+
The best way to ask questions is via the [#support channel on the Solidus Slack](https://solidusio.slack.com/messages/support/details/).
|
128
|
+
|
129
|
+
Installation options
|
130
|
+
--------------------
|
131
|
+
|
132
|
+
Instead of a stable build, if you want to use the bleeding edge version of
|
133
|
+
Solidus, use this line:
|
134
|
+
|
135
|
+
```ruby
|
136
|
+
gem 'solidus', github: 'solidusio/solidus'
|
137
|
+
```
|
138
|
+
|
139
|
+
**Note: The master branch is not guaranteed to ever be in a fully functioning
|
140
|
+
state. It is unwise to use this branch in a production system you care deeply
|
141
|
+
about.**
|
142
|
+
|
143
|
+
By default, the installation generator (`rails g spree:install`) will run
|
144
|
+
migrations as well as adding seed and sample data. This can be disabled using
|
145
|
+
|
146
|
+
```bash
|
147
|
+
rails g spree:install --migrate=false --sample=false --seed=false
|
148
|
+
```
|
149
|
+
|
150
|
+
You can always perform any of these steps later by using these commands.
|
151
|
+
|
152
|
+
```bash
|
153
|
+
bundle exec rake railties:install:migrations
|
154
|
+
bundle exec rake db:migrate
|
155
|
+
bundle exec rake db:seed
|
156
|
+
bundle exec rake spree_sample:load
|
157
|
+
```
|
158
|
+
|
159
|
+
There are also options and rake tasks provided by
|
160
|
+
[solidus\_auth\_devise](https://github.com/solidusio/solidus_auth_devise).
|
161
|
+
|
162
|
+
Performance
|
163
|
+
-----------
|
164
|
+
|
165
|
+
You may notice that your Solidus store runs slowly in development mode. This
|
166
|
+
can be because in development each CSS and JavaScript is loaded as a separate
|
167
|
+
include. This can be disabled by adding the following to
|
168
|
+
`config/environments/development.rb`.
|
169
|
+
|
170
|
+
```ruby
|
171
|
+
config.assets.debug = false
|
172
|
+
```
|
173
|
+
|
174
|
+
### Turbolinks
|
175
|
+
|
176
|
+
To gain some extra speed you may enable Turbolinks inside of Solidus admin.
|
177
|
+
|
178
|
+
Add `gem 'turbolinks', '~> 5.0.0'` into your `Gemfile` (if not already present) and append these lines to `vendor/assets/spree/backend/all.js`:
|
179
|
+
|
180
|
+
```js
|
181
|
+
//= require turbolinks
|
182
|
+
//= require backend/app/assets/javascripts/spree/backend/turbolinks-integration.js
|
183
|
+
```
|
184
|
+
|
185
|
+
**CAUTION** Please be aware that Turbolinks can break extensions and/or customizations to the Solidus admin.
|
186
|
+
Use at own risk.
|
187
|
+
|
188
|
+
Developing Solidus
|
189
|
+
------------------
|
190
|
+
|
191
|
+
* Clone the Git repo
|
192
|
+
|
193
|
+
```bash
|
194
|
+
git clone git://github.com/solidusio/solidus.git
|
195
|
+
cd solidus
|
196
|
+
```
|
197
|
+
|
198
|
+
* Install the gem dependencies
|
199
|
+
|
200
|
+
```bash
|
201
|
+
bundle install
|
202
|
+
```
|
203
|
+
|
204
|
+
### Sandbox
|
205
|
+
|
206
|
+
Solidus is meant to be run within the context of Rails application. You can
|
207
|
+
easily create a sandbox application inside of your cloned source directory for
|
208
|
+
testing purposes.
|
209
|
+
|
210
|
+
This sandbox includes solidus\_auth\_devise and generates with seed and sample
|
211
|
+
data already loaded.
|
212
|
+
|
213
|
+
* Create the sandbox application (`DB=mysql` or `DB=postgresql` can be specified
|
214
|
+
to override the default sqlite)
|
215
|
+
|
216
|
+
```bash
|
217
|
+
bundle exec rake sandbox
|
218
|
+
```
|
219
|
+
|
220
|
+
* Start the server
|
221
|
+
|
222
|
+
```bash
|
223
|
+
cd sandbox
|
224
|
+
rails server
|
225
|
+
```
|
226
|
+
|
227
|
+
### Tests
|
228
|
+
|
229
|
+
Solidus uses [RSpec](http://rspec.info) for tests. Refer to its documentation for
|
230
|
+
more information about the testing library.
|
231
|
+
|
232
|
+
#### CircleCI
|
233
|
+
|
234
|
+
We use CircleCI to run the tests for Solidus as well as all incoming pull
|
235
|
+
requests. All pull requests must pass to be merged.
|
236
|
+
|
237
|
+
You can see the build statuses at
|
238
|
+
[https://circleci.com/gh/solidusio/solidus](https://circleci.com/gh/solidusio/solidus).
|
239
|
+
|
240
|
+
#### Run all tests
|
241
|
+
|
242
|
+
[ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/home) is
|
243
|
+
required to run the frontend and backend test suites.
|
244
|
+
|
245
|
+
To execute all of the test specs, run the `build.sh` script at the root of the Solidus project:
|
246
|
+
|
247
|
+
```bash
|
248
|
+
bash build.sh
|
249
|
+
```
|
250
|
+
|
251
|
+
The `build.sh` script runs using PostgreSQL by default, but it can be overridden by setting the DB environment variable to `DB=sqlite` or `DB=mysql`. For example:
|
252
|
+
|
253
|
+
```bash
|
254
|
+
DB=mysql bash build.sh
|
255
|
+
```
|
256
|
+
|
257
|
+
#### Run an individual test suite
|
258
|
+
|
259
|
+
Each gem contains its own series of tests. To run the tests for the core project:
|
260
|
+
|
261
|
+
```bash
|
262
|
+
cd core
|
263
|
+
bundle exec rspec
|
264
|
+
```
|
265
|
+
|
266
|
+
By default, `rspec` runs the tests for SQLite 3. If you would like to run specs
|
267
|
+
against another database you may specify the database in the command:
|
268
|
+
|
269
|
+
```bash
|
270
|
+
DB=postgresql bundle exec rspec
|
271
|
+
```
|
272
|
+
|
273
|
+
#### Code coverage reports
|
274
|
+
|
275
|
+
If you want to run the [SimpleCov](https://github.com/colszowka/simplecov) code
|
276
|
+
coverage report:
|
277
|
+
|
278
|
+
```bash
|
279
|
+
COVERAGE=true bundle exec rspec
|
280
|
+
```
|
281
|
+
|
282
|
+
### Extensions
|
283
|
+
|
284
|
+
In addition to core functionality provided in Solidus, there are a number of
|
285
|
+
ways to add features to your store that are not (or not yet) part of the core
|
286
|
+
project.
|
287
|
+
|
288
|
+
A list can be found at [extensions.solidus.io](http://extensions.solidus.io/).
|
289
|
+
|
290
|
+
If you want to write an extension for Solidus, you can use the
|
291
|
+
[solidus_cmd](https://www.github.com/solidusio/solidus_cmd.git) gem.
|
292
|
+
|
293
|
+
Contributing
|
294
|
+
------------
|
295
|
+
|
296
|
+
Solidus is an open source project and we encourage contributions. Please read
|
297
|
+
[CONTRIBUTING.md](CONTRIBUTING.md) before contributing.
|
data/lib/sandbox.sh
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
# Used in the sandbox rake task in Rakefile
|
3
|
+
|
4
|
+
set -e
|
5
|
+
|
6
|
+
case "$DB" in
|
7
|
+
postgres|postgresql)
|
8
|
+
RAILSDB="postgresql"
|
9
|
+
;;
|
10
|
+
mysql)
|
11
|
+
RAILSDB="mysql"
|
12
|
+
;;
|
13
|
+
sqlite|'')
|
14
|
+
RAILSDB="sqlite3"
|
15
|
+
;;
|
16
|
+
*)
|
17
|
+
echo "Invalid DB specified: $DB"
|
18
|
+
exit 1
|
19
|
+
;;
|
20
|
+
esac
|
21
|
+
|
22
|
+
rm -rf ./sandbox
|
23
|
+
bundle exec rails new sandbox --database="$RAILSDB" \
|
24
|
+
--skip-bundle \
|
25
|
+
--skip-git \
|
26
|
+
--skip-keeps \
|
27
|
+
--skip-rc \
|
28
|
+
--skip-spring \
|
29
|
+
--skip-test \
|
30
|
+
--skip-yarn
|
31
|
+
|
32
|
+
if [ ! -d "sandbox" ]; then
|
33
|
+
echo 'sandbox rails application failed'
|
34
|
+
exit 1
|
35
|
+
fi
|
36
|
+
|
37
|
+
cd ./sandbox
|
38
|
+
cat <<RUBY >> Gemfile
|
39
|
+
|
40
|
+
gem 'solidus', path: '..'
|
41
|
+
gem 'solidus_auth_devise', '>= 2.1.0'
|
42
|
+
gem 'rails-i18n'
|
43
|
+
gem 'solidus_i18n'
|
44
|
+
|
45
|
+
group :test, :development do
|
46
|
+
platforms :mri do
|
47
|
+
gem 'pry-byebug'
|
48
|
+
end
|
49
|
+
end
|
50
|
+
RUBY
|
51
|
+
|
52
|
+
bundle install --gemfile Gemfile
|
53
|
+
bundle exec rake db:drop db:create
|
54
|
+
bundle exec rails g spree:install --auto-accept --user_class=Spree::User --enforce_available_locales=true
|
55
|
+
bundle exec rails g solidus:auth:install
|
data/lib/solidus.rb
ADDED
data/lib/spree.rb
ADDED
metadata
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: solidus_devise_token_auth
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.8.0.alpha.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michał Siwek (skycocker)
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-10-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: solidus_api_devise_token_auth
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.8.0.alpha.3
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.8.0.alpha.3
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: solidus_backend_devise_token_auth
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.8.0.alpha.3
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.8.0.alpha.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: solidus_core_devise_token_auth
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 2.8.0.alpha.3
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 2.8.0.alpha.3
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: solidus_frontend_devise_token_auth
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.8.0.alpha.3
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.8.0.alpha.3
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: solidus_sample_devise_token_auth
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.8.0.alpha.3
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.8.0.alpha.3
|
83
|
+
description: Solidus is an open source e-commerce framework for Ruby on Rails.
|
84
|
+
email: mike21@aol.pl
|
85
|
+
executables: []
|
86
|
+
extensions: []
|
87
|
+
extra_rdoc_files: []
|
88
|
+
files:
|
89
|
+
- README.md
|
90
|
+
- lib/sandbox.sh
|
91
|
+
- lib/solidus.rb
|
92
|
+
- lib/spree.rb
|
93
|
+
homepage: https://github.com/skycocker/solidus
|
94
|
+
licenses:
|
95
|
+
- BSD-3-Clause
|
96
|
+
metadata: {}
|
97
|
+
post_install_message:
|
98
|
+
rdoc_options: []
|
99
|
+
require_paths:
|
100
|
+
- lib
|
101
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: 2.2.2
|
106
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.8.23
|
111
|
+
requirements:
|
112
|
+
- none
|
113
|
+
rubyforge_project:
|
114
|
+
rubygems_version: 2.7.6
|
115
|
+
signing_key:
|
116
|
+
specification_version: 4
|
117
|
+
summary: Full-stack e-commerce framework for Ruby on Rails (devise_token_auth revised
|
118
|
+
version)
|
119
|
+
test_files: []
|