lesli_shield 1.0.3 → 1.1.0

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.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/lesli_shield/login-background.jpg +0 -0
  3. data/app/assets/images/lesli_shield/register-background.jpg +0 -0
  4. data/app/assets/stylesheets/lesli_shield/confirmations.css +1 -32
  5. data/app/assets/stylesheets/lesli_shield/devise/oauth.css +0 -32
  6. data/app/assets/stylesheets/lesli_shield/passwords.css +1 -18953
  7. data/app/assets/stylesheets/lesli_shield/registrations.css +1 -19040
  8. data/app/assets/stylesheets/lesli_shield/sessions.css +1 -19040
  9. data/app/assets/stylesheets/lesli_shield/users.css +0 -30
  10. data/app/controllers/lesli_shield/dashboards_controller.rb +1 -8
  11. data/app/controllers/lesli_shield/invites_controller.rb +80 -0
  12. data/app/controllers/lesli_shield/role/actions_controller.rb +32 -20
  13. data/app/controllers/lesli_shield/roles_controller.rb +16 -8
  14. data/app/controllers/lesli_shield/sessions_controller.rb +5 -8
  15. data/app/controllers/lesli_shield/user/roles_controller.rb +62 -0
  16. data/app/controllers/lesli_shield/users_controller.rb +57 -20
  17. data/app/controllers/users/confirmations_controller.rb +42 -8
  18. data/app/controllers/users/passwords_controller.rb +52 -37
  19. data/app/controllers/users/registrations_controller.rb +2 -8
  20. data/app/controllers/users/sessions_controller.rb +57 -50
  21. data/app/helpers/lesli_shield/invites_helper.rb +4 -0
  22. data/app/helpers/lesli_shield/user/roles_helper.rb +4 -0
  23. data/app/interfaces/lesli_shield/authorization_interface.rb +8 -2
  24. data/app/mailers/lesli_shield/devise_mailer.rb +98 -0
  25. data/app/mailers/lesli_shield/invitation.html.erb +23 -0
  26. data/app/models/concerns/lesli_shield/user_security.rb +222 -0
  27. data/app/models/lesli_shield/account.rb +1 -1
  28. data/app/models/lesli_shield/dashboard.rb +1 -4
  29. data/app/models/lesli_shield/invite.rb +24 -0
  30. data/app/models/lesli_shield/role/action.rb +40 -0
  31. data/{db/migrate/v1/0801003010_create_lesli_shield_dashboards.rb → app/models/lesli_shield/role/privilege.rb} +5 -4
  32. data/app/models/lesli_shield/user/role.rb +8 -0
  33. data/app/models/lesli_shield/user/session.rb +80 -0
  34. data/{lib/scss/passwords.scss → app/services/lesli_shield/invite_service.rb} +14 -6
  35. data/app/services/lesli_shield/role_action_service.rb +118 -0
  36. data/app/services/lesli_shield/role_privilege_service.rb +112 -0
  37. data/app/{operators/lesli_shield/user_registration_operator.rb → services/lesli_shield/user_registration_service.rb} +26 -29
  38. data/app/services/lesli_shield/user_session_service.rb +78 -0
  39. data/app/services/lesli_shield/user_validator_service.rb +221 -0
  40. data/app/views/devise/confirmations/show.html.erb +4 -6
  41. data/app/views/devise/passwords/edit.html.erb +1 -2
  42. data/app/views/devise/passwords/new.html.erb +1 -1
  43. data/app/views/devise/registrations/new.html.erb +9 -2
  44. data/app/views/devise/sessions/new.html.erb +3 -2
  45. data/{lib/vue/apps/dashboards/components/engine-version.vue → app/views/devise/shared/_application-devise-simple.erb} +32 -44
  46. data/app/views/devise/shared/_application-devise.html.erb +76 -0
  47. data/app/views/lesli_shield/dashboards/_component-calendar.html.erb +1 -0
  48. data/app/views/lesli_shield/dashboards/_component-chart-bar.html.erb +6 -0
  49. data/app/views/lesli_shield/dashboards/_component-chart-line.html.erb +8 -0
  50. data/app/views/lesli_shield/dashboards/_component-count.html.erb +1 -0
  51. data/app/views/lesli_shield/dashboards/_component-date.html.erb +1 -0
  52. data/app/views/lesli_shield/dashboards/_component-weather.html.erb +1 -0
  53. data/app/views/lesli_shield/invites/_form.html.erb +10 -0
  54. data/app/views/lesli_shield/invites/_invite.html.erb +2 -0
  55. data/app/views/lesli_shield/invites/edit.html.erb +12 -0
  56. data/{lib/scss/users.scss → app/views/lesli_shield/invites/index.html.erb} +38 -30
  57. data/{db/migrate/v1/0801001710_create_lesli_shield_settings.rb → app/views/lesli_shield/invites/new.html.erb} +9 -10
  58. data/{lib/scss/confirmations.scss → app/views/lesli_shield/invites/show.html.erb} +25 -29
  59. data/app/views/lesli_shield/partials/_navigation.html.erb +2 -4
  60. data/app/views/lesli_shield/{roles/_form-privileges.html.erb → role/actions/_form.html.erb} +5 -30
  61. data/app/views/lesli_shield/role/actions/index.html.erb +14 -0
  62. data/app/views/lesli_shield/roles/index.html.erb +2 -6
  63. data/app/views/lesli_shield/roles/new.html.erb +0 -11
  64. data/app/views/lesli_shield/roles/show.html.erb +5 -8
  65. data/app/views/lesli_shield/user/roles/_form.html.erb +17 -0
  66. data/app/views/lesli_shield/user/roles/_role.html.erb +2 -0
  67. data/app/views/lesli_shield/user/roles/edit.html.erb +12 -0
  68. data/app/views/lesli_shield/user/roles/index.html.erb +16 -0
  69. data/app/views/lesli_shield/user/roles/new.html.erb +11 -0
  70. data/app/views/lesli_shield/user/roles/show.html.erb +10 -0
  71. data/app/views/lesli_shield/users/{_viewer-activities.html.erb → _activities-viewer.html.erb} +2 -4
  72. data/app/views/lesli_shield/users/_information-card.html.erb +3 -3
  73. data/app/views/lesli_shield/users/_management-privileges.html.erb +74 -0
  74. data/app/views/lesli_shield/users/_management-security.html.erb +5 -0
  75. data/app/views/lesli_shield/users/index.html.erb +3 -7
  76. data/app/views/lesli_shield/users/new.html.erb +5 -11
  77. data/app/views/lesli_shield/users/show.html.erb +7 -5
  78. data/config/initializers/devise.rb +305 -304
  79. data/config/locales/translations.en.yml +4 -1
  80. data/config/locales/translations.es.yml +4 -1
  81. data/config/locales/translations.it.yml +4 -1
  82. data/config/routes.rb +7 -8
  83. data/{lib/scss/registrations.scss → db/migrate/v1/0801100210_create_lesli_shield_role_actions.rb} +20 -39
  84. data/db/migrate/v1/0801100410_create_lesli_shield_role_privileges.rb +45 -0
  85. data/db/migrate/v1/0801110110_create_lesli_shield_user_roles.rb +43 -0
  86. data/db/migrate/v1/0801111210_create_lesli_shield_user_sessions.rb +56 -0
  87. data/db/migrate/v1/0801120110_create_lesli_shield_invites.rb +49 -0
  88. data/lib/lesli_shield/router.rb +21 -0
  89. data/lib/lesli_shield/version.rb +2 -2
  90. data/lib/lesli_shield.rb +1 -1
  91. data/lib/tasks/lesli_shield_tasks.rake +1 -1
  92. data/readme.md +59 -20
  93. metadata +59 -56
  94. data/app/controllers/lesli_shield/dashboard/components_controller.rb +0 -60
  95. data/app/models/lesli_shield/dashboard/component.rb +0 -18
  96. data/app/views/lesli_shield/dashboards/edit.html.erb +0 -1
  97. data/app/views/lesli_shield/dashboards/index.html.erb +0 -9
  98. data/app/views/lesli_shield/dashboards/new.html.erb +0 -1
  99. data/app/views/lesli_shield/dashboards/show.html.erb +0 -1
  100. data/app/views/lesli_shield/roles/_session.html.erb +0 -2
  101. data/app/views/lesli_shield/roles/edit.html.erb +0 -12
  102. data/app/views/lesli_shield/roles/update.turbo_stream.erb +0 -3
  103. data/app/views/lesli_shield/users/update.turbo_stream.erb +0 -3
  104. data/lib/lesli_shield/routing.rb +0 -23
  105. data/lib/scss/_devise-simple.scss +0 -90
  106. data/lib/scss/_devise.scss +0 -154
  107. data/lib/scss/application.scss +0 -6
  108. data/lib/scss/devise/oauth.scss +0 -34
  109. data/lib/scss/sessions.scss +0 -66
  110. data/lib/vue/application.js +0 -83
  111. data/lib/vue/apps/sessions/index.vue +0 -50
  112. data/lib/vue/confirmations.js +0 -33
  113. data/lib/vue/passwords.js +0 -137
  114. data/lib/vue/registrations.js +0 -144
  115. data/lib/vue/sessions.js +0 -148
  116. data/lib/vue/stores/sessions.js +0 -43
  117. data/lib/vue/stores/translations.json +0 -162
  118. /data/app/views/lesli_shield/roles/{_form-information.html.erb → _form.html.erb} +0 -0
  119. /data/db/migrate/v1/{0801120310_create_lesli_shield_user_shortcuts.rb → 0801111010_create_lesli_shield_user_shortcuts.rb} +0 -0
  120. /data/db/migrate/v1/{0801120410_create_lesli_shield_user_tokens.rb → 0801111110_create_lesli_shield_user_tokens.rb} +0 -0
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.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Lesli Development Team
@@ -15,28 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '5.0'
18
+ version: 5.1.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '5.0'
26
- - !ruby/object:Gem::Dependency
27
- name: devise
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - "~>"
31
- - !ruby/object:Gem::Version
32
- version: '4.9'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '4.9'
25
+ version: 5.1.0
40
26
  description: "Provides a complete authentication and authorization solution for The
