lesli_vault 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +38 -0
  3. data/app/assets/config/lesli_vault_manifest.js +38 -0
  4. data/app/assets/images/lesli_vault/vault-logo.svg +160 -0
  5. data/app/assets/javascripts/lesli_vault/application.js +2848 -0
  6. data/app/assets/stylesheets/lesli_vault/application.scss +15 -0
  7. data/app/assets/stylesheets/lesli_vault/dashboards.scss +32 -0
  8. data/app/assets/stylesheets/lesli_vault/descriptors.scss +32 -0
  9. data/app/assets/stylesheets/lesli_vault/roles.scss +32 -0
  10. data/app/assets/stylesheets/lesli_vault/system_controller.scss +32 -0
  11. data/app/controllers/lesli_vault/application_controller.rb +37 -0
  12. data/app/controllers/lesli_vault/dashboards_controller.rb +6 -0
  13. data/app/controllers/lesli_vault/descriptor/activities_controller.rb +122 -0
  14. data/app/controllers/lesli_vault/descriptor/privileges_controller.rb +104 -0
  15. data/app/controllers/lesli_vault/descriptors_controller.rb +130 -0
  16. data/app/controllers/lesli_vault/role/activities_controller.rb +76 -0
  17. data/app/controllers/lesli_vault/role/descriptors_controller.rb +95 -0
  18. data/app/controllers/lesli_vault/role/privileges_controller.rb +48 -0
  19. data/app/controllers/lesli_vault/roles_controller.rb +226 -0
  20. data/app/controllers/lesli_vault/system_controller/actions_controller.rb +112 -0
  21. data/app/controllers/lesli_vault/system_controllers_controller.rb +64 -0
  22. data/app/helpers/lesli_vault/application_helper.rb +4 -0
  23. data/app/helpers/lesli_vault/dashboards_helper.rb +4 -0
  24. data/app/helpers/lesli_vault/descriptor/activities_helper.rb +4 -0
  25. data/app/helpers/lesli_vault/descriptor/privileges_helper.rb +4 -0
  26. data/app/helpers/lesli_vault/descriptors_helper.rb +4 -0
  27. data/app/helpers/lesli_vault/role/activities_helper.rb +4 -0
  28. data/app/helpers/lesli_vault/role/descriptors_helper.rb +4 -0
  29. data/app/helpers/lesli_vault/role/privileges_helper.rb +4 -0
  30. data/app/helpers/lesli_vault/roles_helper.rb +4 -0
  31. data/app/helpers/lesli_vault/system_controller/actions_helper.rb +4 -0
  32. data/app/helpers/lesli_vault/system_controllers_helper.rb +4 -0
  33. data/app/jobs/lesli_vault/application_job.rb +37 -0
  34. data/app/mailers/lesli_vault/application_mailer.rb +39 -0
  35. data/app/models/lesli_vault/application_record.rb +39 -0
  36. data/app/models/lesli_vault/descriptor/activity.rb +40 -0
  37. data/app/models/lesli_vault/descriptor/privilege.rb +40 -0
  38. data/app/models/lesli_vault/descriptor.rb +41 -0
  39. data/app/models/lesli_vault/role/activity.rb +40 -0
  40. data/app/models/lesli_vault/role/descriptor.rb +40 -0
  41. data/app/models/lesli_vault/role/privilege.rb +40 -0
  42. data/app/models/lesli_vault/role.rb +39 -0
  43. data/app/models/lesli_vault/system_controller/action.rb +39 -0
  44. data/app/models/lesli_vault/system_controller.rb +40 -0
  45. data/app/services/application_lesli_services.rb +168 -0
  46. data/app/services/descriptor_services.rb +197 -0
  47. data/app/services/role_services.rb +218 -0
  48. data/app/services/system_controller_services.rb +99 -0
  49. data/app/views/layouts/lesli_vault/application.html.erb +15 -0
  50. data/app/views/lesli_vault/dashboards/show.html.erb +1 -0
  51. data/app/views/lesli_vault/descriptor/activities/_form.html.erb +32 -0
  52. data/app/views/lesli_vault/descriptor/activities/edit.html.erb +34 -0
  53. data/app/views/lesli_vault/descriptor/activities/index.html.erb +34 -0
  54. data/app/views/lesli_vault/descriptor/activities/new.html.erb +34 -0
  55. data/app/views/lesli_vault/descriptor/activities/show.html.erb +34 -0
  56. data/app/views/lesli_vault/descriptor/privileges/_form.html.erb +32 -0
  57. data/app/views/lesli_vault/descriptor/privileges/edit.html.erb +34 -0
  58. data/app/views/lesli_vault/descriptor/privileges/index.html.erb +34 -0
  59. data/app/views/lesli_vault/descriptor/privileges/new.html.erb +34 -0
  60. data/app/views/lesli_vault/descriptor/privileges/show.html.erb +34 -0
  61. data/app/views/lesli_vault/descriptors/_form.html.erb +32 -0
  62. data/app/views/lesli_vault/descriptors/edit.html.erb +34 -0
  63. data/app/views/lesli_vault/descriptors/index.html.erb +34 -0
  64. data/app/views/lesli_vault/descriptors/new.html.erb +34 -0
  65. data/app/views/lesli_vault/descriptors/show.html.erb +34 -0
  66. data/app/views/lesli_vault/role/activities/_form.html.erb +32 -0
  67. data/app/views/lesli_vault/role/activities/edit.html.erb +34 -0
  68. data/app/views/lesli_vault/role/activities/index.html.erb +34 -0
  69. data/app/views/lesli_vault/role/activities/new.html.erb +34 -0
  70. data/app/views/lesli_vault/role/activities/show.html.erb +34 -0
  71. data/app/views/lesli_vault/role/descriptors/_form.html.erb +32 -0
  72. data/app/views/lesli_vault/role/descriptors/edit.html.erb +34 -0
  73. data/app/views/lesli_vault/role/descriptors/index.html.erb +34 -0
  74. data/app/views/lesli_vault/role/descriptors/new.html.erb +34 -0
  75. data/app/views/lesli_vault/role/descriptors/show.html.erb +34 -0
  76. data/app/views/lesli_vault/role/privileges/_form.html.erb +32 -0
  77. data/app/views/lesli_vault/role/privileges/edit.html.erb +34 -0
  78. data/app/views/lesli_vault/role/privileges/index.html.erb +34 -0
  79. data/app/views/lesli_vault/role/privileges/new.html.erb +34 -0
  80. data/app/views/lesli_vault/role/privileges/show.html.erb +34 -0
  81. data/app/views/lesli_vault/roles/edit.html.erb +34 -0
  82. data/app/views/lesli_vault/roles/index.html.erb +34 -0
  83. data/app/views/lesli_vault/roles/new.html.erb +34 -0
  84. data/app/views/lesli_vault/roles/show.html.erb +34 -0
  85. data/app/views/lesli_vault/system_controller/actions/_form.html.erb +32 -0
  86. data/app/views/lesli_vault/system_controller/actions/edit.html.erb +34 -0
  87. data/app/views/lesli_vault/system_controller/actions/index.html.erb +34 -0
  88. data/app/views/lesli_vault/system_controller/actions/new.html.erb +34 -0
  89. data/app/views/lesli_vault/system_controller/actions/show.html.erb +34 -0
  90. data/app/views/lesli_vault/system_controllers/_form.html.erb +32 -0
  91. data/app/views/lesli_vault/system_controllers/edit.html.erb +34 -0
  92. data/app/views/lesli_vault/system_controllers/index.html.erb +34 -0
  93. data/app/views/lesli_vault/system_controllers/new.html.erb +34 -0
  94. data/app/views/lesli_vault/system_controllers/show.html.erb +34 -0
  95. data/app/vue/lesli_vault/application.js +38 -0
  96. data/app/vue/lesli_vault/apps/descriptors/components/form.vue +147 -0
  97. data/app/vue/lesli_vault/apps/descriptors/edit.vue +83 -0
  98. data/app/vue/lesli_vault/apps/descriptors/index.vue +116 -0
  99. data/app/vue/lesli_vault/apps/descriptors/new.vue +76 -0
  100. data/app/vue/lesli_vault/apps/descriptors/privileges.vue +179 -0
  101. data/app/vue/lesli_vault/apps/descriptors/show.vue +240 -0
  102. data/app/vue/lesli_vault/apps/roles/componentForm.vue +231 -0
  103. data/app/vue/lesli_vault/apps/roles/componentPrivilegeCustom.vue +86 -0
  104. data/app/vue/lesli_vault/apps/roles/componentPrivilegeStandard.vue +173 -0
  105. data/app/vue/lesli_vault/apps/roles/edit.vue +93 -0
  106. data/app/vue/lesli_vault/apps/roles/index.vue +169 -0
  107. data/app/vue/lesli_vault/apps/roles/logs.vue +110 -0
  108. data/app/vue/lesli_vault/apps/roles/new.vue +89 -0
  109. data/app/vue/lesli_vault/apps/roles/show.vue +111 -0
  110. data/app/vue/lesli_vault/apps/security/index.vue +208 -0
  111. data/app/vue/lesli_vault/stores/descriptor.js +116 -0
  112. data/app/vue/lesli_vault/stores/descriptors.js +167 -0
  113. data/app/vue/lesli_vault/stores/role.js +243 -0
  114. data/app/vue/lesli_vault/stores/roles.js +89 -0
  115. data/app/vue/lesli_vault/stores/systemController.js +67 -0
  116. data/config/routes.rb +52 -0
  117. data/lib/lesli_vault/engine.rb +18 -0
  118. data/lib/lesli_vault/version.rb +3 -0
  119. data/lib/lesli_vault.rb +6 -0
  120. data/lib/tasks/lesli_vault_tasks.rake +4 -0
  121. data/lib/tasks/system/controllers.rake +112 -0
  122. data/lib/vue/application.js +7 -0
  123. data/readme.md +19 -0
  124. metadata +181 -0
