AutoConfigClientConf.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using Codice.Client.Common;
  2. using Codice.Client.Common.WebApi;
  3. using Codice.CM.Common;
  4. using PlasticGui;
  5. using Unity.PlasticSCM.Editor.WebApi;
  6. namespace Unity.PlasticSCM.Editor.ProjectDownloader
  7. {
  8. internal static class AutoConfigClientConf
  9. {
  10. internal static void FromUnityAccessToken(
  11. string unityAccessToken,
  12. RepositorySpec repSpec,
  13. string projectPath)
  14. {
  15. CredentialsResponse response =
  16. PlasticScmRestApiClient.GetCredentials(unityAccessToken);
  17. if (response.Error != null)
  18. {
  19. UnityEngine.Debug.LogErrorFormat(
  20. PlasticLocalization.GetString(PlasticLocalization.Name.ErrorGettingCredentialsCloudProject),
  21. response.Error.Message,
  22. response.Error.ErrorCode);
  23. return;
  24. }
  25. ClientConfigData configData = BuildClientConfigData(
  26. repSpec,
  27. projectPath,
  28. response);
  29. ClientConfig.Get().Save(configData);
  30. }
  31. static ClientConfigData BuildClientConfigData(
  32. RepositorySpec repSpec,
  33. string projectPath,
  34. CredentialsResponse response)
  35. {
  36. SEIDWorkingMode workingMode = SEIDWorkingMode.LDAPWorkingMode;
  37. ClientConfigData configData = new ClientConfigData();
  38. configData.WorkspaceServer = repSpec.Server;
  39. configData.CurrentWorkspace = projectPath;
  40. configData.WorkingMode = workingMode.ToString();
  41. configData.SecurityConfig = UserInfo.GetSecurityConfigStr(
  42. workingMode,
  43. response.Email,
  44. GetPassword(response.Token, response.Type));
  45. return configData;
  46. }
  47. static string GetPassword(
  48. string token,
  49. CredentialsResponse.TokenType tokenType)
  50. {
  51. if (tokenType == CredentialsResponse.TokenType.Bearer)
  52. return BEARER_PREFIX + token;
  53. return token;
  54. }
  55. const string BEARER_PREFIX = "Bearer ";
  56. }
  57. }