12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using System;
- using Codice.Client.Common;
- using Codice.CM.Common;
- using Codice.LogWrapper;
- using PlasticGui;
- using PlasticGui.WorkspaceWindow.Home;
- using Unity.PlasticSCM.Editor.Configuration.CloudEdition.Welcome;
- using Unity.PlasticSCM.Editor.WebApi;
- using UnityEngine;
-
- namespace Unity.PlasticSCM.Editor.Configuration
- {
- internal static class AutoConfig
- {
- internal static TokenExchangeResponse PlasticCredentials(
- string unityAccessToken,
- string serverName)
- {
- SetupUnityEditionToken.CreateCloudEditionTokenIfNeeded();
-
- var startTick = Environment.TickCount;
-
- var tokenExchangeResponse = WebRestApiClient.PlasticScm.TokenExchange(unityAccessToken);
-
- mLog.DebugFormat("TokenExchange time {0} ms", Environment.TickCount - startTick);
-
- if (tokenExchangeResponse == null)
- {
- var warning = PlasticLocalization.GetString(PlasticLocalization.Name.TokenExchangeResponseNull);
- mLog.Warn(warning);
- Debug.LogWarning(warning);
- return null;
- }
-
- if (tokenExchangeResponse.Error != null)
- {
- var warning = string.Format(
- PlasticLocalization.GetString(PlasticLocalization.Name.TokenExchangeResponseError),
- tokenExchangeResponse.Error.Message, tokenExchangeResponse.Error.ErrorCode);
- mLog.ErrorFormat(warning);
- Debug.LogWarning(warning);
- return tokenExchangeResponse;
- }
-
- if (string.IsNullOrEmpty(tokenExchangeResponse.AccessToken))
- {
- var warning = string.Format(
- PlasticLocalization.GetString(PlasticLocalization.Name.TokenExchangeAccessEmpty),
- tokenExchangeResponse.User);
- mLog.InfoFormat(warning);
- Debug.LogWarning(warning);
- return tokenExchangeResponse;
- }
-
- // This creates the client.conf if needed but doesn't overwrite it if it exists already,
- // and it also updates the profiles.conf and tokens.conf with the new AccessToken
- UserAccounts.SaveAccount(
- serverName,
- SEIDWorkingMode.SSOWorkingMode, // Hub sign-in working mode
- tokenExchangeResponse.User,
- tokenExchangeResponse.AccessToken,
- null,
- null,
- null);
-
- CloudEditionWelcomeWindow.SaveDefaultCloudServer(
- serverName,
- tokenExchangeResponse.User);
-
- return tokenExchangeResponse;
- }
-
- static readonly ILog mLog = PlasticApp.GetLogger("AutoConfig");
- }
- }
|