From 167e20f68c80a63a15b7da23e0901095e067cc96 Mon Sep 17 00:00:00 2001 From: Remus Rusanu Date: Wed, 28 Nov 2018 15:25:25 +0200 Subject: [PATCH 1/2] Add current user name and permission to token - allows for user to see who it logs in (when windows integrated) - allows for user to see its own permissions immedeately - makes an authenticated call for windows credentials even when no OU enabled (immediate feedback on bad user) --- UiPath.PowerShell/Cmdlets/GetAuthToken.cs | 14 ++++++++++++++ UiPath.PowerShell/Models/AuthToken.cs | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/UiPath.PowerShell/Cmdlets/GetAuthToken.cs b/UiPath.PowerShell/Cmdlets/GetAuthToken.cs index f378e695..92bfbdc2 100644 --- a/UiPath.PowerShell/Cmdlets/GetAuthToken.cs +++ b/UiPath.PowerShell/Cmdlets/GetAuthToken.cs @@ -91,6 +91,8 @@ protected override void ProcessRecord() SetOrganizationUnit(authToken, OrganizationUnit); } + GetCurrentUser(authToken); + if (Session.IsPresent) { AuthenticatedCmdlet.SetAuthToken(authToken); @@ -104,6 +106,18 @@ protected override void ProcessRecord() } } + private void GetCurrentUser(AuthToken authToken) + { + using (var api = AuthenticatedCmdlet.MakeApi(authToken)) + { + var user = api.Users.GetCurrentUser(); + authToken.UserName = user.UserName; + + var permissions = api.Users.GetCurrentPermissions().Permissions; + authToken.Permissions = permissions.ToArray(); + } + } + private void SetOrganizationUnit(AuthToken authToken, string organizationUnit) { using (var api = AuthenticatedCmdlet.MakeApi(authToken)) diff --git a/UiPath.PowerShell/Models/AuthToken.cs b/UiPath.PowerShell/Models/AuthToken.cs index 07338bb8..a034beec 100644 --- a/UiPath.PowerShell/Models/AuthToken.cs +++ b/UiPath.PowerShell/Models/AuthToken.cs @@ -20,6 +20,10 @@ public class AuthToken public string OrganizationUnit { get; internal set; } + public string UserName { get; internal set; } + + public string[] Permissions { get; internal set; } + internal long? OrganizationUnitId { get; set; } } } From f388cdae2b3ff35d27a30be3c6cdf39fedcd31af Mon Sep 17 00:00:00 2001 From: Remus Rusanu Date: Fri, 7 Dec 2018 13:38:27 +0200 Subject: [PATCH 2/2] get current user at get-uipathtoken --- UiPath.PowerShell/Cmdlets/GetAuthToken.cs | 60 ++++++++++------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/UiPath.PowerShell/Cmdlets/GetAuthToken.cs b/UiPath.PowerShell/Cmdlets/GetAuthToken.cs index 92bfbdc2..e1d3f2fb 100644 --- a/UiPath.PowerShell/Cmdlets/GetAuthToken.cs +++ b/UiPath.PowerShell/Cmdlets/GetAuthToken.cs @@ -68,53 +68,46 @@ public class GetAuthToken: UiPathCmdlet protected override void ProcessRecord() { - try + AuthToken authToken = null; + if (ParameterSetName == UserPasswordSet) { - AuthToken authToken = null; - if (ParameterSetName == UserPasswordSet) - { - authToken = GetUserToken(); - } - else if (ParameterSetName == WindowsCredentialsSet) - { - authToken = GetWindowsToken(); - } - else if (ParameterSetName == UnauthenticatedSet) - { - authToken = GetUnauthenticatedToken(); - } - - GetServerVersion(authToken); + authToken = GetUserToken(); + } + else if (ParameterSetName == WindowsCredentialsSet) + { + authToken = GetWindowsToken(); + } + else if (ParameterSetName == UnauthenticatedSet) + { + authToken = GetUnauthenticatedToken(); + } - if (!String.IsNullOrWhiteSpace(OrganizationUnit)) - { - SetOrganizationUnit(authToken, OrganizationUnit); - } + GetServerVersion(authToken); - GetCurrentUser(authToken); + if (!String.IsNullOrWhiteSpace(OrganizationUnit)) + { + SetOrganizationUnit(authToken, OrganizationUnit); + } - if (Session.IsPresent) - { - AuthenticatedCmdlet.SetAuthToken(authToken); - } + GetCurrentUser(authToken); - WriteObject(authToken); - } - catch(Exception e) + if (Session.IsPresent) { - WriteVerbose(e.ToString()); + AuthenticatedCmdlet.SetAuthToken(authToken); } + + WriteObject(authToken); } private void GetCurrentUser(AuthToken authToken) { using (var api = AuthenticatedCmdlet.MakeApi(authToken)) { + var permissions = api.Users.GetCurrentPermissions()?.Permissions; + authToken.Permissions = permissions?.ToArray(); + var user = api.Users.GetCurrentUser(); authToken.UserName = user.UserName; - - var permissions = api.Users.GetCurrentPermissions().Permissions; - authToken.Permissions = permissions.ToArray(); } } @@ -180,7 +173,8 @@ private AuthToken GetWindowsToken() { URL = URL, WindowsCredentials = true, - Authenticated = true + Authenticated = true, + Token = "Windows authentication does not use bearer token" }; }