예제 #1
0
 /// <summary>
 /// Loads the credential store from the Credentials.xml file located in the folder specified in the CredentialFiles application setting.
 /// </summary>
 /// <returns>Loaded store or empty store if the file does not exist.</returns>
 public static CredentialStore Load()
 {
     var credentialPath = Environment.ExpandEnvironmentVariables(UI5Uploader.Properties.Settings.Default.CredentialFiles);
      Directory.CreateDirectory(credentialPath);
      var credentialFile = Path.Combine(credentialPath, "Credentials.xml");
      var result = new CredentialStore();
      if (File.Exists(credentialFile))
      {
     result.Load(credentialFile);
      }
      else
      {
     Log.Instance.Write("New Credential Store created.");
      }
      return result;
 }
예제 #2
0
        /// <summary>
        /// Loads the credential store from the Credentials.xml file located in the folder specified in the CredentialFiles application setting.
        /// </summary>
        /// <returns>Loaded store or empty store if the file does not exist.</returns>
        public static CredentialStore Load()
        {
            var credentialPath = Environment.ExpandEnvironmentVariables(UI5Uploader.Properties.Settings.Default.CredentialFiles);

            Directory.CreateDirectory(credentialPath);
            var credentialFile = Path.Combine(credentialPath, "Credentials.xml");
            var result         = new CredentialStore();

            if (File.Exists(credentialFile))
            {
                result.Load(credentialFile);
            }
            else
            {
                Log.Instance.Write("New Credential Store created.");
            }
            return(result);
        }
예제 #3
0
        public override int Run(string[] remainingArguments)
        {
            var store = CredentialStore.Load();

            if (ClearPassword)
            {
                var removed = store.RemoveCredentials(System, Mandant, Username);
                store.Save();
                if (removed)
                {
                    Log.Instance.Write("Credentials have been removed.");
                }
                return(0);
            }

            var credentials = new Credentials(System, Mandant, Username);

            if (!string.IsNullOrWhiteSpace(Password))
            {
                credentials.Password = Password;
                store.SetCredentials(credentials);
                store.Save();
                return(0);
            }
            var password1 = GetPasswordFromConsole(string.Format("Enter Password for user {0}: ", Username));

            if (string.IsNullOrEmpty(password1))
            {
                Log.Instance.Write("User abort.");
                return(5);
            }
            var password2 = GetPasswordFromConsole("Retype Password: "******"Password mismatch");
                return(2);
            }
            credentials.Password = password1;
            store.SetCredentials(credentials);
            store.Save();
            return(0);
        }
예제 #4
0
        public override int Run(string[] remainingArguments)
        {
            var engine = new Engine(ProjectFolder);

            if (!string.IsNullOrWhiteSpace(AppName))
            {
                engine.AppName = AppName;
            }
            if (!string.IsNullOrWhiteSpace(AppDescription))
            {
                engine.AppDescription = AppDescription;
            }
            if (!string.IsNullOrWhiteSpace(Package))
            {
                engine.Package = Package;
            }
            if (TransportRequest != null)
            {
                engine.TransportRequest = TransportRequest;
            }
            engine.DeltaMode = DeltaMode;
            engine.TestMode  = TestMode;
            engine.Timeout   = Timeout;
            engine.AppSubDir = AppSubFolder;
            engine.IgnoreCertificateErrors = IgnoreCertificateErrors;
            Credentials credentials = null;

            if (!string.IsNullOrWhiteSpace(Username) && !string.IsNullOrWhiteSpace(Password))
            {
                credentials          = new Credentials(System, Mandant, Username);
                credentials.Password = Password;
            }
            else if (!string.IsNullOrWhiteSpace(Username))
            {
                var credentialStore = CredentialStore.Load();
                credentials = credentialStore.GetCredentials(System, Mandant, Username);
                if (credentials == null)
                {
                    credentials          = new Credentials(System, Mandant, Username);
                    credentials.Password = SetCredentialsCommand.GetPasswordFromConsole(string.Format("Enter Password for user {0}: ", Username));
                    if (string.IsNullOrEmpty(credentials.Password))
                    {
                        Log.Instance.Write("User abort.");
                        return(5);
                    }
                    Console.Write("Save Password? [Y/N] ");
                    var answer = Console.ReadLine();
                    if (answer == null)
                    {
                        Log.Instance.Write("Non interactive console. Aborting.");
                        return(6);
                    }
                    if (answer.Trim().Equals("Y", StringComparison.OrdinalIgnoreCase))
                    {
                        credentialStore.SetCredentials(credentials);
                        credentialStore.Save();
                    }
                }
            }
            else //SSO
            {
                credentials = new Credentials(System, Mandant, null);
            }
            engine.Credentials = credentials;
            Log.Instance.Write("System: {0}", engine.Credentials.System);
            Log.Instance.Write("Mandant: {0}", engine.Credentials.Mandant);
            Log.Instance.Write("Username: {0}", engine.Credentials.Username ?? "SSO");
            Log.Instance.Write("Project folder: {0}", engine.ProjectDir);
            Log.Instance.Write("App name: {0}", engine.AppName);
            Log.Instance.Write("Package: {0}", engine.Package);
            Log.Instance.Write("Transport: {0}", engine.TransportRequest);
            Log.Instance.Write("Ignore Masks: {0}", string.Join(", ", engine.IgnoreMasks));

            if (!SkipConfirmation)
            {
                Console.WriteLine("Do you want to upload? [Y/N]");
                var answer = Console.ReadLine();
                if (answer == null)
                {
                    Log.Instance.Write("Non interactive console. Use -f to disable this prompt.");
                    return(6);
                }
                if (!answer.Trim().Equals("Y", StringComparison.OrdinalIgnoreCase))
                {
                    Log.Instance.Write("User abort.");
                    return(0);
                }
            }
            try
            {
                engine.Upload();
            }
            catch (UploadFailedException)
            {
                return(2);
            }
            catch (NotAuthorizedException)
            {
                var credentialStore = CredentialStore.Load();
                credentials = credentialStore.GetCredentials(System, Mandant, Username);
                if (credentials != null)
                {
                    Log.Instance.Write("Removing saved password.");
                    credentialStore.RemoveCredentials(System, Mandant, Username);
                    credentialStore.Save();
                }
                return(1);
            }
            catch (Exception e)
            {
                Log.Instance.Write(e.ToString());
                return(3);
            }
            return(0);
        }