41
27
  Lesli Framework, \nincluding user session management, secure login and logout, role-based
42
28
  access control, \nand permission handling.\n"
@@ -48,6 +34,8 @@ extra_rdoc_files: []
48
34
  files:
49
35
  - Rakefile
50
36
  - app/assets/config/lesli_shield_manifest.js
37
+ - app/assets/images/lesli_shield/login-background.jpg
38
+ - app/assets/images/lesli_shield/register-background.jpg
51
39
  - app/assets/images/lesli_shield/shield-logo.svg
52
40
  - app/assets/javascripts/lesli_shield/application.js
53
41
  - app/assets/javascripts/lesli_shield/confirmations.js
@@ -62,12 +50,13 @@ files:
62
50
  - app/assets/stylesheets/lesli_shield/sessions.css
63
51
  - app/assets/stylesheets/lesli_shield/users.css
64
52
  - app/controllers/lesli_shield/application_controller.rb
65
- - app/controllers/lesli_shield/dashboard/components_controller.rb
66
53
  - app/controllers/lesli_shield/dashboards_controller.rb
54
+ - app/controllers/lesli_shield/invites_controller.rb
67
55
  - app/controllers/lesli_shield/role/actions_controller.rb
68
56
  - app/controllers/lesli_shield/roles_controller.rb
