lesli_shield 1.1.3 → 1.1.5
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 +4 -4
- data/app/assets/config/lesli_shield_manifest.js +1 -0
- data/app/assets/stylesheets/lesli_shield/application.tailwind.css +0 -0
- data/app/assets/stylesheets/lesli_shield/confirmations.css +19 -1
- data/app/assets/stylesheets/lesli_shield/devise/oauth.css +32 -0
- data/app/assets/stylesheets/lesli_shield/passwords.css +19 -1
- data/app/assets/stylesheets/lesli_shield/registrations.css +774 -1
- data/app/assets/stylesheets/lesli_shield/sessions.css +32 -1
- data/app/assets/stylesheets/lesli_shield/sessions.tailwind.css +2 -0
- data/app/assets/stylesheets/lesli_shield/users.css +30 -0
- data/app/controllers/users/sessions_controller.rb +1 -1
- data/app/services/lesli_shield/user_registration_service.rb +47 -39
- data/app/views/devise/registrations/new.html.erb +14 -14
- data/app/views/devise/sessions/new.html.erb +42 -33
- data/app/views/devise/shared/_application-devise.html.erb +36 -35
- data/app/views/devise/shared/_demo.html.erb +8 -4
- data/config/locales/translations.en.yml +14 -0
- data/config/locales/translations.es.yml +14 -0
- data/lib/lesli_shield/version.rb +2 -2
- data/readme.md +112 -49
- metadata +3 -4
- data/config/locales/translations.fr.yml +0 -2
- data/config/locales/translations.it.yml +0 -5
- data/config/locales/translations.pt.yml +0 -2
data/readme.md
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<
|
|
3
|
-
|
|
2
|
+
<h1 align="center">
|
|
3
|
+
<img width="100" alt="LesliShield" src="./app/assets/images/lesli_shield/shield-logo.svg" />
|
|
4
|
+
</h1>
|
|
5
|
+
<h3 align="center">Authentication and authorization for the Lesli Framework.</h3>
|
|
4
6
|
</div>
|
|
5
7
|
|
|
6
8
|
<br />
|
|
7
|
-
<hr/>
|
|
8
9
|
|
|
9
10
|
<div align="center">
|
|
10
|
-
<a target="_blank" href="https://github.com/LesliTech/LesliShield/actions">
|
|
11
|
-
<img alt="
|
|
11
|
+
<a target="_blank" href="https://github.com/LesliTech/LesliShield/actions/workflows/lesli-ci-tests.yaml">
|
|
12
|
+
<img alt="LesliShield test status" src="https://img.shields.io/github/actions/workflow/status/LesliTech/LesliShield/lesli-ci-tests.yaml?branch=master&style=for-the-badge&logo=github&label=tests">
|
|
12
13
|
</a>
|
|
13
14
|
<a target="_blank" href="https://rubygems.org/gems/lesli_shield">
|
|
14
15
|
<img alt="Gem Version" src="https://img.shields.io/gem/v/lesli_shield?style=for-the-badge&logo=ruby">
|
|
@@ -16,84 +17,148 @@
|
|
|
16
17
|
<a target="_blank" href="https://codecov.io/github/LesliTech/LesliShield">
|
|
17
18
|
<img alt="Codecov" src="https://img.shields.io/codecov/c/github/LesliTech/LesliShield?style=for-the-badge&logo=codecov">
|
|
18
19
|
</a>
|
|
20
|
+
<a target="_blank" href="https://sonarcloud.io/project/overview?id=LesliTech_LesliShield">
|
|
21
|
+
<img alt="Sonar Quality Gate" src="https://img.shields.io/sonar/quality_gate/LesliTech_LesliShield?server=https%3A%2F%2Fsonarcloud.io&style=for-the-badge&logo=sonarqubecloud&label=Quality">
|
|
22
|
+
</a>
|
|
19
23
|
</div>
|
|
20
24
|
|
|
21
|
-
<hr/>
|
|
22
25
|
<br />
|
|
23
26
|
|
|
24
27
|
<div align="center">
|
|
25
28
|
<img
|
|
26
29
|
style="width:100%;max-width:800px;border-radius:6px;"
|
|
27
|
-
alt="
|
|
30
|
+
alt="LesliShield security administration"
|
|
31
|
+
src="./docs/images/screenshot.png" />
|
|
28
32
|
</div>
|
|
29
33
|
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
<br />
|
|
37
|
+
|
|
38
|
+
## Introduction
|
|
39
|
+
|
|
40
|
+
LesliShield is the official authentication and authorization engine for the [Lesli Framework](https://github.com/LesliTech/Lesli).
|
|
41
|
+
|
|
42
|
+
It centralizes account security, role-based access control, and user onboarding for Lesli applications.
|
|
43
|
+
|
|
30
44
|
<br />
|
|
31
|
-
|
|
45
|
+
|
|
46
|
+
## Features
|
|
47
|
+
|
|
48
|
+
- Authentication and session management
|
|
49
|
+
- Role-based access control
|
|
50
|
+
- Permission and privilege administration
|
|
51
|
+
- Account-scoped security policies
|
|
52
|
+
- User invitations and onboarding
|
|
53
|
+
|
|
32
54
|
<br />
|
|
33
55
|
|
|
34
|
-
|
|
56
|
+
## Try LesliShield
|
|
35
57
|
|
|
36
|
-
|
|
58
|
+
- [Try the online demo](https://demo.lesli.dev/)
|
|
59
|
+
- [Run the Docker demo](https://github.com/LesliTech/lesli-docker-demo)
|
|
37
60
|
|
|
38
|
-
|
|
61
|
+
<br />
|
|
62
|
+
|
|
63
|
+
## Quick Start
|
|
64
|
+
|
|
65
|
+
### Requirements
|
|
66
|
+
|
|
67
|
+
- A Rails application with [Lesli](https://rubygems.org/gems/lesli)
|
|
68
|
+
- SQLite by default, or PostgreSQL when preferred by the host application
|
|
69
|
+
|
|
70
|
+
### Install LesliShield
|
|
71
|
+
|
|
72
|
+
Add the engine to the host Rails application and prepare its database:
|
|
73
|
+
|
|
74
|
+
```shell
|
|
39
75
|
bundle add lesli_shield
|
|
76
|
+
bin/rails db:prepare
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Mount the engine
|
|
40
80
|
|
|
81
|
+
Applications using Lesli's standard router mount LesliShield automatically at `/shield`:
|
|
41
82
|
|
|
42
|
-
|
|
43
|
-
|
|
83
|
+
```ruby
|
|
84
|
+
# config/routes.rb
|
|
85
|
+
Rails.application.routes.draw do
|
|
86
|
+
Lesli::Router.mount(self)
|
|
87
|
+
end
|
|
88
|
+
```
|
|
44
89
|
|
|
90
|
+
If the application does not use the standard Lesli router, mount the engine directly:
|
|
45
91
|
|
|
46
|
-
|
|
92
|
+
```ruby
|
|
93
|
+
# config/routes.rb
|
|
47
94
|
Rails.application.routes.draw do
|
|
48
95
|
mount LesliShield::Engine => "/shield"
|
|
49
96
|
end
|
|
50
97
|
```
|
|
51
98
|
|
|
52
|
-
|
|
53
|
-
|
|
99
|
+
Start Rails and visit [http://127.0.0.1:3000/shield](http://127.0.0.1:3000/shield):
|
|
100
|
+
|
|
101
|
+
```shell
|
|
102
|
+
bin/rails server
|
|
103
|
+
```
|
|
104
|
+
|
|
54
105
|
<br />
|
|
55
106
|
|
|
56
|
-
|
|
107
|
+
## Development
|
|
108
|
+
|
|
109
|
+
Clone LesliShield into the host application's `engines` directory:
|
|
110
|
+
|
|
111
|
+
```shell
|
|
112
|
+
cd RailsApp
|
|
113
|
+
mkdir -p engines
|
|
114
|
+
git clone https://github.com/LesliTech/LesliShield.git engines/LesliShield
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Reference the local engine from the host application's `Gemfile`:
|
|
57
118
|
|
|
58
119
|
```ruby
|
|
59
|
-
|
|
60
|
-
|
|
120
|
+
gem "lesli_shield", path: "engines/LesliShield"
|
|
121
|
+
```
|
|
61
122
|
|
|
62
|
-
|
|
63
|
-
gem "lesli", path: "engines/LesliShield"
|
|
123
|
+
Install dependencies, prepare the host database, and start Rails:
|
|
64
124
|
|
|
65
|
-
|
|
125
|
+
```shell
|
|
66
126
|
bundle install
|
|
127
|
+
bin/rails db:prepare
|
|
128
|
+
bin/rails server
|
|
129
|
+
```
|
|
67
130
|
|
|
68
|
-
|
|
69
|
-
rake lesli:db:setup
|
|
131
|
+
### Tests
|
|
70
132
|
|
|
133
|
+
From a complete Lesli development workspace, run the engine test suite from the LesliShield directory:
|
|
134
|
+
|
|
135
|
+
```shell
|
|
136
|
+
cd engines/LesliShield
|
|
137
|
+
bin/rails test
|
|
71
138
|
```
|
|
72
139
|
|
|
73
140
|
<br />
|
|
74
|
-
<hr />
|
|
75
|
-
<br />
|
|
76
|
-
|
|
77
|
-
### Demo
|
|
78
141
|
|
|
79
|
-
|
|
80
|
-
* [docker demo](https://github.com/LesliTech/lesli-docker-demo)
|
|
142
|
+
## Documentation
|
|
81
143
|
|
|
144
|
+
- [Lesli website](https://www.lesli.dev/)
|
|
145
|
+
- [Documentation](https://www.lesli.dev/engines/shield)
|
|
146
|
+
- [Release notes](https://github.com/LesliTech/LesliShield/releases)
|
|
147
|
+
- [Issue tracker](https://github.com/LesliTech/LesliShield/issues)
|
|
148
|
+
- [Source code](https://github.com/LesliTech/LesliShield)
|
|
82
149
|
|
|
83
|
-
|
|
84
|
-
* [website](https://www.lesli.dev/)
|
|
85
|
-
* [documentation](https://www.lesli.dev/engines/shield)
|
|
150
|
+
<br />
|
|
86
151
|
|
|
152
|
+
## Community
|
|
87
153
|
|
|
88
|
-
|
|
154
|
+
- [X: @LesliTech](https://x.com/LesliTech)
|
|
155
|
+
- [hello@lesli.tech](mailto:hello@lesli.tech)
|
|
156
|
+
- [https://www.lesli.tech](https://www.lesli.tech)
|
|
89
157
|
|
|
90
|
-
|
|
91
|
-
* [hello@lesli.tech](hello@lesli.tech)
|
|
92
|
-
* [https://www.lesli.tech](https://www.lesli.tech)
|
|
158
|
+
<br />
|
|
93
159
|
|
|
160
|
+
## License
|
|
94
161
|
|
|
95
|
-
### License
|
|
96
|
-
-------
|
|
97
162
|
Copyright (c) 2026, Lesli Technologies, S. A.
|
|
98
163
|
|
|
99
164
|
This program is free software: you can redistribute it and/or modify
|
|
@@ -107,18 +172,16 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
107
172
|
GNU General Public License for more details.
|
|
108
173
|
|
|
109
174
|
You should have received a copy of the GNU General Public License
|
|
110
|
-
along with this program. If not, see
|
|
175
|
+
along with this program. If not, see [https://www.gnu.org/licenses/](https://www.gnu.org/licenses/).
|
|
111
176
|
|
|
112
|
-
|
|
113
|
-
<br />
|
|
114
|
-
<br />
|
|
177
|
+
The complete license text is available in the [license file](./license).
|
|
115
178
|
|
|
116
|
-
|
|
117
|
-
<img width="200" alt="Lesli logo" src="https://cdn.lesli.tech/lesli/brand/app-logo.svg" />
|
|
118
|
-
<h3 align="center" class="mt-0">
|
|
119
|
-
The Open-Source SaaS Development Framework for Ruby on Rails.
|
|
120
|
-
</h3>
|
|
121
|
-
</div>
|
|
179
|
+
---
|
|
122
180
|
|
|
123
181
|
<br />
|
|
124
182
|
<br />
|
|
183
|
+
|
|
184
|
+
<div align="center">
|
|
185
|
+
<img width="80" alt="Lesli icon" src="https://cdn.lesli.tech/lesli/brand/app-icon.svg" />
|
|
186
|
+
<h3 align="center">The Open-Source SaaS Development Framework for Ruby on Rails.</h3>
|
|
187
|
+
</div>
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lesli_shield
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- The Lesli Development Team
|
|
@@ -43,11 +43,13 @@ files:
|
|
|
43
43
|
- app/assets/javascripts/lesli_shield/registrations.js
|
|
44
44
|
- app/assets/javascripts/lesli_shield/sessions.js
|
|
45
45
|
- app/assets/stylesheets/lesli_shield/application.css
|
|
46
|
+
- app/assets/stylesheets/lesli_shield/application.tailwind.css
|
|
46
47
|
- app/assets/stylesheets/lesli_shield/confirmations.css
|
|
47
48
|
- app/assets/stylesheets/lesli_shield/devise/oauth.css
|
|
48
49
|
- app/assets/stylesheets/lesli_shield/passwords.css
|
|
49
50
|
- app/assets/stylesheets/lesli_shield/registrations.css
|
|
50
51
|
- app/assets/stylesheets/lesli_shield/sessions.css
|
|
52
|
+
- app/assets/stylesheets/lesli_shield/sessions.tailwind.css
|
|
51
53
|
- app/assets/stylesheets/lesli_shield/users.css
|
|
52
54
|
- app/controllers/lesli_shield/application_controller.rb
|
|
53
55
|
- app/controllers/lesli_shield/dashboards_controller.rb
|
|
@@ -163,9 +165,6 @@ files:
|
|
|
163
165
|
- config/initializers/devise.rb
|
|
164
166
|
- config/locales/translations.en.yml
|
|
165
167
|
- config/locales/translations.es.yml
|
|
166
|
-
- config/locales/translations.fr.yml
|
|
167
|
-
- config/locales/translations.it.yml
|
|
168
|
-
- config/locales/translations.pt.yml
|
|
169
168
|
- config/routes.rb
|
|
170
169
|
- db/migrate/v1/0801000110_create_lesli_shield_accounts.rb
|
|
171
170
|
- db/migrate/v1/0801100210_create_lesli_shield_role_actions.rb
|