Commit 6a5ca6f
committed
fix(signal): align validation rules and add toggle_platform support
Frontend validation (ChannelSettingCard.tsx):
- Update E.164 regex to /^\+[1-9]\d{5,13}$/ for true E.164 compliance
- Enforce 7-15 digits total (6-14 after '+'), first digit 1-9
- Update error message and help text to reflect correct range
Backend validation (target.rs):
- Change is_valid_e164 to require 6-14 digits after '+' (7-15 total)
- normalize_signal_target: Reuse is_valid_e164() for bare digit validation
- parse_signal_target_parts: Add empty segment checks to all match arms
- Reject empty uuid, group_id, phone, instance, or single segments
- Prevents invalid targets like 'uuid:' or 'signal:work:'
API state (state.rs):
- Add signal_permissions field to ApiState
- Add set_signal_permissions() method for hot-reload support
toggle_platform (messaging.rs):
- Add Signal case to toggle_platform for runtime adapter start/stop
- Support both default and named Signal instances
- Update existing ArcSwap pointee instead of creating new one when permissions exist
send_message_to_another_channel:
- parse_implicit_signal_shorthand: Use is_valid_e164() for strict validation
- Add specific error messages for each validation failure case
- Add early error for ambiguous Signal adapter selection when multiple
named instances exist without a default, preventing broadcast() failure
- Fix adapter resolution to distinguish default 'signal' from named adapters
Tests (messaging.rs):
- Update E.164 tests for 6-14 digit range (7-15 total)1 parent 7c7d5b1 commit 6a5ca6f
5 files changed
Lines changed: 206 additions & 75 deletions
File tree
- interface/src/components
- src
- api
- messaging
- tools
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
648 | 648 | | |
649 | 649 | | |
650 | 650 | | |
651 | | - | |
| 651 | + | |
652 | 652 | | |
653 | | - | |
| 653 | + | |
654 | 654 | | |
655 | 655 | | |
656 | | - | |
| 656 | + | |
657 | 657 | | |
658 | 658 | | |
659 | 659 | | |
| |||
973 | 973 | | |
974 | 974 | | |
975 | 975 | | |
976 | | - | |
| 976 | + | |
977 | 977 | | |
978 | 978 | | |
979 | 979 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| |||
194 | 195 | | |
195 | 196 | | |
196 | 197 | | |
197 | | - | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
198 | 201 | | |
199 | 202 | | |
200 | 203 | | |
| |||
519 | 522 | | |
520 | 523 | | |
521 | 524 | | |
522 | | - | |
| 525 | + | |
523 | 526 | | |
524 | 527 | | |
525 | 528 | | |
| |||
592 | 595 | | |
593 | 596 | | |
594 | 597 | | |
| 598 | + | |
595 | 599 | | |
596 | 600 | | |
597 | 601 | | |
| |||
605 | 609 | | |
606 | 610 | | |
607 | 611 | | |
608 | | - | |
| 612 | + | |
| 613 | + | |
609 | 614 | | |
610 | 615 | | |
611 | 616 | | |
| |||
617 | 622 | | |
618 | 623 | | |
619 | 624 | | |
| 625 | + | |
620 | 626 | | |
621 | 627 | | |
622 | 628 | | |
| |||
1161 | 1167 | | |
1162 | 1168 | | |
1163 | 1169 | | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
1164 | 1240 | | |
1165 | 1241 | | |
1166 | 1242 | | |
| |||
1877 | 1953 | | |
1878 | 1954 | | |
1879 | 1955 | | |
1880 | | - | |
| 1956 | + | |
1881 | 1957 | | |
1882 | | - | |
| 1958 | + | |
1883 | 1959 | | |
1884 | | - | |
| 1960 | + | |
1885 | 1961 | | |
1886 | 1962 | | |
1887 | 1963 | | |
1888 | 1964 | | |
1889 | 1965 | | |
1890 | 1966 | | |
1891 | 1967 | | |
1892 | | - | |
1893 | | - | |
| 1968 | + | |
| 1969 | + | |
1894 | 1970 | | |
1895 | 1971 | | |
1896 | 1972 | | |
| |||
1907 | 1983 | | |
1908 | 1984 | | |
1909 | 1985 | | |
1910 | | - | |
| 1986 | + | |
1911 | 1987 | | |
1912 | 1988 | | |
1913 | | - | |
| 1989 | + | |
| 1990 | + | |
1914 | 1991 | | |
1915 | | - | |
1916 | 1992 | | |
1917 | 1993 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | |
| |||
96 | 98 | | |
97 | 99 | | |
98 | 100 | | |
| 101 | + | |
| 102 | + | |
99 | 103 | | |
100 | 104 | | |
101 | 105 | | |
| |||
316 | 320 | | |
317 | 321 | | |
318 | 322 | | |
| 323 | + | |
319 | 324 | | |
320 | 325 | | |
321 | 326 | | |
| |||
786 | 791 | | |
787 | 792 | | |
788 | 793 | | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
789 | 799 | | |
790 | 800 | | |
791 | 801 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
275 | 275 | | |
276 | 276 | | |
277 | 277 | | |
278 | | - | |
279 | | - | |
| 278 | + | |
| 279 | + | |
280 | 280 | | |
281 | 281 | | |
282 | 282 | | |
283 | | - | |
| 283 | + | |
284 | 284 | | |
285 | 285 | | |
286 | 286 | | |
| |||
334 | 334 | | |
335 | 335 | | |
336 | 336 | | |
337 | | - | |
338 | | - | |
339 | | - | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
340 | 343 | | |
341 | 344 | | |
342 | 345 | | |
| |||
400 | 403 | | |
401 | 404 | | |
402 | 405 | | |
403 | | - | |
| 406 | + | |
404 | 407 | | |
405 | 408 | | |
406 | 409 | | |
407 | | - | |
| 410 | + | |
408 | 411 | | |
409 | 412 | | |
410 | 413 | | |
411 | 414 | | |
412 | | - | |
413 | | - | |
| 415 | + | |
| 416 | + | |
414 | 417 | | |
415 | 418 | | |
416 | | - | |
417 | | - | |
418 | | - | |
419 | | - | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
420 | 428 | | |
421 | 429 | | |
422 | 430 | | |
423 | 431 | | |
424 | | - | |
425 | | - | |
426 | | - | |
427 | | - | |
428 | | - | |
429 | 432 | | |
430 | | - | |
431 | | - | |
432 | | - | |
433 | | - | |
434 | | - | |
435 | | - | |
436 | | - | |
437 | | - | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
438 | 445 | | |
439 | | - | |
| 446 | + | |
440 | 447 | | |
441 | 448 | | |
442 | 449 | | |
443 | 450 | | |
444 | 451 | | |
445 | 452 | | |
446 | | - | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
447 | 456 | | |
448 | 457 | | |
449 | 458 | | |
450 | 459 | | |
451 | 460 | | |
452 | 461 | | |
453 | | - | |
454 | | - | |
455 | | - | |
456 | | - | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
457 | 468 | | |
458 | 469 | | |
459 | 470 | | |
| |||
0 commit comments