69
57
  - app/controllers/lesli_shield/sessions_controller.rb
70
58
  - app/controllers/lesli_shield/settings_controller.rb
59
+ - app/controllers/lesli_shield/user/roles_controller.rb
71
60
  - app/controllers/lesli_shield/users_controller.rb
72
61
  - app/controllers/users/confirmations_controller.rb
73
62
  - app/controllers/users/omniauth_callbacks_controller.rb
@@ -77,21 +66,35 @@ files:
77
66
  - app/controllers/users/unlocks_controller.rb
78
67
  - app/helpers/lesli_shield/application_helper.rb
79
68
  - app/helpers/lesli_shield/dashboards_helper.rb
69
+ - app/helpers/lesli_shield/invites_helper.rb
80
70
  - app/helpers/lesli_shield/sessions_helper.rb
81
71
  - app/helpers/lesli_shield/settings_helper.rb
72
+ - app/helpers/lesli_shield/user/roles_helper.rb
82
73
  - app/helpers/lesli_shield/users_helper.rb
83
74
  - app/interfaces/lesli_shield/authentication_interface.rb
84
75
  - app/interfaces/lesli_shield/authorization_interface.rb
85
76
  - app/jobs/lesli_shield/application_job.rb
86
77
  - app/mailers/lesli_shield/application_mailer.rb