@@ -0,0 +1,95 @@
1
+ =begin
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 · Ruby on Rails SaaS development platform.
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://www.lesli.tech
27
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
+
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // ·
31
+
32
+ =end
33
+
34
+ module LesliVault
35
+ class Role::DescriptorsController < ApplicationController
36
+ before_action :set_role, only: %i[ index show update create destroy ]
37
+ before_action :set_role_descriptor, only: %i[ show update destroy ]
38
+
39
+ def index
40
+ respond_with_successful(Role::Descriptor.index(current_user, @query, @role))
41
+ end
42
+
43
+ # POST /role/descriptors
44
+ def create
45
+
46
+ role_descriptor_status = false
47
+
48
+ system_descriptor = Descriptor.find_by(:id => role_descriptor_params[:id])
49
+ role_descriptor = @role.descriptors.with_deleted.find_by(:descriptor => system_descriptor)
50
+
51
+ if not role_descriptor
52
+ role_descriptor = @role.descriptors.new(:descriptor => system_descriptor)
53
+ role_descriptor_status = role_descriptor.save
54
+ elsif role_descriptor.deleted?
55
+ role_descriptor_status = role_descriptor.recover
56
+ end
57
+
58
+ if role_descriptor_status
59
+ #Role::Activity.log_create_descriptor(current_user, @role, role_descriptor)
60
+ respond_with_successful(role_descriptor)
61
+ else
62
+ respond_with_error(role_descriptor.errors.full_messages.to_sentence)
63
+ end
64
+ end
65
+
66
+ # DELETE /role/descriptors/1
67
+ def destroy
68
+ return respond_with_not_found unless @role_descriptor
69
+
70
+ if @role_descriptor.destroy
71
+ Role::Activity.log_destroy_descriptor(current_user, @role, @role_descriptor)
72
+ respond_with_successful
73
+ else
74
+ respond_with_error(@role_descriptor.errors.full_messages.to_sentence)
75
+ end
76
+ end
77
+
78
+ private
79
+
80
+ def set_role
81
+ @role = current_user.account.roles.find_by(id: params[:role_id])
82
+ end
83
+
84
+ def set_role_descriptor
85
+ return respond_with_not_found unless @role
86
+ @role_descriptor = @role.descriptors.find_by(system_descriptors_id: params[:id])
87
+ end
88
+
89
+ # Only allow a list of trusted parameters through.
90
+ def role_descriptor_params
91
+ params.require(:role_descriptor).permit(:id, :name, :privilege_index)
92
+ end
93
+
94
+ end
95
+ end
@@ -0,0 +1,48 @@
1
+ =begin
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 · Ruby on Rails SaaS development platform.
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://www.lesli.tech
27
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
+
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // ·
31
+
32
+ =end
33
+
34
+ module LesliVault
35
+ class Role::PrivilegesController < ApplicationController
36
+ before_action :set_role_privilege, only: %i[]
37
+
38
+ private
39
+
40
+ # Use callbacks to share common setup or constraints between actions.
41
+ def set_role_privilege
42
+ end
43
+
44
+ # Only allow a list of trusted parameters through.
45
+ def role_privilege_params
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,226 @@
1
+ =begin
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 · Ruby on Rails SaaS development platform.
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://www.lesli.tech
27
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
+
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // ·
31
+
32
+ =end
33
+
34
+ module LesliVault
35
+ class RolesController < ApplicationController
36
+
37
+ before_action :set_role, only: %i[ show update destroy ]
38
+
39
+
40
+ #@return [HTML|JSON] HTML view for listing all roles or a Json that contains a list of all roles
41
+ # associated to this *account*
42
+ #@description Retrieves and returns all roles associated to a *CloudHouse::Account*. The account
43
+ # is obtained directly from *current_user*. The HTTP request has to specify
44
+ # wheter the HTML or the JSON text should be rendered
45
+ #@example
46
+ # # Executing this controller's action from javascript's frontend
47
+ # this.http.get(`127.0.0.1/house/roles`);
48
+ def list
49
+ respond_to do |format|
50
+ format.html { }
51
+ format.json { respond_with_successful(RoleServices.new(current_user).list) }
52
+ end
53
+ end
54
+
55
+ #@return [HTML|JSON] HTML view for listing all roles or a Json that contains a list of all roles
56
+ # associated to this *account*
57
+ #@description Retrieves and returns all roles associated to a *CloudHouse::Account*. The account
58
+ # is obtained directly from *current_user*. The HTTP request has to specify
59
+ # wheter the HTML or the JSON text should be rendered
60
+ #@example
61
+ # # Executing this controller's action from javascript's frontend
62
+ # this.http.get(`127.0.0.1/house/roles`);
63
+ def index
64
+ respond_to do |format|
65
+ format.html { }
66
+ format.json {
67
+ respond_with_pagination(RoleServices.new(current_user, @query).index)
68
+ }
69
+ end
70
+ end
71
+
72
+ # @return [HTML|Json] HTML view showing the requested role or a Json that contains the
73
+ # information of the role. If there is an error, an explanation message is sent
74
+ # @description Retrieves and returns the requested roles. The id of the
75
+ # role is within the *params* attribute of the controller. The HTTP request has to specify
76
+ # wheter the HTML or the JSON text should be rendered. This is the only method that uses the role
77
+ # code instead of the ID for searching.
78
+ # @example
79
+ # # Executing this controller's action from javascript's frontend
80
+ # let role_id = 1;
81
+ # this.http.get(`127.0.0.1/roles/${role_id}`);
82
+ def show
83
+ respond_to do |format|
84
+ format.html { }
85
+ format.json {
86
+ return respond_with_not_found unless @role.found?
87
+
88
+ respond_with_successful(@role.show)
89
+ }
90
+ end
91
+ end
92
+
93
+ # @return [HTML] HTML view for creating a new role
94
+ # @description returns an HTML view with a form so users can create a new role
95
+ # @example
96
+ # # Executing this controller's action from javascript's frontend
97
+ # this.url.go('/roles/new')
98
+ def new
99
+ end
100
+
101
+ # @return [HTML] HTML view for editing the role
102
+ # @description returns an HTML view with a form so users edit an existing role
103
+ # @example
104
+ # # Executing this controller's action from javascript's frontend
105
+ # let role_id = 3;
106
+ # this.url.go(`/roles/${role_id}/edit`)
107
+ def edit
108
+ end
109
+
110
+ # @return [Json] Json that contains wheter the creation of the role was successful or not.
111
+ # If it is not successful, it returns an error message
112
+ # @description Creates a new role associated to the *current_user*'s *account*.
113
+ # @example
114
+ # # Executing this controller's action from javascript's frontend
115
+ # let data = {
116
+ # role: {
117
+ # name: "Change Request"
118
+ # }
119
+ # };
120
+ # this.http.post('127.0.0.1/house/roles', data);
121
+ def create
122
+
123
+ role = RoleServices.new(current_user)
124
+ role.create(role_params)
125
+
126
+ unless role.successful?
127
+ respond_with_error(role.errors)
128
+ end
129
+
130
+ respond_with_successful(role)
131
+ end
132
+
133
+ # @controller_action_param :name [String] The name of the role
134
+ # @return [Json] Json that contains wheter the role was successfully updated or not.
135
+ # If it it not successful, it returns an error message
136
+ # @description Updates an existing role associated to the *current_user*'s *account*.
137
+ def update
138
+ # Respond with 404 if role was not found
139
+ return respond_with_not_found unless @role.found?
140
+
141
+ # check if current user can work with role
142
+ unless current_user.can_work_with_role?(@role.resource)
143
+ return respond_with_error(I18n.t("core.roles.messages_danger_updating_role_object_level_permission_too_high"))
144
+ end
145
+
146
+ # Update role information
147
+ @role.update(role_params)
148
+
149
+ # check if the update went OK
150
+ unless @role.successful?
151
+ respond_with_error(@role.errors)
152
+ end
153
+
154
+ respond_with_successful(@role)
155
+ end
156
+
157
+ # @return [Json] Json that contains wheter the role was successfully deleted or not.
158
+ # If it it not successful, it returns an error message
159
+ # @description Deletes an existing *role* associated to the *current_user*'s *account*.
160
+ def destroy
161
+ return respond_with_not_found unless @role.found?
162
+
163
+ # Validation: check if the role has still associated users
164
+ if @role.has_users?
165
+ return respond_with_error(I18n.t("core.roles.messages_danger_users_assigned_validation"))
166
+ end
167
+
168
+ @role.destroy
169
+
170
+ # Check if the deletion went ok
171
+ unless @role.successful?
172
+ return respond_with_error(@role.errors)
173
+ end
174
+
175
+ respond_with_successful
176
+ end
177
+
178
+ # @return [JSON]
179
+ # @description Gets all the specific options for roles CRUD
180
+ def options
181
+ respond_with_successful({
182
+ :object_level_permissions => RoleServices.new(current_user).options
183
+ })
184
+ end
185
+
186
+ private
187
+
188
+ # @return [void]
189
+ # @description Sets the requested user based on the current_users's account
190
+ # @example
191
+ # # Executing this method from a controller action:
192
+ # set_role
193
+ # puts @role
194
+ # # This will either display nil or an instance of Role
195
+ def set_role
196
+ @role = RoleServices.new(current_user).find(params[:id])
197
+ end
198
+
199
+ # @return [Parameters] Allowed parameters for the role
200
+ # @description Sanitizes the parameters received from an HTTP call to only allow the specified ones.
201
+ # Allowed params are detail_attributes: [:name, :active, :object_level_permission]
202
+ # @example
203
+ # # suppose params contains {
204
+ # # "role": {
205
+ # # "name": "Admin",
206
+ # # "word": Hello
207
+ # # }
208
+ # #}
209
+ # filtered_params = role_params
210
+ # puts filtered_params
211
+ # # will remove all unpermitted attributes and only print {
212
+ # # "name": "Admin",
213
+ # #}
214
+ def role_params
215
+ params.fetch(:role, {}).permit(
216
+ :name,
217
+ :active,
218
+ :only_my_data,
219
+ :default_path,
220
+ :limit_to_path,
221
+ :object_level_permission
222
+ )
223
+ end
224
+
225
+ end
226
+ end
@@ -0,0 +1,112 @@
1
+ =begin
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 · Ruby on Rails SaaS development platform.
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://www.lesli.tech
27
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
+
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // ·
31
+
32
+ =end
33
+
34
+ module LesliVault
35
+ class SystemController::ActionsController < ApplicationController
36
+ before_action :set_system_controllers_action, only: %i[ show update destroy ]
37
+
38
+ # GET /system_controllers/actions
39
+ def index
40
+ respond_to do |format|
41
+ format.html {}
42
+ format.json do
43
+ respond_with_successful(SystemControllers::Action.index(current_user, @query))
44
+ end
45
+ end
46
+ end
47
+
48
+ # GET /system_controllers/actions/1
49
+ def show
50
+ respond_to do |format|
51
+ format.html {}
52
+ format.json do
53
+ return respond_with_not_found unless @system_controllers_action
54
+ return respond_with_successful(@system_controllers_action.show(current_user, @query))
55
+ end
56
+ end
57
+ end
58
+
59
+ # GET /system_controllers/actions/new
60
+ def new
61
+ end
62
+
63
+ # GET /system_controllers/actions/1/edit
64
+ def edit
65
+ end
66
+
67
+ # POST /system_controllers/actions
68
+ def create
69
+ system_controllers_action = SystemControllers::Action.new(system_controllers_action_params)
70
+ if system_controllers_action.save
71
+ respond_with_successful(system_controllers_action)
72
+ else
73
+ respond_with_error(system_controllers_action.errors.full_messages.to_sentence)
74
+ end
75
+ end
76
+
77
+ # PATCH/PUT /system_controllers/actions/1
78
+ def update
79
+ return respond_with_not_found unless @system_controllers_action
80
+
81
+ if @system_controllers_action.update(system_controllers_action_params)
82
+ respond_with_successful(@system_controllers_action.show(current_user, @query))
83
+ else
84
+ respond_with_error(@system_controllers_action.errors.full_messages.to_sentence)
85
+ end
86
+ end
87
+
88
+ # DELETE /system_controllers/actions/1
89
+ def destroy
90
+ return respond_with_not_found unless @system_controllers_action
91
+
92
+ if @system_controllers_action.destroy
93
+ respond_with_successful
94
+ else
95
+ respond_with_error(@system_controllers_action.errors.full_messages.to_sentence)
96
+ end
97
+ end
98
+
99
+ private
100
+
101
+ # Use callbacks to share common setup or constraints between actions.
102
+ def set_system_controllers_action
103
+ @system_controllers_action = current_user.account.system_controllers_actions.find(class_name, params[:id])
104
+ end
105
+
106
+ # Only allow a list of trusted parameters through.
107
+ def system_controllers_action_params
108
+ params.require(:system_controllers_action).permit(:id, :name)
109
+ end
110
+
111
+ end
112
+ end
@@ -0,0 +1,64 @@
1
+ =begin
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 · Ruby on Rails SaaS development platform.
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://www.lesli.tech
27
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
+
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // ·
31
+
32
+ =end
33
+
34
+ module LesliVault
35
+ class SystemControllersController < ApplicationController
36
+ before_action :set_system_controller, only: %i[ show update destroy ]
37
+
38
+ # GET /system_controllers
39
+ def index
40
+ respond_to do |format|
41
+ format.html {}
42
+ format.json do
43
+ respond_with_successful(SystemControllerServices.new(current_user).index)
44
+ end
45
+ end
46
+ end
47
+
48
+ def options
49
+ respond_to do |format|
50
+ format.html {}
51
+ format.json do
52
+ respond_with_successful(SystemControllerServices.new(current_user).options)
53
+ end
54
+ end
55
+ end
56
+
57
+ private
58
+
59
+ # Only allow a list of trusted parameters through.
60
+ def system_controller_params
61
+ []
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module DashboardsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module Descriptor::ActivitiesHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module Descriptor::PrivilegesHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module DescriptorsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module Role::ActivitiesHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module Role::DescriptorsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module Role::PrivilegesHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module RolesHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module SystemController::ActionsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module LesliVault
2
+ module SystemControllersHelper
3
+ end
4
+ end
@@ -0,0 +1,37 @@
1
+ =begin
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 · Ruby on Rails SaaS development platform.
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://www.lesli.tech
27
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
+
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // ·
31
+
32
+ =end
33
+
34
+ module LesliVault
35
+ class ApplicationJob < ActiveJob::Base
36
+ end
37
+ end
@@ -0,0 +1,39 @@
1
+ =begin
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 · Ruby on Rails SaaS development platform.
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://www.lesli.tech
27
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
+
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // ·
31
+
32
+ =end
33
+
34
+ module LesliVault
35
+ class ApplicationMailer < ActionMailer::Base
36
+ default from: "from@example.com"
37
+ layout "mailer"
38
+ end
39
+ end