public static Account GetAccountFromIdentity(this Cmdlet command, AccountIdentity identity) { Account account = identity; if (account == null) { if (RolesInRolesManager.IsCreatorOwnerRole(identity.Name) || RolesInRolesManager.IsSystemRole(identity.Name)) { return(Role.FromName(identity.Name)); } var error = $"Cannot find an account with identity '{identity.Name}'."; command.WriteError(new ErrorRecord(new ObjectNotFoundException(error), ErrorIds.AccountNotFound.ToString(), ErrorCategory.ObjectNotFound, identity)); } return(account); }
public static bool CanFindAccount(this Cmdlet command, AccountIdentity account, AccountType accountType) { if (account == null) { return(false); } var name = account.Name; var error = $"Cannot find an account with identity '{name}'."; if (accountType == AccountType.Role) { if (!Role.Exists(name) && !RolesInRolesManager.IsCreatorOwnerRole(name) && !RolesInRolesManager.IsSystemRole(name)) { command.WriteError(new ErrorRecord(new ObjectNotFoundException(error), ErrorIds.AccountNotFound.ToString(), ErrorCategory.ObjectNotFound, account)); return(false); } } if (accountType == AccountType.User && !User.Exists(name)) { command.WriteError(new ErrorRecord(new ObjectNotFoundException(error), ErrorIds.AccountNotFound.ToString(), ErrorCategory.ObjectNotFound, account)); return(false); } return(true); }