78
+ - app/mailers/lesli_shield/devise_mailer.rb
79
+ - app/mailers/lesli_shield/invitation.html.erb
80
+ - app/models/concerns/lesli_shield/user_security.rb
87
81
  - app/models/lesli_shield/account.rb
88
82
  - app/models/lesli_shield/application_record.rb
89
83
  - app/models/lesli_shield/dashboard.rb
90
- - app/models/lesli_shield/dashboard/component.rb
84
+ - app/models/lesli_shield/invite.rb
85
+ - app/models/lesli_shield/role/action.rb
86
+ - app/models/lesli_shield/role/privilege.rb
91
87
  - app/models/lesli_shield/setting.rb
92
88
  - app/models/lesli_shield/user.rb
93
- - app/operators/lesli_shield/user_registration_operator.rb
89
+ - app/models/lesli_shield/user/role.rb
90
+ - app/models/lesli_shield/user/session.rb
91
+ - app/services/lesli_shield/invite_service.rb
92
+ - app/services/lesli_shield/role_action_service.rb
93
+ - app/services/lesli_shield/role_privilege_service.rb
94
94
  - app/services/lesli_shield/tokens.rb
95
+ - app/services/lesli_shield/user_registration_service.rb
96
+ - app/services/lesli_shield/user_session_service.rb
97
+ - app/services/lesli_shield/user_validator_service.rb
95
98
  - app/views/devise/confirmations/new.html.erb
96
99
  - app/views/devise/confirmations/show.html.erb
97
100
  - app/views/devise/mailer/confirmation_instructions.html.erb
@@ -104,23 +107,31 @@ files:
104
107
  - app/views/devise/registrations/edit.html.erb
105
108
  - app/views/devise/registrations/new.html.erb
106
109
  - app/views/devise/sessions/new.html.erb
110
+ - app/views/devise/shared/_application-devise-simple.erb
111
+ - app/views/devise/shared/_application-devise.html.erb
107
112
  - app/views/devise/shared/_demo.html.erb
108
113
  - app/views/devise/shared/_error_messages.html.erb
109
114
  - app/views/devise/shared/_links.html.erb
110
115
  - app/views/devise/unlocks/new.html.erb
111
- - app/views/lesli_shield/dashboards/edit.html.erb
112
- - app/views/lesli_shield/dashboards/index.html.erb
113
- - app/views/lesli_shield/dashboards/new.html.erb
114
- - app/views/lesli_shield/dashboards/show.html.erb
116
+ - app/views/lesli_shield/dashboards/_component-calendar.html.erb
117
+ - app/views/lesli_shield/dashboards/_component-chart-bar.html.erb
118
+ - app/views/lesli_shield/dashboards/_component-chart-line.html.erb
119
+ - app/views/lesli_shield/dashboards/_component-count.html.erb
120
+ - app/views/lesli_shield/dashboards/_component-date.html.erb
121
+ - app/views/lesli_shield/dashboards/_component-weather.html.erb
122
+ - app/views/lesli_shield/invites/_form.html.erb
123
+ - app/views/lesli_shield/invites/_invite.html.erb
124
+ - app/views/lesli_shield/invites/edit.html.erb
125
+ - app/views/lesli_shield/invites/index.html.erb
126
+ - app/views/lesli_shield/invites/new.html.erb
127
+ - app/views/lesli_shield/invites/show.html.erb
115
128
  - app/views/lesli_shield/partials/_navigation.html.erb
