diff --git a/History.md b/History.md
index 6342a29a..111a3704 100644
--- a/History.md
+++ b/History.md
@@ -1,5 +1,42 @@
# What's New In XCreds #
+## XCreds 4.1 ##
+
+Customization of Menu
+
+Adding Menu Items
+
+Cloud + Active Directory
+
+SMB Share Mounting
+
+Admin Removal
+
+
+## XCreds 4.0 ##
+
+Select Existing User Account During Account Creation
+
+Allow Admin to Reset User Password at Login
+
+Key Combination for Showing Standard and Mac Login Window
+
+Account Alias
+
+Saving Groups to Account Attributes
+
+CreateAdminIfGroupMember Checked At Each Login
+
+Add Arbitrary Claims to Local DS User Account
+
+Refactored Preferences for ROPG
+
+Allowed Users
+
+Other New Features and Fixes
+
+
+
## XCreds 3.3 ##
### Select Existing User Account During Account Creation ###
diff --git a/Profile Manifest/com.twocanoes.xcreds.plist b/Profile Manifest/com.twocanoes.xcreds.plist
index 362b13c8..9c3762cf 100644
--- a/Profile Manifest/com.twocanoes.xcreds.plist
+++ b/Profile Manifest/com.twocanoes.xcreds.plist
@@ -5,7 +5,7 @@
pfm_app_url
https://github.com/twocanoes/xcreds
pfm_description
- XCreds 4.1 (6304) OAuth Settings
+ XCreds 4.1 (6311) OAuth Settings
pfm_documentation_url
https://twocanoes.com/knowledge-base/xcreds-admin-guide/#preferences
pfm_domain
diff --git a/XCreds/TokenManager.swift b/XCreds/TokenManager.swift
index f604cbc9..e25e01b3 100644
--- a/XCreds/TokenManager.swift
+++ b/XCreds/TokenManager.swift
@@ -75,8 +75,7 @@ class TokenManager: OIDCLiteDelegate,DSQueryable {
additionalParameters = ["access_type":"offline"]
}
-
-
+
let oidcLite = OIDCLite(discoveryURL: DefaultsOverride.standardOverride.string(forKey: PrefKeys.discoveryURL.rawValue) ?? "NONE", clientID: clientID ?? "NONE", clientSecret: clientSecret, redirectURI: DefaultsOverride.standardOverride.string(forKey: PrefKeys.redirectURI.rawValue), scopes: scopes, additionalParameters:additionalParameters )
oidcLite.getEndpoints()
oidcLocal = oidcLite
diff --git a/XCreds/WebViewController.swift b/XCreds/WebViewController.swift
index fa49a44b..6a0d6523 100644
--- a/XCreds/WebViewController.swift
+++ b/XCreds/WebViewController.swift
@@ -291,7 +291,7 @@ extension WebViewController: WKNavigationDelegate {
}
func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
- TCSLogWithMark("Redirect error. Probably safe to ignore since we don't actually follow the redirect:\(error.localizedDescription)")
+ TCSLogWithMark("Redirect error. if the error is \"Could not connect to the server.\", it is probably safe to ignore. If the error is \"unsupported URL\", please check your redirectURL in prefs matches the one defined in your OIDC app. Error: \(error.localizedDescription)")
}
func webView(_ webView: WKWebView, didReceiveServerRedirectForProvisionalNavigation navigation: WKNavigation!) {
TCSLogWithMark("WebDel:: Did Receive Redirect for: \(webView.url?.absoluteString ?? "None")")
diff --git a/xCreds.xcodeproj/project.pbxproj b/xCreds.xcodeproj/project.pbxproj
index fb0e13c2..a2e125b5 100644
--- a/xCreds.xcodeproj/project.pbxproj
+++ b/xCreds.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 55;
+ objectVersion = 60;
objects = {
/* Begin PBXBuildFile section */
@@ -29,6 +29,7 @@
761B486928A34CC900C6A02B /* LoginProgressWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 761B486728A34CC900C6A02B /* LoginProgressWindowController.xib */; };
761B486A28A34CC900C6A02B /* LoginProgressWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761B486828A34CC900C6A02B /* LoginProgressWindowController.swift */; };
761B486C28A3575000C6A02B /* XCredsLoginDone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761B486B28A3575000C6A02B /* XCredsLoginDone.swift */; };
+ 762177E62B7144460051B756 /* OIDCLite in Frameworks */ = {isa = PBXBuildFile; productRef = 762177E52B7144460051B756 /* OIDCLite */; };
7623384C2B53029D00F2D714 /* ShareMounterMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 763DDF152B4F100D000D48CC /* ShareMounterMenu.swift */; };
7623384D2B53029D00F2D714 /* ShareMounter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76C4ACBE2B3D0F8D003B3605 /* ShareMounter.swift */; };
762761602B294A7C0067D1D4 /* icon_128x128.png in Resources */ = {isa = PBXBuildFile; fileRef = 7614D03B2B181A5D006EAF36 /* icon_128x128.png */; };
@@ -140,7 +141,6 @@
76873E2F2A107736001418A9 /* DefaultsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76873E2E2A107736001418A9 /* DefaultsHelper.swift */; };
76873E302A107736001418A9 /* DefaultsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76873E2E2A107736001418A9 /* DefaultsHelper.swift */; };
76A8A4E32A0DF7C700AA6054 /* NSTaskWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76BEF7F528724FA80013E2A1 /* NSTaskWrapper.swift */; };
- 76AB89DF2A12FAD800529D90 /* OIDCLite in Frameworks */ = {isa = PBXBuildFile; productRef = 76AB89DE2A12FAD800529D90 /* OIDCLite */; };
76AB89E12A12FAF900529D90 /* OIDCLite in Frameworks */ = {isa = PBXBuildFile; productRef = 76AB89E02A12FAF900529D90 /* OIDCLite */; };
76AB89E32A12FB4900529D90 /* ArgumentParser in Frameworks */ = {isa = PBXBuildFile; productRef = 76AB89E22A12FB4900529D90 /* ArgumentParser */; };
76B040A428EFC788002A289B /* Helper+JWTDecode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76B040A328EFC788002A289B /* Helper+JWTDecode.swift */; };
@@ -555,13 +555,13 @@
buildActionMask = 2147483647;
files = (
76C4BAB72B353AFD007B2C57 /* Kerberos.framework in Frameworks */,
+ 762177E62B7144460051B756 /* OIDCLite in Frameworks */,
76C4BAB32B353AD7007B2C57 /* libresolv.tbd in Frameworks */,
763DDF1A2B4F1DD4000D48CC /* GSS.framework in Frameworks */,
766CC42829D3A3DC009BC526 /* ProductLicense.framework in Frameworks */,
766CC42A29D3A3DC009BC526 /* Paddle.framework in Frameworks */,
767CB2D02B13B92B006CA2AC /* OpenDirectory.framework in Frameworks */,
76319369287D24F600D36BF7 /* ArgumentParser in Frameworks */,
- 76AB89DF2A12FAD800529D90 /* OIDCLite in Frameworks */,
76319366287D24E100D36BF7 /* ArgumentParser in Frameworks */,
76DD6D17285997F300A700ED /* OIDCLite in Frameworks */,
);
@@ -1015,7 +1015,7 @@
76DD6D16285997F300A700ED /* OIDCLite */,
76319365287D24E100D36BF7 /* ArgumentParser */,
76319368287D24F600D36BF7 /* ArgumentParser */,
- 76AB89DE2A12FAD800529D90 /* OIDCLite */,
+ 762177E52B7144460051B756 /* OIDCLite */,
);
productName = xCreds;
productReference = 76EE069A27FD1D00009E0F3A /* XCreds.app */;
@@ -1066,7 +1066,7 @@
mainGroup = 76EE069127FD1D00009E0F3A;
packageReferences = (
76319364287D24E100D36BF7 /* XCRemoteSwiftPackageReference "swift-argument-parser" */,
- 76AB89DD2A12FAD800529D90 /* XCRemoteSwiftPackageReference "OIDCLite" */,
+ 762177E42B7144460051B756 /* XCLocalSwiftPackageReference "../OIDCLite" */,
);
productRefGroup = 76EE069B27FD1D00009E0F3A /* Products */;
projectDirPath = "";
@@ -1440,7 +1440,7 @@
buildSettings = {
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 6304;
+ CURRENT_PROJECT_VERSION = 6311;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = UXP6YEHSPW;
FRAMEWORK_SEARCH_PATHS = (
@@ -1477,7 +1477,7 @@
buildSettings = {
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 6304;
+ CURRENT_PROJECT_VERSION = 6311;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = UXP6YEHSPW;
FRAMEWORK_SEARCH_PATHS = (
@@ -1598,7 +1598,7 @@
CODE_SIGN_ENTITLEMENTS = "XCreds Login Overlay/XCreds_Login_Overlay.entitlements";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 6304;
+ CURRENT_PROJECT_VERSION = 6311;
DEVELOPMENT_TEAM = UXP6YEHSPW;
ENABLE_HARDENED_RUNTIME = YES;
FRAMEWORK_SEARCH_PATHS = (
@@ -1635,7 +1635,7 @@
CODE_SIGN_ENTITLEMENTS = "XCreds Login Overlay/XCreds_Login_Overlay.entitlements";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 6304;
+ CURRENT_PROJECT_VERSION = 6311;
DEVELOPMENT_TEAM = UXP6YEHSPW;
ENABLE_HARDENED_RUNTIME = YES;
FRAMEWORK_SEARCH_PATHS = (
@@ -1785,7 +1785,7 @@
CODE_SIGN_ENTITLEMENTS = XCreds/xCreds.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 6304;
+ CURRENT_PROJECT_VERSION = 6311;
DEVELOPMENT_TEAM = UXP6YEHSPW;
ENABLE_HARDENED_RUNTIME = YES;
FRAMEWORK_SEARCH_PATHS = (
@@ -1827,7 +1827,7 @@
CODE_SIGN_ENTITLEMENTS = XCreds/xCreds.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
- CURRENT_PROJECT_VERSION = 6304;
+ CURRENT_PROJECT_VERSION = 6311;
DEVELOPMENT_TEAM = UXP6YEHSPW;
ENABLE_HARDENED_RUNTIME = YES;
FRAMEWORK_SEARCH_PATHS = (
@@ -1938,6 +1938,13 @@
};
/* End XCConfigurationList section */
+/* Begin XCLocalSwiftPackageReference section */
+ 762177E42B7144460051B756 /* XCLocalSwiftPackageReference "../OIDCLite" */ = {
+ isa = XCLocalSwiftPackageReference;
+ relativePath = ../OIDCLite;
+ };
+/* End XCLocalSwiftPackageReference section */
+
/* Begin XCRemoteSwiftPackageReference section */
76319364287D24E100D36BF7 /* XCRemoteSwiftPackageReference "swift-argument-parser" */ = {
isa = XCRemoteSwiftPackageReference;
@@ -1947,17 +1954,13 @@
minimumVersion = 1.0.0;
};
};
- 76AB89DD2A12FAD800529D90 /* XCRemoteSwiftPackageReference "OIDCLite" */ = {
- isa = XCRemoteSwiftPackageReference;
- repositoryURL = "https://github.com/twocanoes/OIDCLite";
- requirement = {
- branch = main;
- kind = branch;
- };
- };
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
+ 762177E52B7144460051B756 /* OIDCLite */ = {
+ isa = XCSwiftPackageProductDependency;
+ productName = OIDCLite;
+ };
76319365287D24E100D36BF7 /* ArgumentParser */ = {
isa = XCSwiftPackageProductDependency;
package = 76319364287D24E100D36BF7 /* XCRemoteSwiftPackageReference "swift-argument-parser" */;
@@ -1972,11 +1975,6 @@
isa = XCSwiftPackageProductDependency;
productName = OIDCLite;
};
- 76AB89DE2A12FAD800529D90 /* OIDCLite */ = {
- isa = XCSwiftPackageProductDependency;
- package = 76AB89DD2A12FAD800529D90 /* XCRemoteSwiftPackageReference "OIDCLite" */;
- productName = OIDCLite;
- };
76AB89E02A12FAF900529D90 /* OIDCLite */ = {
isa = XCSwiftPackageProductDependency;
productName = OIDCLite;
diff --git a/xCreds.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/xCreds.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
index d6a090a1..8514912a 100644
--- a/xCreds.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ b/xCreds.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
@@ -1,23 +1,16 @@
{
- "pins" : [
- {
- "identity" : "oidclite",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/twocanoes/OIDCLite",
- "state" : {
- "branch" : "main",
- "revision" : "eab1496501bfc7ce5ee8cc9f924908fb7370d679"
+ "object": {
+ "pins": [
+ {
+ "package": "swift-argument-parser",
+ "repositoryURL": "https://github.com/apple/swift-argument-parser.git",
+ "state": {
+ "branch": null,
+ "revision": "fee6933f37fde9a5e12a1e4aeaa93fe60116ff2a",
+ "version": "1.2.2"
+ }
}
- },
- {
- "identity" : "swift-argument-parser",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-argument-parser.git",
- "state" : {
- "revision" : "fee6933f37fde9a5e12a1e4aeaa93fe60116ff2a",
- "version" : "1.2.2"
- }
- }
- ],
- "version" : 2
+ ]
+ },
+ "version": 1
}
diff --git a/xCreds.xcodeproj/project.xcworkspace/xcuserdata/tperfitt.xcuserdatad/UserInterfaceState.xcuserstate b/xCreds.xcodeproj/project.xcworkspace/xcuserdata/tperfitt.xcuserdatad/UserInterfaceState.xcuserstate
index 8882ddee..c6337635 100644
Binary files a/xCreds.xcodeproj/project.xcworkspace/xcuserdata/tperfitt.xcuserdatad/UserInterfaceState.xcuserstate and b/xCreds.xcodeproj/project.xcworkspace/xcuserdata/tperfitt.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/xCreds.xcodeproj/xcuserdata/tperfitt.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/xCreds.xcodeproj/xcuserdata/tperfitt.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
index ed115f98..4b38c54f 100644
--- a/xCreds.xcodeproj/xcuserdata/tperfitt.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
+++ b/xCreds.xcodeproj/xcuserdata/tperfitt.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -7,97 +7,33 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/xCreds.xcodeproj/xcuserdata/tperfitt.xcuserdatad/xcschemes/xcschememanagement.plist b/xCreds.xcodeproj/xcuserdata/tperfitt.xcuserdatad/xcschemes/xcschememanagement.plist
index dca28b60..937f95d7 100644
--- a/xCreds.xcodeproj/xcuserdata/tperfitt.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/xCreds.xcodeproj/xcuserdata/tperfitt.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -32,7 +32,7 @@
auth_mech_fixup.xcscheme_^#shared#^_
orderHint
- 7
+ 6
authrights.xcscheme_^#shared#^_
@@ -42,7 +42,7 @@
test.xcscheme_^#shared#^_
orderHint
- 6
+ 7
SuppressBuildableAutocreation