masks 0.4.0 → 0.6.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 (180) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/LICENSE +21 -0
  4. data/README.md +235 -29
  5. data/app/controllers/masks/rails/avatars_controller.rb +51 -0
  6. data/app/controllers/masks/rails/base_controller.rb +13 -0
  7. data/app/controllers/masks/rails/handshakes_controller.rb +86 -0
  8. data/app/controllers/masks/rails/sessions_controller.rb +118 -0
  9. data/app/views/layouts/masks/rails/plain.html.erb +47 -0
  10. data/app/views/masks/rails/handshakes/refused.html.erb +12 -0
  11. data/app/views/masks/rails/handshakes/show.html.erb +40 -0
  12. data/config/routes.rb +11 -82
  13. data/lib/generators/masks/install/install_generator.rb +35 -22
  14. data/lib/generators/masks/install/templates/masks.rb.tt +38 -0
  15. data/lib/masks/client/claims.rb +144 -0
  16. data/lib/masks/client/errors.rb +60 -0
  17. data/lib/masks/client/handshake.rb +104 -0
  18. data/lib/masks/client/http.rb +96 -0
  19. data/lib/masks/client/introspection.rb +29 -0
  20. data/lib/masks/client/issuer.rb +92 -0
  21. data/lib/masks/client/pkce.rb +27 -0
  22. data/lib/masks/client/rack.rb +62 -0
  23. data/lib/masks/client/registration.rb +115 -0
  24. data/lib/masks/client/registry.rb +25 -0
  25. data/lib/masks/client/resource.rb +92 -0
  26. data/lib/masks/client/session.rb +146 -0
  27. data/lib/masks/client/stores.rb +40 -0
  28. data/lib/masks/client/tokens.rb +70 -0
  29. data/lib/masks/client/tracker.rb +122 -0
  30. data/lib/masks/client/verifier.rb +42 -0
  31. data/lib/masks/client.rb +51 -0
  32. data/lib/masks/rails/authentication.rb +260 -0
  33. data/lib/masks/rails/configurable.rb +11 -0
  34. data/lib/masks/rails/configuration.rb +184 -0
  35. data/lib/masks/rails/credentials.rb +60 -0
  36. data/lib/masks/rails/engine.rb +20 -0
  37. data/lib/masks/rails/protected_resource.rb +51 -0
  38. data/lib/masks/rails.rb +10 -0
  39. data/lib/masks/version.rb +1 -3
  40. data/lib/masks.rb +3 -183
  41. metadata +48 -416
  42. data/MIT-LICENSE +0 -20
  43. data/Rakefile +0 -11
  44. data/app/assets/builds/masks/application.css +0 -1
  45. data/app/assets/builds/masks/application.js +0 -8549
  46. data/app/assets/builds/masks/application.js.map +0 -7
  47. data/app/assets/images/masks.png +0 -0
  48. data/app/assets/javascripts/application.js +0 -2
  49. data/app/assets/javascripts/controllers/application.js +0 -9
  50. data/app/assets/javascripts/controllers/emails_controller.js +0 -28
  51. data/app/assets/javascripts/controllers/index.js +0 -21
  52. data/app/assets/javascripts/controllers/keys_controller.js +0 -20
  53. data/app/assets/javascripts/controllers/recover_controller.js +0 -21
  54. data/app/assets/javascripts/controllers/recover_password_controller.js +0 -21
  55. data/app/assets/javascripts/controllers/session_controller.js +0 -94
  56. data/app/assets/javascripts/controllers/table_controller.js +0 -15
  57. data/app/assets/manifest.js +0 -2
  58. data/app/assets/masks_manifest.js +0 -2
  59. data/app/assets/stylesheets/application.css +0 -34
  60. data/app/controllers/concerns/masks/controller.rb +0 -114
  61. data/app/controllers/masks/actors_controller.rb +0 -15
  62. data/app/controllers/masks/application_controller.rb +0 -35
  63. data/app/controllers/masks/backup_codes_controller.rb +0 -34
  64. data/app/controllers/masks/debug_controller.rb +0 -9
  65. data/app/controllers/masks/devices_controller.rb +0 -20
  66. data/app/controllers/masks/emails_controller.rb +0 -60
  67. data/app/controllers/masks/error_controller.rb +0 -14
  68. data/app/controllers/masks/keys_controller.rb +0 -45
  69. data/app/controllers/masks/manage/actors_controller.rb +0 -83
  70. data/app/controllers/masks/manage/base_controller.rb +0 -20
  71. data/app/controllers/masks/manage/clients_controller.rb +0 -84
  72. data/app/controllers/masks/manage/dashboard_controller.rb +0 -15
  73. data/app/controllers/masks/manage/devices_controller.rb +0 -19
  74. data/app/controllers/masks/one_time_code_controller.rb +0 -49
  75. data/app/controllers/masks/openid/authorizations_controller.rb +0 -45
  76. data/app/controllers/masks/openid/discoveries_controller.rb +0 -55
  77. data/app/controllers/masks/openid/tokens_controller.rb +0 -45
  78. data/app/controllers/masks/openid/userinfo_controller.rb +0 -28
  79. data/app/controllers/masks/passwords_controller.rb +0 -33
  80. data/app/controllers/masks/recoveries_controller.rb +0 -43
  81. data/app/controllers/masks/sessions_controller.rb +0 -53
  82. data/app/helpers/masks/application_helper.rb +0 -49
  83. data/app/jobs/masks/application_job.rb +0 -7
  84. data/app/jobs/masks/expire_actors_job.rb +0 -15
  85. data/app/jobs/masks/expire_recoveries_job.rb +0 -15
  86. data/app/mailers/masks/actor_mailer.rb +0 -22
  87. data/app/mailers/masks/application_mailer.rb +0 -15
  88. data/app/models/concerns/masks/access.rb +0 -162
  89. data/app/models/concerns/masks/actor.rb +0 -132
  90. data/app/models/concerns/masks/adapter.rb +0 -68
  91. data/app/models/concerns/masks/role.rb +0 -9
  92. data/app/models/concerns/masks/scoped.rb +0 -54
  93. data/app/models/masks/access/actor_password.rb +0 -21
  94. data/app/models/masks/access/actor_scopes.rb +0 -18
  95. data/app/models/masks/access/actor_signup.rb +0 -21
  96. data/app/models/masks/actors/anonymous.rb +0 -40
  97. data/app/models/masks/actors/system.rb +0 -24
  98. data/app/models/masks/adapters/active_record.rb +0 -85
  99. data/app/models/masks/application_model.rb +0 -15
  100. data/app/models/masks/application_record.rb +0 -8
  101. data/app/models/masks/check.rb +0 -192
  102. data/app/models/masks/credential.rb +0 -166
  103. data/app/models/masks/credentials/access_token.rb +0 -60
  104. data/app/models/masks/credentials/backup_code.rb +0 -30
  105. data/app/models/masks/credentials/device.rb +0 -59
  106. data/app/models/masks/credentials/email.rb +0 -48
  107. data/app/models/masks/credentials/factor2.rb +0 -71
  108. data/app/models/masks/credentials/key.rb +0 -38
  109. data/app/models/masks/credentials/last_login.rb +0 -12
  110. data/app/models/masks/credentials/masquerade.rb +0 -32
  111. data/app/models/masks/credentials/nickname.rb +0 -63
  112. data/app/models/masks/credentials/one_time_code.rb +0 -34
  113. data/app/models/masks/credentials/password.rb +0 -28
  114. data/app/models/masks/credentials/recovery.rb +0 -71
  115. data/app/models/masks/credentials/return_to.rb +0 -27
  116. data/app/models/masks/credentials/session.rb +0 -67
  117. data/app/models/masks/device.rb +0 -30
  118. data/app/models/masks/error.rb +0 -51
  119. data/app/models/masks/event.rb +0 -14
  120. data/app/models/masks/mask.rb +0 -266
  121. data/app/models/masks/openid/authorization.rb +0 -116
  122. data/app/models/masks/openid/token.rb +0 -56
  123. data/app/models/masks/rails/actor.rb +0 -212
  124. data/app/models/masks/rails/actor_role.rb +0 -12
  125. data/app/models/masks/rails/device.rb +0 -47
  126. data/app/models/masks/rails/email.rb +0 -96
  127. data/app/models/masks/rails/key.rb +0 -61
  128. data/app/models/masks/rails/openid/access_token.rb +0 -55
  129. data/app/models/masks/rails/openid/authorization.rb +0 -45
  130. data/app/models/masks/rails/openid/client.rb +0 -186
  131. data/app/models/masks/rails/openid/id_token.rb +0 -43
  132. data/app/models/masks/rails/recovery.rb +0 -116
  133. data/app/models/masks/rails/role.rb +0 -20
  134. data/app/models/masks/rails/scope.rb +0 -15
  135. data/app/models/masks/session.rb +0 -447
  136. data/app/models/masks/sessions/access.rb +0 -27
  137. data/app/models/masks/sessions/inline.rb +0 -16
  138. data/app/models/masks/sessions/request.rb +0 -42
  139. data/app/resources/masks/actor_resource.rb +0 -9
  140. data/app/resources/masks/session_resource.rb +0 -15
  141. data/app/views/layouts/masks/application.html.erb +0 -17
  142. data/app/views/layouts/masks/mailer.html.erb +0 -17
  143. data/app/views/layouts/masks/mailer.text.erb +0 -1
  144. data/app/views/layouts/masks/manage.html.erb +0 -42
  145. data/app/views/masks/actor_mailer/recover_credentials.html.erb +0 -32
  146. data/app/views/masks/actor_mailer/recover_credentials.text.erb +0 -1
  147. data/app/views/masks/actor_mailer/verify_email.html.erb +0 -33
  148. data/app/views/masks/actor_mailer/verify_email.text.erb +0 -8
  149. data/app/views/masks/actors/current.html.erb +0 -145
  150. data/app/views/masks/application/_header.html.erb +0 -30
  151. data/app/views/masks/backup_codes/new.html.erb +0 -117
  152. data/app/views/masks/emails/new.html.erb +0 -109
  153. data/app/views/masks/emails/verify.html.erb +0 -51
  154. data/app/views/masks/keys/new.html.erb +0 -127
  155. data/app/views/masks/manage/actors/index.html.erb +0 -104
  156. data/app/views/masks/manage/actors/show.html.erb +0 -172
  157. data/app/views/masks/manage/clients/index.html.erb +0 -102
  158. data/app/views/masks/manage/clients/show.html.erb +0 -156
  159. data/app/views/masks/manage/dashboard/index.html.erb +0 -10
  160. data/app/views/masks/manage/devices/index.html.erb +0 -47
  161. data/app/views/masks/one_time_code/new.html.erb +0 -167
  162. data/app/views/masks/openid/authorizations/error.html.erb +0 -23
  163. data/app/views/masks/openid/authorizations/new.html.erb +0 -46
  164. data/app/views/masks/passwords/edit.html.erb +0 -71
  165. data/app/views/masks/recoveries/new.html.erb +0 -69
  166. data/app/views/masks/recoveries/password.html.erb +0 -63
  167. data/app/views/masks/sessions/new.html.erb +0 -152
  168. data/config/brakeman.ignore +0 -28
  169. data/config/initializers/inflections.rb +0 -5
  170. data/config/locales/en.yml +0 -307
  171. data/db/migrate/20231205173845_create_actors.rb +0 -94
  172. data/db/migrate/20240329182422_support_openid.rb +0 -64
  173. data/lib/generators/masks/install/USAGE +0 -8
  174. data/lib/generators/masks/install/templates/initializer.rb +0 -5
  175. data/lib/generators/masks/install/templates/masks.json +0 -9
  176. data/lib/masks/configuration.rb +0 -249
  177. data/lib/masks/engine.rb +0 -25
  178. data/lib/masks/middleware.rb +0 -70
  179. data/lib/tasks/masks_tasks.rake +0 -72
  180. data/masks.json +0 -315