116
- - app/views/lesli_shield/roles/_form-information.html.erb
117
- - app/views/lesli_shield/roles/_form-privileges.html.erb
118
- - app/views/lesli_shield/roles/_session.html.erb
119
- - app/views/lesli_shield/roles/edit.html.erb
129
+ - app/views/lesli_shield/role/actions/_form.html.erb
130
+ - app/views/lesli_shield/role/actions/index.html.erb
131
+ - app/views/lesli_shield/roles/_form.html.erb
120
132
  - app/views/lesli_shield/roles/index.html.erb
121
133
  - app/views/lesli_shield/roles/new.html.erb
122
134
  - app/views/lesli_shield/roles/show.html.erb
123
- - app/views/lesli_shield/roles/update.turbo_stream.erb
124
135
  - app/views/lesli_shield/sessions/_form.html.erb
125
136
  - app/views/lesli_shield/sessions/_session.html.erb
126
137
  - app/views/lesli_shield/sessions/edit.html.erb
@@ -133,15 +144,22 @@ files:
133
144
  - app/views/lesli_shield/settings/index.html.erb
134
145
  - app/views/lesli_shield/settings/new.html.erb
135
146
  - app/views/lesli_shield/settings/show.html.erb
147
+ - app/views/lesli_shield/user/roles/_form.html.erb
148
+ - app/views/lesli_shield/user/roles/_role.html.erb
149
+ - app/views/lesli_shield/user/roles/edit.html.erb
150
+ - app/views/lesli_shield/user/roles/index.html.erb
151
+ - app/views/lesli_shield/user/roles/new.html.erb
152
+ - app/views/lesli_shield/user/roles/show.html.erb
153
+ - app/views/lesli_shield/users/_activities-viewer.html.erb
136
154
  - app/views/lesli_shield/users/_information-card.html.erb
137
155
  - app/views/lesli_shield/users/_information-form.html.erb
156
+ - app/views/lesli_shield/users/_management-privileges.html.erb
157
+ - app/views/lesli_shield/users/_management-security.html.erb
138
158
  - app/views/lesli_shield/users/_management-sessions.html.erb
139
- - app/views/lesli_shield/users/_viewer-activities.html.erb
140
159
  - app/views/lesli_shield/users/edit.html.erb
141
160
  - app/views/lesli_shield/users/index.html.erb
142
161
  - app/views/lesli_shield/users/new.html.erb
143
162
  - app/views/lesli_shield/users/show.html.erb
144
- - app/views/lesli_shield/users/update.turbo_stream.erb
145
163
  - config/initializers/devise.rb
146
164
  - config/locales/translations.en.yml
147
165
  - config/locales/translations.es.yml
@@ -150,33 +168,18 @@ files:
150
168
  - config/locales/translations.pt.yml
151
169
  - config/routes.rb
152
170
  - db/migrate/v1/0801000110_create_lesli_shield_accounts.rb
153
- - db/migrate/v1/0801001710_create_lesli_shield_settings.rb
154
- - db/migrate/v1/0801003010_create_lesli_shield_dashboards.rb
155
- - db/migrate/v1/0801120310_create_lesli_shield_user_shortcuts.rb
156
- - db/migrate/v1/0801120410_create_lesli_shield_user_tokens.rb
171
+ - db/migrate/v1/0801100210_create_lesli_shield_role_actions.rb
172
+ - db/migrate/v1/0801100410_create_lesli_shield_role_privileges.rb
173
+ - db/migrate/v1/0801110110_create_lesli_shield_user_roles.rb
174
+ - db/migrate/v1/0801111010_create_lesli_shield_user_shortcuts.rb
175
+ - db/migrate/v1/0801111110_create_lesli_shield_user_tokens.rb
176
+ - db/migrate/v1/0801111210_create_lesli_shield_user_sessions.rb
177
+ - db/migrate/v1/0801120110_create_lesli_shield_invites.rb
157
178
  - lib/lesli_shield.rb
