83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Codice.Client.Common;
 | |
| using Codice.Client.Common.Servers;
 | |
| using Codice.CM.Common;
 | |
| using Codice.Utils;
 | |
| using PlasticGui;
 | |
| using PlasticGui.Configuration.TeamEdition;
 | |
| using PlasticGui.WorkspaceWindow.Home;
 | |
| 
 | |
| namespace Unity.PlasticSCM.Editor.Configuration
 | |
| {
 | |
|     internal static class ClientConfiguration
 | |
|     {
 | |
|         internal static void Save(
 | |
|             string server,
 | |
|             SEIDWorkingMode workingMode,
 | |
|             string user,
 | |
|             string accessToken
 | |
|         )
 | |
|         {
 | |
|             SetupUnityEditionToken.CreateCloudEditionTokenIfNeeded();
 | |
| 
 | |
|             // We observed that UserAccounts.SaveAccount skips the client.conf update when there is auth info saved.
 | |
|             // However, we want to make sure the configuration is always updated, so we add the skipped saving.
 | |
|             if (ClientConfig.HasAuthInfoConfigured())
 | |
|             {
 | |
|                 ConfigurationActions.SaveClientConfig(
 | |
|                     server,
 | |
|                     workingMode,
 | |
|                     user,
 | |
|                     accessToken,
 | |
|                     null);
 | |
|             }
 | |
| 
 | |
|             // 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(
 | |
|                 server,
 | |
|                 user,
 | |
|                 accessToken,
 | |
|                 workingMode,
 | |
|                 null,
 | |
|                 null,
 | |
|                 null);
 | |
| 
 | |
|             SaveDefaultCloudServer(server);
 | |
|         }
 | |
| 
 | |
|         // Save the Default Server in the config files of all clients, so they are already configured.
 | |
|         // Avoids having the Desktop application asking the user again later.
 | |
|         static void SaveDefaultCloudServer(string cloudServer)
 | |
|         {
 | |
|             SaveCloudServer.ToPlasticGuiConfig(cloudServer);
 | |
|             SaveCloudServer.ToPlasticGuiConfigFile(
 | |
|                 cloudServer, GetPlasticConfigFileToSaveOrganization());
 | |
|             SaveCloudServer.ToPlasticGuiConfigFile(
 | |
|                 cloudServer, GetGluonConfigFileToSaveOrganization());
 | |
| 
 | |
|             KnownServers.ServersFromCloud.InitializeForWindows(
 | |
|                 PlasticGuiConfig.Get().Configuration.DefaultCloudServer);
 | |
|         }
 | |
| 
 | |
|         static string GetPlasticConfigFileToSaveOrganization()
 | |
|         {
 | |
|             if (PlatformIdentifier.IsMac())
 | |
|             {
 | |
|                 return "macgui.conf";
 | |
|             }
 | |
| 
 | |
|             return "plasticgui.conf";
 | |
|         }
 | |
| 
 | |
|         static string GetGluonConfigFileToSaveOrganization()
 | |
|         {
 | |
|             if (PlatformIdentifier.IsMac())
 | |
|             {
 | |
|                 return "gluon.conf";
 | |
|             }
 | |
| 
 | |
|             return "gameui.conf";
 | |
|         }
 | |
|     }
 | |
| }
 |