data/masks.json DELETED
@@ -1,315 +0,0 @@
1
- {
2
- "name": "masks",
3
- "url": "http://localhost:3000",
4
- "title": "masks",
5
- "signups": true,
6
- "nickname": {
7
- "format": "^[\\w]+$",
8
- "length": { "min": 5, "max": 36 }
9
- },
10
- "password": {
11
- "length": { "min": 8, "max": 128 }
12
- },
13
- "masks": [
14
- {
15
- "skip": true,
16
- "request": {
17
- "method": "get",
18
- "path": ["/assets/*", "/debug"]
19
- }
20
- },
21
- {
22
- "type": "anon",
23
- "request": {
24
- "method": "get",
25
- "path": "/anon"
26
- },
27
- "anon": true,
28
- "fail": false
29
- },
30
- {
31
- "type": "access_token",
32
- "request": {
33
- "method": ["get", "post"],
34
- "path": "/userinfo"
35
- }
36
- },
37
- {
38
- "skip": true,
39
- "request": {
40
- "method": "post",
41
- "path": "/token"
42
- }
43
- },
44
- {
45
- "skip": true,
46
- "request": {
47
- "method": "get",
48
- "path": "/client/*"
49
- }
50
- },
51
- {
52
- "type": "api",
53
- "request": {
54
- "path": "*",
55
- "header": "Authorization"
56
- }
57
- },
58
- {
59
- "type": "authenticate",
60
- "request": {
61
- "method": "post",
62
- "path": "/session"
63
- },
64
- "fail": false
65
- },
66
- {
67
- "type": "session",
68
- "request": {
69
- "method": ["get", "delete"],
70
- "path": "/session"
71
- },
72
- "fail": false,
73
- "return_to": false
74
- },
75
- {
76
- "type": "recovery",
77
- "request": {
78
- "method": ["get", "post"],
79
- "path": ["/recovery", "/recover"]
80
- },
81
- "fail": false
82
- },
83
- {
84
- "type": "sudo",
85
- "request": {
86
- "method": ["post"],
87
- "path": "/emails"
88
- },
89
- "fail": false
90
- },
91
- {
92
- "type": "session",
93
- "request": {
94
- "method": ["delete", "patch"],
95
- "path": "/emails"
96
- },
97
- "fail": false
98
- },
99
- {
100
- "type": "session",
101
- "request": {
102
- "method": "get",
103
- "path": "/email/*/verify"
104
- },
105
- "fail": false
106
- },
107
- {
108
- "type": "sudo",
109
- "request": {
110
- "method": ["post", "delete"],
111
- "path": "/one-time-codes"
112
- },
113
- "fail": false
114
- },
115
- {
116
- "type": "sudo",
117
- "request": {
118
- "method": ["post"],
119
- "path": "/backup-codes"
120
- },
121
- "fail": false
122
- },
123
- {
124
- "type": "session",
125
- "access": ["actor.password"],
126
- "request": {
127
- "method": ["get"],
128
- "path": "/password"
129
- }
130
- },
131
- {
132
- "type": "sudo",
133
- "access": ["actor.password"],
134
- "request": {
135
- "method": ["post"],
136
- "path": "/password"
137
- },
138
- "fail": false
139
- },
140
- {
141
- "type": "session",
142
- "request": {
143
- "path": "/cable",
144
- "method": "get"
145
- }
146
- },
147
- {
148
- "type": "session",
149
- "request": {
150
- "path": "/private"
151
- }
152
- },
153
- {
154
- "type": "sudo",
155
- "request": {
156
- "method": "patch",
157
- "path": "/actor"
158
- }
159
- },
160
- {
161
- "type": "sudo",
162
- "request": {
163
- "method": "post",
164
- "path": "/session",
165
- "param": "sudo"
166
- }
167
- },
168
- {
169
- "type": "manage",
170
- "request": {
171
- "path": ["/manage", "/manage/*"]
172
- },
173
- "access": ["actor.password", "actor.signup"],
174
- "fail": "/session"
175
- },
176
- {
177
- "type": "session",
178
- "request": {
179
- "method": "get",
180
- "path": "/authorize"
181
- },
182
- "fail": false
183
- },
184
- {
185
- "type": "session",
186
- "request": {
187
- "path": "*"
188
- },
189
- "fail": "/session"
190
- },
191
- {
192
- "name": "cli",
193
- "type": "masquerade",
194
- "access": ["actor.signup", "actor.password", "actor.scopes"]
195
- },
196
- {
197
- "access": "actor.signup"
198
- },
199
- {
200
- "access": "actor.password"
201
- },
202
- {
203
- "access": "actor.scopes"
204
- }
205
- ],
206
- "types": {
207
- "anon": {
208
- "checks": null,
209
- "credentials": null
210
- },
211
- "public": {
212
- "checks": {
213
- "actor": {
214
- "lifetime": "P1M",
215
- "optional": true
216
- }
217
- },
218
- "credentials": ["Session"]
219
- },
220
- "authenticate": {
221
- "checks": {
222
- "actor": {
223
- "lifetime": "PT12H"
224
- },
225
- "password": {
226
- "lifetime": "PT12H"
227
- },
228
- "factor2": {
229
- "lifetime": "PT12H",
230
- "optional": true
231
- },
232
- "device": {}
233
- },
234
- "credentials": [
235
- "Email",
236
- "Nickname",
237
- "Session",
238
- "Password",
239
- "BackupCode",
240
- "OneTimeCode",
241
- "LastLogin",
242
- "Device"
243
- ]
244
- },
245
- "sudo": {
246
- "checks": {
247
- "actor": {
248
- "lifetime": "PT12H"
249
- },
250
- "password": {},
251
- "device": {}
252
- },
253
- "credentials": ["Session", "Password", "Device"]
254
- },
255
- "session": {
256
- "checks": {
257
- "actor": {
258
- "lifetime": "PT12H"
259
- },
260
- "password": {
261
- "lifetime": "PT12H"
262
- },
263
- "factor2": {
264
- "lifetime": "PT12H",
265
- "optional": true
266
- },
267
- "device": {}
268
- },
269
- "credentials": ["Session", "Device", "ReturnTo"]
270
- },
271
- "manage": {
272
- "checks": {
273
- "actor": {
274
- "lifetime": "PT12H"
275
- },
276
- "password": {
277
- "lifetime": "PT12H"
278
- },
279
- "factor2": {
280
- "lifetime": "PT12H",
281
- "optional": true
282
- },
283
- "device": {}
284
- },
285
- "credentials": ["Session", "Device", "ReturnTo"],
286
- "scopes": ["masks:manage"]
287
- },
288
- "recovery": {
289
- "checks": {
290
- "recovery": {}
291
- },
292
- "credentials": ["Session", "Recovery", "Device"]
293
- },
294
- "access_token": {
295
- "checks": {
296
- "access_token": {},
297
- "device": {}
298
- },
299
- "credentials": ["AccessToken", "Device"]
300
- },
301
- "api": {
302
- "checks": {
303
- "key": {},
304
- "device": {}
305
- },
306
- "credentials": ["Key", "Device"]
307
- },
308
- "masquerade": {
309
- "checks": {
310
- "actor": {}
311
- },
312
- "credentials": ["Masquerade"]
313
- }
314
- }
315
- }