chore(gui-client/linux): fix group name, firezone should be firezone-client (#4889)

Also improved the manual testing checklist a little
This commit is contained in:
Reactor Scram
2024-05-06 09:09:30 -05:00
committed by GitHub
parent 785b829c7a
commit cdebfa6901
6 changed files with 21 additions and 11 deletions

View File

@@ -8,8 +8,9 @@ Best performed on a clean VM
1. Run `scripts/firezone-client-gui-install.sh`
1. Expect "Reboot to finish..." message
1. Expect `grep firezone-client /etc/group` to show the group
1. Expect `systemctl status firezone-client-ipc.service` to show "enabled" and "running"
1. Run the Firezone GUI
1. Expect an error saying that you are not a member of the group `firezone-client`
1. Reboot
1. Expect `groups` to include "firezone-client"
1. Run the Firezone GUI
@@ -23,7 +24,7 @@ Best performed on a clean VM
1. Check "Always..." and click "Open link"
1. Expect a keyring dialog to pop up
1. Enter 'password' for testing purposes
1. Expect "Connected to Firezone" notification
1. Expect "Firezone connected" notification
1. Browse to `https://ifconfig.net`
1. Expect to see the gateway's IP and location
1. Quit Firezone
@@ -33,8 +34,12 @@ Best performed on a clean VM
1. Run the Firezone GUI
1. Expect a keyring dialog to pop up
1. Enter 'password' to unlock the stored token
1. Expect "Connected to Firezone" notification
1. Check the IP again
1. Expect "Firezone connected" notification
1. Check the IP again, expect the gateway's IP
1. Export the logs
1. Expect the zip file to start with "firezone_logs_"
1. Expect `zipinfo` to show a single directory in the root of the zip, to prevent zip bombing
1. Expect two subdirectories in the zip, "connlib", and "app", each with 3 files, totalling 6 files
## Settings tab

View File

@@ -1,5 +1,6 @@
use anyhow::Result;
use clap::{Args, Parser};
use firezone_headless_client::FIREZONE_GROUP;
use std::path::PathBuf;
mod about;
@@ -134,7 +135,7 @@ fn show_error_dialog(error: &gui::Error) -> Result<()> {
gui::Error::DeepLink(deep_link::Error::CantListen) => "Firezone is already running. If it's not responding, force-stop it.".to_string(),
gui::Error::DeepLink(deep_link::Error::Other(error)) => error.to_string(),
gui::Error::Logging(_) => "Logging error".to_string(),
gui::Error::UserNotInFirezoneGroup => "You are not a member of the group `firezone`. Try `sudo adduser $USER firezone` and then reboot".to_string(),
gui::Error::UserNotInFirezoneGroup => format!("You are not a member of the group `{FIREZONE_GROUP}`. Try `sudo adduser $USER {FIREZONE_GROUP}` and then reboot"),
gui::Error::Other(error) => error.to_string(),
};

View File

@@ -561,7 +561,7 @@ impl Controller {
let auth_response =
client::deep_link::parse_auth_callback(url).context("Couldn't parse scheme request")?;
tracing::info!("Got deep link");
tracing::info!("Received deep link over IPC");
// Uses `std::fs`
let token = self.auth.handle_response(auth_response)?;
self.start_session(token)

View File

@@ -1,6 +1,6 @@
//! Implementation, Linux-specific
use super::{Cli, IpcClientMsg, IpcServerMsg, TOKEN_ENV_KEY};
use super::{Cli, IpcClientMsg, IpcServerMsg, FIREZONE_GROUP, TOKEN_ENV_KEY};
use anyhow::{bail, Context as _, Result};
use clap::Parser;
use connlib_client_shared::{file_logger, Callbacks, ResourceDescription, Sockets};
@@ -185,9 +185,9 @@ pub(crate) fn run_ipc_service(cli: Cli) -> Result<()> {
}
pub fn firezone_group() -> Result<nix::unistd::Group> {
let group = nix::unistd::Group::from_name("firezone")
let group = nix::unistd::Group::from_name(FIREZONE_GROUP)
.context("can't get group by name")?
.context("firezone group must exist on the system")?;
.context("`{FIREZONE_GROUP}` group must exist on the system")?;
Ok(group)
}

View File

@@ -30,6 +30,9 @@ pub mod imp_windows;
#[cfg(target_os = "windows")]
pub use imp_windows as imp;
/// Only used on Linux
pub const FIREZONE_GROUP: &str = "firezone-client";
/// Output of `git describe` at compile time
/// e.g. `1.0.0-pre.4-20-ged5437c88-modified` where:
///

View File

@@ -3,6 +3,7 @@
set -euox pipefail
BUNDLE_ID="dev.firezone.client"
FZ_GROUP="firezone-client"
#DEVICE_ID_PATH="/var/lib/$BUNDLE_ID/config/firezone-id.json"
LOGS_PATH="$HOME/.cache/$BUNDLE_ID/data/logs"
@@ -22,8 +23,8 @@ cargo install --quiet --locked dump_syms minidump-stackwalk
dump_syms ../target/debug/firezone-gui-client --output "$SYMS_PATH"
ls -lash ../target/debug
sudo groupadd --force firezone
sudo adduser "$USER" firezone
sudo groupadd --force "$FZ_GROUP"
sudo adduser "$USER" "$FZ_GROUP"
function run_fz_gui() {
pwd