123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- using Codice.Client.Common;
- using Codice.CM.Common;
- using PlasticGui;
- using PlasticPipe.Certificates;
- using Unity.PlasticSCM.Editor.UI;
- using UnityEditor;
-
- namespace Unity.PlasticSCM.Editor.Configuration
- {
- internal class ChannelCertificateUiImpl : IChannelCertificateUI
- {
- internal ChannelCertificateUiImpl()
- {
- }
-
- CertOperationResult IChannelCertificateUI.AcceptNewServerCertificate(PlasticCertInfo serverCertificate)
- {
- return GetUserResponse(
- PlasticLocalization.GetString(
- PlasticLocalization.Name.NewCertificateTitle),
- PlasticLocalization.GetString(
- PlasticLocalization.Name.NewCertificateMessageUnityVCS),
- serverCertificate);
- }
-
- CertOperationResult IChannelCertificateUI.AcceptChangedServerCertificate(PlasticCertInfo serverCertificate)
- {
- return GetUserResponse(
- PlasticLocalization.GetString(
- PlasticLocalization.Name.ExistingCertificateChangedTitle),
- PlasticLocalization.GetString(
- PlasticLocalization.Name.ExistingCertificateChangedMessageUnityVCS),
- serverCertificate);
- }
-
- bool IChannelCertificateUI.AcceptInvalidHostname(string certHostname, string serverHostname)
- {
- bool result = false;
-
- GUIActionRunner.RunGUIAction(delegate {
- result = EditorUtility.DisplayDialog(
- PlasticLocalization.GetString(
- PlasticLocalization.Name.InvalidCertificateHostnameTitle),
- PlasticLocalization.GetString(
- PlasticLocalization.Name.InvalidCertificateHostnameMessage,
- certHostname, serverHostname),
- PlasticLocalization.GetString(PlasticLocalization.Name.YesButton),
- PlasticLocalization.GetString(PlasticLocalization.Name.NoButton));
- });
-
- return result;
- }
-
- CertOperationResult GetUserResponse(
- string title, string message, PlasticCertInfo serverCertificate)
- {
- GuiMessage.GuiMessageResponseButton result =
- GuiMessage.GuiMessageResponseButton.Neutral;
-
- GUIActionRunner.RunGUIAction(delegate {
- result = GuiMessage.ShowQuestion(
- title,
- GetCertificateMessageString(message, serverCertificate),
- PlasticLocalization.GetString(PlasticLocalization.Name.YesButton),
- PlasticLocalization.GetString(PlasticLocalization.Name.CancelButton),
- PlasticLocalization.GetString(PlasticLocalization.Name.NoButton));
- });
-
- switch (result)
- {
- case GuiMessage.GuiMessageResponseButton.Positive:
- return CertOperationResult.AddToStore;
- case GuiMessage.GuiMessageResponseButton.Negative:
- return CertOperationResult.DoNotAddToStore;
- case GuiMessage.GuiMessageResponseButton.Neutral:
- return CertOperationResult.Cancel;
- default:
- return CertOperationResult.Cancel;
- }
- }
-
- string GetCertificateMessageString(string message, PlasticCertInfo serverCertificate)
- {
- return string.Format(message,
- CertificateUi.GetCnField(serverCertificate.Subject),
- CertificateUi.GetCnField(serverCertificate.Issuer),
- serverCertificate.Format,
- serverCertificate.ExpirationDateString,
- serverCertificate.KeyAlgorithm,
- serverCertificate.CertHashString);
- }
- }
- }
|