158
179
  - lib/lesli_shield/engine.rb
159
- - lib/lesli_shield/routing.rb
180
+ - lib/lesli_shield/router.rb
160
181
  - lib/lesli_shield/version.rb
161
- - lib/scss/_devise-simple.scss
162
- - lib/scss/_devise.scss
163
- - lib/scss/application.scss
164
- - lib/scss/confirmations.scss
165
- - lib/scss/devise/oauth.scss
166
- - lib/scss/passwords.scss
167
- - lib/scss/registrations.scss
168
- - lib/scss/sessions.scss
169
- - lib/scss/users.scss
170
182
  - lib/tasks/lesli_shield_tasks.rake
171
- - lib/vue/application.js
172
- - lib/vue/apps/dashboards/components/engine-version.vue
173
- - lib/vue/apps/sessions/index.vue
174
- - lib/vue/confirmations.js
175
- - lib/vue/passwords.js
176
- - lib/vue/registrations.js
177
- - lib/vue/sessions.js
178
- - lib/vue/stores/sessions.js
179
- - lib/vue/stores/translations.json
180
183
  - license
181
184
  - readme.md
182
185
  homepage: https://www.lesli.dev/
@@ -195,7 +198,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
195
198
  requirements:
196
199
  - - ">="
197
200
  - !ruby/object:Gem::Version
198
- version: '3.2'
201
+ version: '0'
199
202
  required_rubygems_version: !ruby/object:Gem::Requirement
200
203
  requirements:
201
204
  - - ">="
@@ -204,5 +207,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
207
  requirements: []
205
208
  rubygems_version: 3.7.1
206
209
  specification_version: 4
207
- summary: Authentication & Authorization management for the Lesli Framework.
210
+ summary: Users & security management for the Lesli Framework.
208
211
  test_files: []
