65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| 
 | |
| using UnityEngine;
 | |
| 
 | |
| using Codice.CM.Common;
 | |
| using Codice.LogWrapper;
 | |
| using PlasticGui;
 | |
| using Unity.PlasticSCM.Editor.WebApi;
 | |
| 
 | |
| namespace Unity.PlasticSCM.Editor.Configuration
 | |
| {
 | |
|     internal static class AutoConfig
 | |
|     {
 | |
|         internal static TokenExchangeResponse PlasticCredentials(
 | |
|             string unityAccessToken,
 | |
|             string serverName)
 | |
|         {
 | |
|             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;
 | |
|             }
 | |
| 
 | |
|             ClientConfiguration.Save(
 | |
|                 serverName,
 | |
|                 SEIDWorkingMode.SSOWorkingMode,
 | |
|                 tokenExchangeResponse.User,
 | |
|                 tokenExchangeResponse.AccessToken);
 | |
| 
 | |
|             return tokenExchangeResponse;
 | |
|         }
 | |
| 
 | |
|         static readonly ILog mLog = PlasticApp.GetLogger("AutoConfig");
 | |
|     }
 | |
| }
 | |
| 
 |