/// <summary> /// Converts the <see cref="sourceValue" /> parameter to the <see cref="destinationType" /> parameter using <see cref="formatProvider" /// /> and <see cref="ignoreCase" /> /// </summary> /// <param name="sourceValue">the <see cref="System.Object"/> to convert from</param> /// <param name="destinationType">the <see cref="System.Type" /> to convert to</param> /// <param name="formatProvider">not used by this TypeConverter.</param> /// <param name="ignoreCase">when set to <c>true</c>, will ignore the case when converting.</param> /// <returns> /// an instance of <see cref="SecretPermissions" />, or <c>null</c> if there is no suitable conversion. /// </returns> public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => SecretPermissions.CreateFrom(sourceValue);
private static void DisplaySecret(Secret secret) { Console.WriteLine("--------------------------------------"); Console.Write("Secret Name: "); Console.WriteLine(secret.Name); Console.WriteLine("--------------------------------------"); var indent = " "; Console.Write(indent); Console.Write("Secret Id: "); Console.WriteLine(secret.Id); Console.Write(indent); Console.Write("Folder Id: "); Console.WriteLine(secret.FolderId < 1 ? "(root)" : secret.FolderId.ToString()); foreach (var item in secret.Items) { Console.Write(indent); Console.Write((item.FieldDisplayName ?? item.FieldName) + ": "); Console.WriteLine(item.Value); } var subIndent = indent + " "; SecretSettings settings = secret.SecretSettings; if (settings != null) { Console.Write(indent); Console.WriteLine("-Settings-"); WriteSetting(subIndent, "AutoChange Enabled", settings.AutoChangeEnabled); WriteSetting(subIndent, "Requires Comment", settings.RequiresComment); WriteSetting(subIndent, "Requires Approval for Access", settings.RequiresApprovalForAccess); if (settings.RequiresApprovalForAccess.GetValueOrDefault()) { var approverInString = String.Join(",", settings.Approvers.Select(a => a.Name)); WriteSetting(subIndent, "Approvers", approverInString); } WriteSetting(subIndent, "CheckOut Enabled", settings.CheckOutEnabled); WriteSetting(subIndent, "CheckOut Change Password Enabled", settings.CheckOutChangePasswordEnabled); WriteSetting(subIndent, "Privilege Account", settings.PrivilegedSecretId); WriteSetting(subIndent, "Associated Account", settings.AssociatedSecretIds == null ? "" : string.Join(", ", settings.AssociatedSecretIds)); } SecretPermissions secretPermissions = secret.SecretPermissions; if (secretPermissions != null) { Console.Write(indent); Console.WriteLine("-Secret Permissions-"); WriteSetting(subIndent, "InheritPermissions Enabled", secretPermissions.InheritPermissionsEnabled); foreach (var permission in secretPermissions.Permissions) { Console.Write(subIndent); Console.Write(permission.UserOrGroup.Name + ": "); if (permission.View) { Console.Write("V"); } if (permission.Edit) { Console.Write("E"); } if (permission.Owner) { Console.Write("O"); } Console.WriteLine(""); } } Console.WriteLine("--------------------------------------"); }