From 36e4a653f3b2c6d4fe73d709c26ea94d7e6a12e6 Mon Sep 17 00:00:00 2001 From: Jamil Date: Tue, 13 May 2025 21:00:50 -0700 Subject: [PATCH] feat(apple/macOS): Add config to hide admin portal link (#9125) Adds a `hideAdminPortalMenuItem` bool to our configuration to allow admins to hide this from users. Related: #4505 --- .../Sources/FirezoneKit/Models/Configuration.swift | 5 +++++ .../FirezoneKit/Sources/FirezoneKit/Views/MenuBar.swift | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Configuration.swift b/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Configuration.swift index d796b353c..8094ea529 100644 --- a/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Configuration.swift +++ b/swift/apple/FirezoneKit/Sources/FirezoneKit/Models/Configuration.swift @@ -19,6 +19,7 @@ public class Configuration: Codable { public static let accountSlug = "accountSlug" public static let internetResourceEnabled = "internetResourceEnabled" public static let firezoneId = "firezoneId" + public static let hideAdminPortalMenuItem = "hideAdminPortalMenuItem" } public var authURL: String? @@ -28,6 +29,7 @@ public class Configuration: Codable { public var logFilter: String? public var accountSlug: String? public var internetResourceEnabled: Bool? + public var hideAdminPortalMenuItem: Bool? private var overriddenKeys: Set = [] @@ -42,6 +44,9 @@ public class Configuration: Codable { setValue(forKey: Keys.internetResourceEnabled, from: managedDict, and: userDict) { [weak self] in self?.internetResourceEnabled = $0 } + setValue(forKey: Keys.hideAdminPortalMenuItem, from: managedDict, and: userDict) { [weak self] in + self?.hideAdminPortalMenuItem = $0 + } } func isOverridden(_ key: String) -> Bool { diff --git a/swift/apple/FirezoneKit/Sources/FirezoneKit/Views/MenuBar.swift b/swift/apple/FirezoneKit/Sources/FirezoneKit/Views/MenuBar.swift index 49ee17980..ca0a5da58 100644 --- a/swift/apple/FirezoneKit/Sources/FirezoneKit/Views/MenuBar.swift +++ b/swift/apple/FirezoneKit/Sources/FirezoneKit/Views/MenuBar.swift @@ -422,7 +422,9 @@ public final class MenuBar: NSObject, ObservableObject { } menu.addItem(aboutMenuItem) - menu.addItem(adminPortalMenuItem) + if !(store.configuration?.hideAdminPortalMenuItem ?? false) { + menu.addItem(adminPortalMenuItem) + } menu.addItem(helpMenuItem) menu.addItem(settingsMenuItem) menu.addItem(NSMenuItem.separator())