remoteRF-server 1.1.0.dev43__py3-none-any.whl → 1.1.0.dev45__py3-none-any.whl

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.
@@ -933,7 +933,7 @@ class Tunnel:
933
933
  # Background agent
934
934
  # -----------------------------
935
935
 
936
- POLL_PENDING_SECONDS = 600
936
+ POLL_PENDING_SECONDS = 30 # approval shows up within a tick, not ten minutes
937
937
  POLL_ACTIVE_SECONDS = 3600
938
938
  LIVENESS_SECONDS = 300
939
939
  STATUS_SECONDS = 3600
@@ -428,9 +428,20 @@ def make_enrollment_codes_local(session) -> None:
428
428
  if count is None:
429
429
  return
430
430
 
431
- group_id = _prompt_int("Group ID to attach codes to? (c to cancel): ", min_v=0)
432
- if group_id is None:
433
- return
431
+ groups = {int(g["group_id"]): g for g in user_group_handler.get_all_user_groups(include_users=False) or []}
432
+ if not groups:
433
+ print("No user groups yet. Create one first with `groups create`.")
434
+ return
435
+ print("Your groups:")
436
+ for gid, g in sorted(groups.items()):
437
+ print(f" {gid:>3} {g['group_name']}" + (" (LAN only)" if g.get("lan_only") else ""))
438
+ while True:
439
+ group_id = _prompt_int("Group ID to attach codes to? (c to cancel): ", min_v=0)
440
+ if group_id is None:
441
+ return
442
+ if group_id in groups:
443
+ break
444
+ print(f"No group with id {group_id}; pick one from the list.")
434
445
 
435
446
  char_count = _prompt_int("Characters per code name? [10] (c to cancel): ", default=10, min_v=4)
436
447
  if char_count is None:
@@ -483,8 +494,11 @@ def make_enrollment_codes_local(session) -> None:
483
494
  uses=uses,
484
495
  duration_sec=duration_sec,
485
496
  )
486
- print(f"\n{result}")
487
497
  created = [r for r in user_group_handler.get_all_enrollment_codes() or [] if r.get("code_name") in code_names]
498
+ if not created:
499
+ print(f"\nNo codes were created{f': {result}' if result else ''}.")
500
+ return
501
+ print(f"\n{result}")
488
502
  rows = _invites(created)
489
503
  if rows and rows[0]["invite"] == rows[0]["code_name"]:
490
504
  print(f"Hand these out as is; users connect first with: remoterf -c -a {lan_endpoint() or '<lan address>'}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: remoteRF-server
3
- Version: 1.1.0.dev43
3
+ Version: 1.1.0.dev45
4
4
  Summary: RemoteRF server-side control package
5
5
  License: GPL-3.0-or-later
6
6
  Classifier: Programming Language :: Python :: 3
@@ -58,12 +58,12 @@ remoteRF_server/server/control.py,sha256=Uq1Fk0zIoHHX_EXfz3OuNle8urvO_UhAiB5Lk5c
58
58
  remoteRF_server/server/device_manager.py,sha256=PPuCwlPSmjfVpCqy_hCaOr9WvFgE8mqtLMhWOAgXNDA,39281
59
59
  remoteRF_server/server/direct_path.py,sha256=CQs0uPTANJq6Bn-TzsV0APmD3hYKH8xYvczXZZk1OXk,15229
60
60
  remoteRF_server/server/dynamic_v2.py,sha256=AMhQEFhNAvCNcF-PdfCCQQLmeoaR7s1Os8et1KFGn_8,70814
61
- remoteRF_server/server/global_onboarding.py,sha256=boLAKXCKvcsIY3TDiFwduMaHdDMB9Cr104MyWJYZ-BA,39891
61
+ remoteRF_server/server/global_onboarding.py,sha256=NcKG8TYhCJEiaCtdXL1jEgVm-R_xWpOIj5KI4bWfkr0,39942
62
62
  remoteRF_server/server/grpc_server.py,sha256=91FpJubzN_Wfuk6fW_owIEzNCukd333sAGW68FUU8pk,46787
63
63
  remoteRF_server/server/host_dynamic_v2.py,sha256=1rJQwP4knSd0EXkByrSn_ryjLx81f6sp6SNYr_aEass,8105
64
64
  remoteRF_server/server/reservation.py,sha256=BQJLGNVAdKMZu2Lg4DGO9UhuJ0b1GSF8K1DgIOFrYUg,67816
65
65
  remoteRF_server/server/rpc_manager.py,sha256=BDvsTSVRxwNF2ujuMbIb5TYNAUI6AH4xXBuXrb8lltM,17223
66
- remoteRF_server/server/user_group_cli.py,sha256=aZo8sAe_z6kFJfkTH62W4Gm6dKPfjPXtVEUAgvRYwpI,25090
66
+ remoteRF_server/server/user_group_cli.py,sha256=8W3BV-_Wcy3EKapjwNWow8y6xlZYP-y6Ckb2BA1sdR4,25735
67
67
  remoteRF_server/server/user_group_handler.py,sha256=1ax73W_P3H6GDxQS13evwA7G7skIElFVLuS0MFqsFyU,41780
68
68
  remoteRF_server/server/v2_errors.py,sha256=IS3hIhf5tDe7jaOrDAVQPjGBpqAjN7442BlJYgfJo7g,3331
69
69
  remoteRF_server/server/deployment/__init__.py,sha256=YV86uafd8XiGD7sLaqNfO5xxmt5te2R6DUhD-w1lZuY,77
@@ -90,9 +90,9 @@ remoteRF_server/tools/gen_certs.py,sha256=Vbyu8JjRu__UYPVmyCRXt5SOw0Za1HV7g1md3G
90
90
  remoteRF_server/tools/gist_status.py,sha256=SFv2iQgQrIKT9gxKrU-_Dr7S0p0rE4wQM6J3OC6FcoM,4649
91
91
  remoteRF_server/tools/gist_status_testing.py,sha256=IYw7UkPjAUpKDTtIlnYGb5g6SJkwz4TRGUfJJ6f4LhQ,2690
92
92
  remoteRF_server/tools/introspect_uhd.py,sha256=vUpPb0rM9tsHPxWadS3EfMDE-gMd-TvNV0TjrZOQqBY,4531
93
- remoterf_server-1.1.0.dev43.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
94
- remoterf_server-1.1.0.dev43.dist-info/METADATA,sha256=SxovbCoHxBtIyu8IFow5xoWtEtYDU4kMWnVLUsyrL8w,42069
95
- remoterf_server-1.1.0.dev43.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
96
- remoterf_server-1.1.0.dev43.dist-info/entry_points.txt,sha256=_bbKk65PfYi-n6zUjqOiOwcalf_Ws1TCGATIe1TukxE,136
97
- remoterf_server-1.1.0.dev43.dist-info/top_level.txt,sha256=NuYWe8dSx3qdbxshWBwOgx68EHmJ9I8Zvxam4ARsQ_I,30
98
- remoterf_server-1.1.0.dev43.dist-info/RECORD,,
93
+ remoterf_server-1.1.0.dev45.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
94
+ remoterf_server-1.1.0.dev45.dist-info/METADATA,sha256=qnArq0jpxUuzWtEecBK8T0hcOH9uoimCAXbmKGINhxk,42069
95
+ remoterf_server-1.1.0.dev45.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
96
+ remoterf_server-1.1.0.dev45.dist-info/entry_points.txt,sha256=_bbKk65PfYi-n6zUjqOiOwcalf_Ws1TCGATIe1TukxE,136
97
+ remoterf_server-1.1.0.dev45.dist-info/top_level.txt,sha256=NuYWe8dSx3qdbxshWBwOgx68EHmJ9I8Zvxam4ARsQ_I,30
98
+ remoterf_server-1.1.0.dev45.dist-info/RECORD,,