@@ -1,60 +0,0 @@
1
- module LesliShield
2
- class Dashboard::ComponentsController < ApplicationController
3
- before_action :set_dashboard_component, only: %i[ show edit update destroy ]
4
-
5
- # GET /dashboard/components
6
- def index
7
- @dashboard_components = Dashboard::Component.all
8
- end
9
-
10
- # GET /dashboard/components/1
11
- def show
12
- end
13
-
14
- # GET /dashboard/components/new
15
- def new
16
- @dashboard_component = Dashboard::Component.new
17
- end
18
-
19
- # GET /dashboard/components/1/edit
20
- def edit
21
- end
22
-
23
- # POST /dashboard/components
24
- def create
25
- @dashboard_component = Dashboard::Component.new(dashboard_component_params)
26
-
27
- if @dashboard_component.save
28
- redirect_to @dashboard_component, notice: "Component was successfully created."
29
- else
30
- render :new, status: :unprocessable_entity
31
- end
32
- end
33
-
34
- # PATCH/PUT /dashboard/components/1
35
- def update
36
- if @dashboard_component.update(dashboard_component_params)
37
- redirect_to @dashboard_component, notice: "Component was successfully updated.", status: :see_other
38
- else
39
- render :edit, status: :unprocessable_entity
40
- end
41
- end
42
-
43
- # DELETE /dashboard/components/1
44
- def destroy
45
- @dashboard_component.destroy
46
- redirect_to dashboard_components_url, notice: "Component was successfully destroyed.", status: :see_other
47
- end
48
-
49
- private
50
- # Use callbacks to share common setup or constraints between actions.
51
- def set_dashboard_component
52
- @dashboard_component = Dashboard::Component.find(params[:id])
53
- end
54
-
55
- # Only allow a list of trusted parameters through.
56
- def dashboard_component_params
57
- params.fetch(:dashboard_component, {})
58
- end
59
- end
60
- end
@@ -1,18 +0,0 @@
1
- module LesliShield
2
- class Dashboard::Component < ApplicationRecord
3
-
4
- belongs_to :dashboard, inverse_of: :components
5
-
6
- def self.component_ids
7
- ["audit-users", "audit-roles"]
8
- end
9
- # components_ids: {
10
- # list_new_tickets: "list_new_tickets",
11
- # list_my_tickets: "list_my_tickets",
12
- # list_unassigned_tickets: "list_unassigned_tickets",
13
- # chart_tickets_by_type: "chart_tickets_by_type",
14
- # chart_tickets_by_category: "chart_tickets_by_category",
15
- # hours_worked: "hours_worked"
16
- # }
17
- end
18
- end
@@ -1 +0,0 @@
1
- <router-view></router-view>
@@ -1,9 +0,0 @@
1
- <turbo-frame id="dashboard">
2
- <h1>Dashboard</h1>
3
- <%= link_to 'Go to Sessions', lesli_shield.sessions_path, data: { turbo_frame: '_top' } %>
4
- </turbo-frame>
5
-
6
-
7
-
8
-
9
- <router-view></router-view>
@@ -1 +0,0 @@
1
- <router-view></router-view>
@@ -1 +0,0 @@
1
- <%= render("/lesli/shared/dashboards/show") %>
@@ -1,2 +0,0 @@
1
- <div id="<%= dom_id session %>">
2
- </div>
@@ -1,12 +0,0 @@
1
- <% content_for :title, "Editing session" %>
2
-
3
- <h1>Editing session</h1>
4
-
5
- <%= render "form", session: @session %>
6
-
7
- <br>
8
-
9
- <div>
10
- <%= link_to "Show this session", @session %> |
11
- <%= link_to "Back to sessions", sessions_path %>
12
- </div>
@@ -1,3 +0,0 @@
1
- <%= turbo_stream.replace "application-lesli-notifications" do %>
2
- <%= render "lesli/partials/application-lesli-notifications" %>
3
- <% end %>
@@ -1,3 +0,0 @@
1
- <%= turbo_stream.replace "application-lesli-notifications" do %>
2
- <%= render "lesli/partials/application-lesli-notifications" %>
3
- <% end %>
@@ -1,23 +0,0 @@
1
- module LesliShield
2
- module Routing
3
- def self.mount_login_at path=""
4
- Rails.application.routes.draw do
5
- devise_for :users, class_name: "Lesli::User", module: :devise,
6
- :path => path,
7
- :path_names => {
8
- :sign_in => "login",
9
- :sign_out => "logout",
10
- :sign_up => "register",
11
- :password => "password",
12
- :confirmation => "confirmation"
13
- },
14
- :controllers => {
15
- :registrations => "users/registrations",
16
- :confirmations => "users/confirmations",
17
- :passwords => "users/passwords",
18
- :sessions => "users/sessions"
19
- }
20
- end
21
- end
22
- end
23
- end
@@ -1,90 +0,0 @@
1
- /*
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
-
34
- // ·
35
- @use "lesli-css" as lesli;
36
- @use "LesliAssets/lib/lesli_assets_styles/templates/public";
37
-
38
-
39
- // ·
40
- main {
41
- background: white;
42
-
43
- // logo container
44
- .hero-head {
45
- padding: 8rem 0 4rem;
46
-
47
- .lesli-logo {
48
- max-width: 130px;
49
- margin-bottom: 1rem;
50
- }
51
- }
52
-
53
- // form container
54
- .hero-body {
55
- flex-direction: column;
56
- background-color: whitesmoke;
57
- border-top: 1px solid #ebebeb;
58
-
59
- form {
60
- width: 100%;
61
- padding: 4rem;
62
- max-width: 750px;
63
- margin: 2rem auto;
64
- border-radius: 6px;
65
- border: 1px solid #ececec;
66
- background-color: white;
67
-
68
- .label {
69
- font-size: 1.1rem;
70
- font-weight: 600;
71
- margin-bottom: 0;
72
- color: lesli.lesli-color(slate, 500);
73
- }
74
- }
75
-
76
- .links {
77
- display: flex;
78
-
79
- a {
80
- display: flex;
81
- align-items: center;
82
- font-family: "OpenSans";
83
- // add margin only to the middle links
84
- &:not(:first-child):not(:last-child) {
85
- margin: 0 1rem;
86
- }
87
- }
88
- }
89
- }
90
- }
@@ -1,154 +0,0 @@
1
- /*
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
-
34
-
35
- // ·
36
- @use "lesli-css" as lesli;
37
- @use "LesliAssets/lib/lesli_assets_styles/templates/public";
38
-
39
-
40
- // · Configuration & variables
41
- @use "LesliAssets/lib/lesli_assets_styles/settings/variables";
42
-
43
-
44
- // · headings and links
45
- h1, h2, h3, h4, h5, h6, a {
46
- font-family: "Domine", variables.$family-primary;
47
- }
48
-
49
-
50
- // ·
51
- .shield-form-demo {
52
- width: 100%;
53
- border-radius: 4px;
54
- border: 1px solid silver;
55
- }
56
-
57
-
58
- // login form container
59
- .column.login-form {
60
- max-width: 550px;
61
- margin: 0 auto;
62
-
63
- // logo container
64
- .logo {
65
- img {
66
- width: initial;
67
- height: initial;
68
- }
69
- p {
70
- font-weight: 600;
71
- text-align: left;
72
- }
73
- }
74
-
75
- .is-title {
76
- line-height: 1.2;
77
- max-width: 400px;
78
- }
79
-
80
- form {
81
- max-width: 310px;
82
-
83
- label {
84
- font-weight: 400;
85
- font-size: 15px;
86
- line-height: 150%;
87
- }
88
-
89
- input {
90
- border-radius: 6px;
91
- box-shadow: none;
92
- }
93
-
94
- input[type="password"] {
95
- font-family: Verdana;
96
- letter-spacing: 0.1rem;
97
- }
98
-
99
- p.help {
100
- font-weight: 600;
101
- }
102
-
103
- p.account {
104
- font-size: 15px;
105
- font-weight: 400;
106
- }
107
- }
108
-
109
- .links {
110
-
111
- a {
112
- width: 100%;
113
- display: flex;
114
- flex-grow: 1;
115
- padding: .8rem 0;
116
- &:not(:last-child) {
117
- border-bottom: 1px solid lesli-css-color(silver, 300);
118
- }
119
- }
120
-
121
- span {
122
- font-family: "Domine";
123
- font-weight: 500;
124
- font-size: 14px;
125
- }
126
- }
127
-
128
- .terms {
129
- font-size: 13px;
130
- line-height: 19px;
131
- }
132
- }
133
-
134
- @include lesli.lesli-breakpoint-until-tablet() {
135
-
136
- // login column must be full width on mobile
137
- .column.login-form {
138
- width: 100%;
139
- max-width: 100%;
140
-
141
- .hero {
142
- padding: 2rem 0;
143
- }
144
-
145
- // center the form
146
- .hero-body {
147
- margin: 0 auto;
148
- max-width: 500px;
149
- background-color: white;
150
- border-radius: 6px;
151
- padding: 1rem 3rem;
152
- }
153
- }
154
- }
@@ -1,6 +0,0 @@
1
-
2
-
3
- // // ·
4
- // body.lesli_shield-users {
5
- // @import "./users";
6
- // }
@@ -1,34 +0,0 @@
1
- /*
2
-
3
- Lesli
4
-
5
- Copyright (c) 2023, 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 · Your Smart Business Assistant.
21
-
22
- Made with ♥ by https://www.lesli.tech
23
- Building a better future, one line of code at a time.
24
-
25
- @contact hello@lesli.tech
26
- @website https://lesli.tech
27
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
-
29
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
- // ·
31
-
32
- */
33
-
34
- //@import "templates/component";