lesli 5.1.4 → 5.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/stylesheets/lesli/application.css +192 -1
- data/app/helpers/lesli/system_helper.rb +1 -1
- data/app/views/lesli/abouts/welcome.html.erb +7 -7
- data/app/views/lesli/layouts/application-public.html.erb +5 -1
- data/app/views/lesli/partials/_application-lesli-head.html.erb +15 -6
- data/config/initializers/lesli.rb +29 -26
- data/db/migrate/v1/0000000210_create_lesli_users.rb +22 -13
- data/db/migrate/v1/0000000310_create_lesli_roles.rb +1 -1
- data/lib/lesli/configuration.rb +13 -1
- data/lib/lesli/engine.rb +0 -3
- data/lib/lesli/version.rb +2 -2
- data/lib/tasks/lesli/db.rake +15 -15
- metadata +1 -4
- data/config/locales/translations.fr.yml +0 -2
- data/config/locales/translations.it.yml +0 -8
- data/config/locales/translations.pt.yml +0 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bd600233e472fba7d3b651847b258f0c23b24d3209825a4b74af2234c86af7fa
|
|
4
|
+
data.tar.gz: 94fcf1d7a7886c29f6332e00b0923591b652ab528d91e9f29eb6153b9a924f94
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 90e2dde65d2a105836d3792d1b52f0fd94722e36fdbad3fe9c8c44b910367ae82821aff1318df07711c023e93c3dcd169d108c8fa5a7f73171b49578d6fe5dc9
|
|
7
|
+
data.tar.gz: f10fa64f5d974f26a5c69f9317a3ebd50f4c7ab1cecff199a74a7f8c270f551145112deeb91c0087f2a035858a7242d2af3fdf72f96e9c1eab7a02b38dd8d143
|
|
@@ -1 +1,192 @@
|
|
|
1
|
-
|
|
1
|
+
@charset "UTF-8";
|
|
2
|
+
/*
|
|
3
|
+
Lesli
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2025, Lesli Technologies, S. A.
|
|
6
|
+
|
|
7
|
+
This program is free software: you can redistribute it and/or modify
|
|
8
|
+
it under the terms of the GNU General Public License as published by
|
|
9
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
10
|
+
(at your option) any later version.
|
|
11
|
+
|
|
12
|
+
This program is distributed in the hope that it will be useful,
|
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15
|
+
GNU General Public License for more details.
|
|
16
|
+
|
|
17
|
+
You should have received a copy of the GNU General Public License
|
|
18
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
|
19
|
+
|
|
20
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
|
21
|
+
|
|
22
|
+
Made with ♥ by LesliTech
|
|
23
|
+
Building a better future, one line of code at a time.
|
|
24
|
+
|
|
25
|
+
@contact hello@lesli.tech
|
|
26
|
+
@website https://www.lesli.tech
|
|
27
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
|
28
|
+
|
|
29
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
|
30
|
+
// ·
|
|
31
|
+
*/
|
|
32
|
+
/*
|
|
33
|
+
Lesli
|
|
34
|
+
|
|
35
|
+
Copyright (c) 2025, Lesli Technologies, S. A.
|
|
36
|
+
|
|
37
|
+
This program is free software: you can redistribute it and/or modify
|
|
38
|
+
it under the terms of the GNU General Public License as published by
|
|
39
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
40
|
+
(at your option) any later version.
|
|
41
|
+
|
|
42
|
+
This program is distributed in the hope that it will be useful,
|
|
43
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
44
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
45
|
+
GNU General Public License for more details.
|
|
46
|
+
|
|
47
|
+
You should have received a copy of the GNU General Public License
|
|
48
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
|
49
|
+
|
|
50
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
|
51
|
+
|
|
52
|
+
Made with ♥ by LesliTech
|
|
53
|
+
Building a better future, one line of code at a time.
|
|
54
|
+
|
|
55
|
+
@contact hello@lesli.tech
|
|
56
|
+
@website https://www.lesli.tech
|
|
57
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
|
58
|
+
|
|
59
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
|
60
|
+
// ·
|
|
61
|
+
*/
|
|
62
|
+
/**
|
|
63
|
+
Lesli
|
|
64
|
+
|
|
65
|
+
Copyright (c) 2025, Lesli Technologies, S. A.
|
|
66
|
+
|
|
67
|
+
This program is free software: you can redistribute it and/or modify
|
|
68
|
+
it under the terms of the GNU General Public License as published by
|
|
69
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
70
|
+
(at your option) any later version.
|
|
71
|
+
|
|
72
|
+
This program is distributed in the hope that it will be useful,
|
|
73
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
74
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
75
|
+
GNU General Public License for more details.
|
|
76
|
+
|
|
77
|
+
You should have received a copy of the GNU General Public License
|
|
78
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
|
79
|
+
|
|
80
|
+
Lesli - SCSS Utilities for websites, apps and web applications
|
|
81
|
+
|
|
82
|
+
Made with ♥ by LesliTech
|
|
83
|
+
Building a better future, one line of code at a time.
|
|
84
|
+
|
|
85
|
+
@contact hello@lesli.tech
|
|
86
|
+
@website https://www.lesli.tech
|
|
87
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
|
88
|
+
|
|
89
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
|
90
|
+
// ·
|
|
91
|
+
*/
|
|
92
|
+
/*
|
|
93
|
+
Lesli
|
|
94
|
+
|
|
95
|
+
Copyright (c) 2025, Lesli Technologies, S. A.
|
|
96
|
+
|
|
97
|
+
This program is free software: you can redistribute it and/or modify
|
|
98
|
+
it under the terms of the GNU General Public License as published by
|
|
99
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
100
|
+
(at your option) any later version.
|
|
101
|
+
|
|
102
|
+
This program is distributed in the hope that it will be useful,
|
|
103
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
104
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
105
|
+
GNU General Public License for more details.
|
|
106
|
+
|
|
107
|
+
You should have received a copy of the GNU General Public License
|
|
108
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
|
109
|
+
|
|
110
|
+
Lesli - SCSS Utilities for websites, apps and web applications
|
|
111
|
+
|
|
112
|
+
Made with ♥ by LesliTech
|
|
113
|
+
Building a better future, one line of code at a time.
|
|
114
|
+
|
|
115
|
+
@contact hello@lesli.tech
|
|
116
|
+
@website https://www.lesli.tech
|
|
117
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
|
118
|
+
|
|
119
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
|
120
|
+
// ·
|
|
121
|
+
*/
|
|
122
|
+
/**
|
|
123
|
+
Lesli
|
|
124
|
+
|
|
125
|
+
Copyright (c) 2025, Lesli Technologies, S. A.
|
|
126
|
+
|
|
127
|
+
This program is free software: you can redistribute it and/or modify
|
|
128
|
+
it under the terms of the GNU General Public License as published by
|
|
129
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
130
|
+
(at your option) any later version.
|
|
131
|
+
|
|
132
|
+
This program is distributed in the hope that it will be useful,
|
|
133
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
134
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
135
|
+
GNU General Public License for more details.
|
|
136
|
+
|
|
137
|
+
You should have received a copy of the GNU General Public License
|
|
138
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
|
139
|
+
|
|
140
|
+
Lesli - SCSS Utilities for websites, apps and web applications
|
|
141
|
+
|
|
142
|
+
Made with ♥ by LesliTech
|
|
143
|
+
Building a better future, one line of code at a time.
|
|
144
|
+
|
|
145
|
+
@contact hello@lesli.tech
|
|
146
|
+
@website https://www.lesli.tech
|
|
147
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
|
148
|
+
|
|
149
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
|
150
|
+
// ·
|
|
151
|
+
*/
|
|
152
|
+
body.lesli.apps.show .lesli-element-header {
|
|
153
|
+
margin-bottom: 5rem !important;
|
|
154
|
+
}
|
|
155
|
+
body.lesli.apps.show .engines {
|
|
156
|
+
gap: 24px;
|
|
157
|
+
margin-inline-end: auto;
|
|
158
|
+
margin-inline-start: auto;
|
|
159
|
+
}
|
|
160
|
+
body.lesli.apps.show .engines a {
|
|
161
|
+
flex-basis: 318px;
|
|
162
|
+
text-align: center;
|
|
163
|
+
padding: 2rem 0.4rem 2.8rem;
|
|
164
|
+
border: white 1px solid;
|
|
165
|
+
border-radius: 6px;
|
|
166
|
+
background-color: white;
|
|
167
|
+
transition: all ease-in-out 0.2s;
|
|
168
|
+
box-shadow: rgba(9, 30, 66, 0.25) 0px 4px 8px -2px, rgba(9, 30, 66, 0.08) 0px 0px 0px 1px;
|
|
169
|
+
}
|
|
170
|
+
body.lesli.apps.show .engines a:hover {
|
|
171
|
+
border-color: var(--lesli-color-primary);
|
|
172
|
+
transform: translateY(-2px);
|
|
173
|
+
}
|
|
174
|
+
body.lesli.apps.show .engines a.is-active {
|
|
175
|
+
background-color: #F0F4FF;
|
|
176
|
+
border-color: var(--lesli-color-primary);
|
|
177
|
+
}
|
|
178
|
+
body.lesli.apps.show .engines a svg {
|
|
179
|
+
margin-right: 0.4rem;
|
|
180
|
+
fill: var(--lesli-color-primary);
|
|
181
|
+
}
|
|
182
|
+
body.lesli.apps.show .engines a p {
|
|
183
|
+
font-size: 14;
|
|
184
|
+
font-family: "OpenSans";
|
|
185
|
+
}
|
|
186
|
+
body.lesli.apps.show .engines a span {
|
|
187
|
+
font-weight: 600;
|
|
188
|
+
font-size: 20px;
|
|
189
|
+
}
|
|
190
|
+
body.lesli.apps.show .engines a span, body.lesli.apps.show .engines a p {
|
|
191
|
+
color: var(--lesli-color-primary);
|
|
192
|
+
}
|
|
@@ -46,7 +46,7 @@ module Lesli
|
|
|
46
46
|
|
|
47
47
|
# return the name of the language
|
|
48
48
|
def language_name(locale)
|
|
49
|
-
Lesli.config.
|
|
49
|
+
Lesli.config.babel.dig(:locales, locale) || "undefined"
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
# return the engine code of the controller that is handling the http request
|
|
@@ -20,8 +20,8 @@ html, body {
|
|
|
20
20
|
background-color: #ffffff;
|
|
21
21
|
background-position: 0 0,55px 55px;
|
|
22
22
|
background-image:
|
|
23
|
-
radial-gradient(#
|
|
24
|
-
radial-gradient(#
|
|
23
|
+
radial-gradient(#123553 1px, transparent 2px),
|
|
24
|
+
radial-gradient(#123553 1px, #ffffff 2px);
|
|
25
25
|
animation: rotateBackground 10s linear infinite;
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -43,7 +43,7 @@ html, body {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
.page-welcome h1 span {
|
|
46
|
-
background: -webkit-linear-gradient(315deg,#
|
|
46
|
+
background: -webkit-linear-gradient(315deg,#4F83AE 25%,#123553);
|
|
47
47
|
background-clip: border-box;
|
|
48
48
|
background-clip: text;
|
|
49
49
|
-webkit-background-clip: text;
|
|
@@ -54,7 +54,7 @@ html, body {
|
|
|
54
54
|
font-size: 1.4rem;
|
|
55
55
|
font-family: "OpenSans", "Ubuntu", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
|
|
56
56
|
background-color: white;
|
|
57
|
-
color: #
|
|
57
|
+
color: #245F93;
|
|
58
58
|
display: flex;
|
|
59
59
|
align-items: center;
|
|
60
60
|
}
|
|
@@ -80,11 +80,11 @@ html, body {
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
.page-welcome .buttons a.doc {
|
|
83
|
-
background: #
|
|
83
|
+
background: #245F93;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
.page-welcome .buttons a.start {
|
|
87
|
-
background: #
|
|
87
|
+
background: #5F6C7D;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
@media only screen and (max-width: 600px) {
|
|
@@ -110,7 +110,7 @@ html, body {
|
|
|
110
110
|
</style>
|
|
111
111
|
|
|
112
112
|
<section class="page-welcome">
|
|
113
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="#
|
|
113
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="#245F93" data-name="Layer 1" viewBox="0 0 716.56 292.44">
|
|
114
114
|
<path d="M214.181 204.066v40.883H105.328V59.095h42.48v144.97zM294.859 213.088c10.885 0 20.18-4.242 25.49-10.09l31.86 18.324c-13.014 18.051-32.656 27.346-57.916 27.346-45.404 0-73.546-30.535-73.546-70.092s28.756-70.099 70.685-70.099c38.762 0 67.44 30.005 67.44 70.099a77.279 77.279 0 0 1-1.59 15.93h-94.256c5.045 13.802 17.256 18.582 31.833 18.582zm24.422-48.321c-4.243-15.4-16.196-20.975-28.142-20.975-15.134 0-25.224 7.438-28.936 20.975zM476.476 205.126c0 30.528-26.515 43.542-55.222 43.542-26.515 0-46.751-10.09-57.085-31.596l34.519-19.649c3.447 10.09 10.885 15.665 22.566 15.665 9.56 0 14.332-2.917 14.332-8.227 0-14.604-65.312-6.908-65.312-52.836 0-28.943 24.423-43.548 52.04-43.548 21.506 0 40.625 9.56 51.776 28.414L440.1 155.207c-3.72-6.9-9.022-11.68-17.786-11.68-6.901 0-11.165 2.658-11.165 7.43.014 15.136 65.326 5.046 65.326 54.17zM493.725 51.134h39.823v193.815h-39.823zM560.091 112.196h39.83V244.95h-39.83z" class="cls-1"/>
|
|
115
115
|
<circle cx="580.006" cy="69.932" r="25.322" class="cls-1"/>
|
|
116
116
|
</svg>
|
|
@@ -35,7 +35,11 @@ Building a better future, one line of code at a time.
|
|
|
35
35
|
<!DOCTYPE html>
|
|
36
36
|
<html lang="en">
|
|
37
37
|
<head>
|
|
38
|
-
|
|
38
|
+
<% if content_for?(:head) %>
|
|
39
|
+
<%= yield :head %>
|
|
40
|
+
<% else %>
|
|
41
|
+
<%= render(partial: "lesli/partials/application-lesli-head") %>
|
|
42
|
+
<% end %>
|
|
39
43
|
</head>
|
|
40
44
|
<body class="<%= lesli_application_body_class() %>">
|
|
41
45
|
<%= yield %>
|
|
@@ -33,27 +33,36 @@ Building a better future, one line of code at a time.
|
|
|
33
33
|
<%# the charset attribute specifies the character encoding for the HTML document. %>
|
|
34
34
|
<meta charset="utf-8">
|
|
35
35
|
|
|
36
|
+
|
|
36
37
|
<%# this gives the browser instructions on how to control the page's dimensions and scaling. %>
|
|
37
38
|
<meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport">
|
|
38
39
|
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
|
|
39
40
|
|
|
41
|
+
|
|
40
42
|
<%# defines the title of the document. %>
|
|
41
43
|
<title><%= lesli_website_title %></title>
|
|
42
44
|
|
|
45
|
+
|
|
43
46
|
<%# rails standard meta tags %>
|
|
44
47
|
<%= csrf_meta_tags %>
|
|
45
48
|
<%= lesli_favicon %>
|
|
46
49
|
|
|
50
|
+
|
|
51
|
+
<%# enable turbo %>
|
|
52
|
+
<meta name="turbo-prefetch" content="false">
|
|
53
|
+
<meta name="view-transition" content="same-origin" />
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
<%# Load custom head tags %>
|
|
57
|
+
<%= yield :head %>
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
47
62
|
<%# provide a short description of the page %>
|
|
48
63
|
<meta name="description" content="<%#= website_meta_description %>">
|
|
49
64
|
|
|
50
|
-
|
|
51
65
|
<% appstore_app_id = Rails.application.credentials.dig(:providers, :apple, :app_id) %>
|
|
52
66
|
<% if appstore_app_id %>
|
|
53
67
|
<meta name="apple-itunes-app" content="app-id=<%= appstore_app_id %>">
|
|
54
68
|
<% end %>
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
<%# enable turbo %>
|
|
58
|
-
<meta name="turbo-prefetch" content="false">
|
|
59
|
-
<meta name="view-transition" content="same-origin" />
|
|
@@ -49,25 +49,6 @@ Lesli.configure do |config|
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
# List of supported languages (requires `LesliBabel`).
|
|
53
|
-
config.locales = {
|
|
54
|
-
:en => "English", # English
|
|
55
|
-
:de => "Deutsch", # Deutsch/German
|
|
56
|
-
:pl => "Polski", # Polski/Polish/Poland
|
|
57
|
-
:nl => "Dutch", # Dutch/Nederlands/Netherlands
|
|
58
|
-
:es => "Español", # Español/Spanish
|
|
59
|
-
:uk => "украї́нська", # украї́нська/Ukrainian
|
|
60
|
-
:sr => "Српски", # Српски/Srpski/Serbian
|
|
61
|
-
:it => "Italiano", # Italiano/Italian
|
|
62
|
-
:hr => "Hrvatski", # Hrvatski/Croatian
|
|
63
|
-
:fr => "Français", # French
|
|
64
|
-
:pt => "Português", # Portuguese
|
|
65
|
-
:tr => "Türkçe", # Turkish
|
|
66
|
-
:ro => "Română", # Romanian
|
|
67
|
-
:bg => "български" # Bulgarian
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
52
|
# Define time zone, week start day, and custom date/time formats.
|
|
72
53
|
config.datetime = {
|
|
73
54
|
:time_zone => "America/Guatemala",
|
|
@@ -98,7 +79,6 @@ Lesli.configure do |config|
|
|
|
98
79
|
#
|
|
99
80
|
config.layout = {
|
|
100
81
|
tasks: true,
|
|
101
|
-
babel: false,
|
|
102
82
|
profile: true,
|
|
103
83
|
notifications: true
|
|
104
84
|
}
|
|
@@ -116,8 +96,33 @@ Lesli.configure do |config|
|
|
|
116
96
|
allow_registration: true
|
|
117
97
|
}
|
|
118
98
|
|
|
99
|
+
config.babel = {
|
|
100
|
+
locales: {
|
|
101
|
+
:en => "English", # English
|
|
102
|
+
:es => "Español", # Español/Spanish
|
|
103
|
+
# :de => "Deutsch", # Deutsch/German
|
|
104
|
+
# :pl => "Polski", # Polski/Polish/Poland
|
|
105
|
+
# :nl => "Dutch", # Dutch/Nederlands/Netherlands
|
|
106
|
+
# :uk => "украї́нська", # украї́нська/Ukrainian
|
|
107
|
+
# :sr => "Српски", # Српски/Srpski/Serbian
|
|
108
|
+
# :it => "Italiano", # Italiano/Italian
|
|
109
|
+
# :hr => "Hrvatski", # Hrvatski/Croatian
|
|
110
|
+
# :fr => "Français", # French
|
|
111
|
+
# :pt => "Português", # Portuguese
|
|
112
|
+
# :tr => "Türkçe", # Turkish
|
|
113
|
+
# :ro => "Română", # Romanian
|
|
114
|
+
# :bg => "български" # Bulgarian
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
# Shield module configuration
|
|
119
|
+
config.shield = {
|
|
120
|
+
path_after_login: defined?(LesliDashboard) ? "/dashboard" : "/",
|
|
121
|
+
default_role: "guest"
|
|
122
|
+
}
|
|
123
|
+
|
|
119
124
|
|
|
120
|
-
# Audit configuration
|
|
125
|
+
# Audit module configuration
|
|
121
126
|
config.audit = {
|
|
122
127
|
prefix: 'LA',
|
|
123
128
|
enable_logs: true,
|
|
@@ -126,16 +131,14 @@ Lesli.configure do |config|
|
|
|
126
131
|
}
|
|
127
132
|
|
|
128
133
|
|
|
129
|
-
#
|
|
134
|
+
# Mailer module configuration
|
|
130
135
|
config.mailer = {
|
|
131
136
|
templates: "lesli_assets/emails"
|
|
132
137
|
}
|
|
133
138
|
|
|
139
|
+
|
|
140
|
+
# Support module configuration
|
|
134
141
|
config.support = {
|
|
135
142
|
prefix: 'LS'
|
|
136
143
|
}
|
|
137
|
-
|
|
138
|
-
# Control redirection paths after login.
|
|
139
|
-
config.path_after_login = "/"
|
|
140
|
-
config.path_after_login = "/dashboard" if defined?(LesliDashboard)
|
|
141
144
|
end
|
|
@@ -51,14 +51,6 @@ class CreateLesliUsers < ActiveRecord::Migration[7.2]
|
|
|
51
51
|
t.string :email, null: false, default: ""
|
|
52
52
|
t.string :encrypted_password, null: false, default: ""
|
|
53
53
|
|
|
54
|
-
# Recoverable
|
|
55
|
-
t.string :reset_password_token
|
|
56
|
-
t.datetime :reset_password_sent_at
|
|
57
|
-
|
|
58
|
-
# Password and access management
|
|
59
|
-
t.datetime :password_expiration_at
|
|
60
|
-
t.datetime :locked_until
|
|
61
|
-
|
|
62
54
|
# Rememberable
|
|
63
55
|
t.datetime :remember_created_at
|
|
64
56
|
|
|
@@ -69,6 +61,19 @@ class CreateLesliUsers < ActiveRecord::Migration[7.2]
|
|
|
69
61
|
t.string :current_sign_in_ip
|
|
70
62
|
t.string :last_sign_in_ip
|
|
71
63
|
|
|
64
|
+
# Lockable
|
|
65
|
+
t.datetime :locked_at
|
|
66
|
+
t.datetime :locked_until
|
|
67
|
+
t.string :unlock_token # Only if unlock strategy is :email or :both
|
|
68
|
+
|
|
69
|
+
# Recoverable
|
|
70
|
+
t.string :reset_password_token
|
|
71
|
+
t.datetime :reset_password_sent_at
|
|
72
|
+
|
|
73
|
+
# Password and access management
|
|
74
|
+
t.datetime :password_expiration_at
|
|
75
|
+
t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
|
|
76
|
+
|
|
72
77
|
# Confirmable
|
|
73
78
|
t.string :unconfirmed_email # Only if using reconfirmable
|
|
74
79
|
t.string :confirmation_token
|
|
@@ -81,11 +86,6 @@ class CreateLesliUsers < ActiveRecord::Migration[7.2]
|
|
|
81
86
|
t.datetime :telephone_confirmation_sent_at
|
|
82
87
|
t.datetime :telephone_confirmed_at
|
|
83
88
|
|
|
84
|
-
# Lockable
|
|
85
|
-
t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
|
|
86
|
-
t.string :unlock_token # Only if unlock strategy is :email or :both
|
|
87
|
-
t.datetime :locked_at
|
|
88
|
-
|
|
89
89
|
# Acts as paranoid
|
|
90
90
|
t.datetime :deleted_at, index: true
|
|
91
91
|
t.timestamps
|
|
@@ -99,5 +99,14 @@ class CreateLesliUsers < ActiveRecord::Migration[7.2]
|
|
|
99
99
|
add_index(:lesli_users, :unlock_token, unique: true)
|
|
100
100
|
add_index(:lesli_users, :confirmation_token, unique: true)
|
|
101
101
|
add_index(:lesli_users, :reset_password_token, unique: true)
|
|
102
|
+
|
|
103
|
+
add_index :lesli_users, [:account_id, :active]
|
|
104
|
+
add_index :lesli_users, [:account_id, :locked_at]
|
|
105
|
+
add_index :lesli_users, [:account_id, :locked_until]
|
|
106
|
+
add_index :lesli_users, [:account_id, :confirmed_at]
|
|
107
|
+
add_index :lesli_users, [:account_id, :last_sign_in_at]
|
|
108
|
+
add_index :lesli_users, [:account_id, :created_at]
|
|
109
|
+
add_index :lesli_users, [:account_id, :deleted_at]
|
|
110
|
+
|
|
102
111
|
end
|
|
103
112
|
end
|
data/lib/lesli/configuration.rb
CHANGED
|
@@ -32,7 +32,19 @@ Building a better future, one line of code at a time.
|
|
|
32
32
|
|
|
33
33
|
module Lesli
|
|
34
34
|
class Configuration
|
|
35
|
-
attr_accessor :demo
|
|
35
|
+
attr_accessor :demo
|
|
36
|
+
attr_accessor :company
|
|
37
|
+
attr_accessor :instance
|
|
38
|
+
attr_accessor :datetime
|
|
39
|
+
attr_accessor :security
|
|
40
|
+
attr_accessor :theme
|
|
41
|
+
attr_accessor :layout
|
|
42
|
+
|
|
43
|
+
attr_accessor :mailer
|
|
44
|
+
attr_accessor :audit
|
|
45
|
+
attr_accessor :support
|
|
46
|
+
attr_accessor :shield
|
|
47
|
+
attr_accessor :babel
|
|
36
48
|
|
|
37
49
|
def initialize
|
|
38
50
|
@demo = false
|
data/lib/lesli/engine.rb
CHANGED
data/lib/lesli/version.rb
CHANGED
data/lib/tasks/lesli/db.rake
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Lesli
|
|
4
4
|
|
|
5
|
-
Copyright (c)
|
|
5
|
+
Copyright (c) 2026, Lesli Technologies, S. A.
|
|
6
6
|
|
|
7
7
|
This program is free software: you can redistribute it and/or modify
|
|
8
8
|
it under the terms of the GNU General Public License as published by
|
|
@@ -34,41 +34,41 @@ Building a better future, one line of code at a time.
|
|
|
34
34
|
namespace :lesli do
|
|
35
35
|
namespace :db do
|
|
36
36
|
|
|
37
|
-
desc "Drop, create, migrate, seed &
|
|
37
|
+
desc "Drop, create, migrate, seed & setup the Lesli database (development only)"
|
|
38
38
|
task :reset => :environment do |task, args|
|
|
39
39
|
drop()
|
|
40
40
|
create()
|
|
41
41
|
migrate()
|
|
42
42
|
seed()
|
|
43
|
-
|
|
43
|
+
setup()
|
|
44
44
|
status()
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
-
desc "Create, migrate, seed &
|
|
47
|
+
desc "Create, migrate, seed & setup the Lesli database (development only)"
|
|
48
48
|
task :dev => :environment do |task, args|
|
|
49
49
|
create()
|
|
50
50
|
migrate()
|
|
51
51
|
seed()
|
|
52
|
-
|
|
52
|
+
setup()
|
|
53
53
|
status()
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
-
desc "Migrate,
|
|
56
|
+
desc "Migrate, setup && user the Lesli database"
|
|
57
57
|
task :deploy => :environment do |task, args|
|
|
58
58
|
create()
|
|
59
59
|
migrate()
|
|
60
|
-
|
|
60
|
+
setup()
|
|
61
61
|
status()
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
-
desc "Migrate &
|
|
65
|
-
task :
|
|
64
|
+
desc "Migrate & setup the Lesli database"
|
|
65
|
+
task :upgrade => :environment do |task, args|
|
|
66
66
|
migrate()
|
|
67
|
-
|
|
67
|
+
setup()
|
|
68
68
|
status()
|
|
69
69
|
end
|
|
70
70
|
|
|
71
|
-
desc "Seed &
|
|
71
|
+
desc "Seed & setup Lesli database"
|
|
72
72
|
task :seed => :environment do |task, args|
|
|
73
73
|
seed()
|
|
74
74
|
status()
|
|
@@ -107,8 +107,8 @@ namespace :lesli do
|
|
|
107
107
|
def migrate
|
|
108
108
|
|
|
109
109
|
# print a message to let the users show the action running
|
|
110
|
-
Termline.
|
|
111
|
-
|
|
110
|
+
Termline.br
|
|
111
|
+
Termline.info("Apply database migrations")
|
|
112
112
|
Rake::Task['db:migrate'].invoke
|
|
113
113
|
end
|
|
114
114
|
|
|
@@ -129,10 +129,10 @@ namespace :lesli do
|
|
|
129
129
|
Termline.br(2)
|
|
130
130
|
end
|
|
131
131
|
|
|
132
|
-
def
|
|
132
|
+
def setup
|
|
133
133
|
|
|
134
134
|
# print a message to let the users show the action running
|
|
135
|
-
Termline.info("
|
|
135
|
+
Termline.info("Setup the Lesli database")
|
|
136
136
|
|
|
137
137
|
# scan rails routes to build the controllers index
|
|
138
138
|
Rake::Task['lesli:resources:build'].invoke
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lesli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.1.
|
|
4
|
+
version: 5.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- The Lesli Development Team
|
|
@@ -233,9 +233,6 @@ files:
|
|
|
233
233
|
- config/locales/devise.en.yml
|
|
234
234
|
- config/locales/translations.en.yml
|
|
235
235
|
- config/locales/translations.es.yml
|
|
236
|
-
- config/locales/translations.fr.yml
|
|
237
|
-
- config/locales/translations.it.yml
|
|
238
|
-
- config/locales/translations.pt.yml
|
|
239
236
|
- config/routes.rb
|
|
240
237
|
- db/migrate/v1/0000000110_create_lesli_accounts.rb
|
|
241
238
|
- db/migrate/v1/0000000210_create_lesli_users.rb
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
:it:
|
|
3
|
-
lesli:
|
|
4
|
-
shared:
|
|
5
|
-
message_error_not_found: ":lesli.shared.message_error_not_found:"
|
|
6
|
-
message_error_resource_not_found: ":lesli.shared.message_error_resource_not_found:"
|
|
7
|
-
message_error_unauthorized: ":lesli.shared.message_error_unauthorized:"
|
|
8
|
-
message_error_unauthorized_credentials: ":lesli.shared.message_error_unauthorized_credentials:"
|