mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
On macOS, there are two steps the user needs to allow for the VPN profile to be active: enable the system extension and allow the VPN profile. The system extension must be installed before the VPN profile can be allowed. This PR updates the flow so that the user is prompted to handle both of those serially. Before, we tried to install the system extension on launch and prompt the user to allow the profile at the same time. This PR includes fixes to handle the edge cases where the user removes the profile and/or extension while the tunnel is connected. When that happens, the `NEVPNStatus` becomes `.invalid` and we replace the `Sign In` link in the Menubar with a prompt to restart the grant permissions flow. On iOS, the behavior is similar -- we move the view back to the GrantPermissionsView. Lastly, some refactoring is included to use consistent naming for `VPNProfile` instead of `TunnelManager` to more closely match what Apple calls these things.