PO/Library/PackageCache/com.unity.collab-proxy@1.9.0/Editor/PlasticSCM/CloudProjectDownloader/AutoConfigClientConf.cs

69 lines
2.1 KiB
C#

using Codice.Client.Common;
using Codice.Client.Common.WebApi;
using Codice.CM.Common;
using PlasticGui;
using Unity.PlasticSCM.Editor.WebApi;
namespace Unity.PlasticSCM.Editor.ProjectDownloader
{
internal static class AutoConfigClientConf
{
internal static void FromUnityAccessToken(
string unityAccessToken,
RepositorySpec repSpec,
string projectPath)
{
CredentialsResponse response =
PlasticScmRestApiClient.GetCredentials(unityAccessToken);
if (response.Error != null)
{
UnityEngine.Debug.LogErrorFormat(
PlasticLocalization.GetString(PlasticLocalization.Name.ErrorGettingCredentialsCloudProject),
response.Error.Message,
response.Error.ErrorCode);
return;
}
ClientConfigData configData = BuildClientConfigData(
repSpec,
projectPath,
response);
ClientConfig.Get().Save(configData);
}
static ClientConfigData BuildClientConfigData(
RepositorySpec repSpec,
string projectPath,
CredentialsResponse response)
{
SEIDWorkingMode workingMode = SEIDWorkingMode.LDAPWorkingMode;
ClientConfigData configData = new ClientConfigData();
configData.WorkspaceServer = repSpec.Server;
configData.CurrentWorkspace = projectPath;
configData.WorkingMode = workingMode.ToString();
configData.SecurityConfig = UserInfo.GetSecurityConfigStr(
workingMode,
response.Email,
GetPassword(response.Token, response.Type));
return configData;
}
static string GetPassword(
string token,
CredentialsResponse.TokenType tokenType)
{
if (tokenType == CredentialsResponse.TokenType.Bearer)
return BEARER_PREFIX + token;
return token;
}
const string BEARER_PREFIX = "Bearer ";
}
}