Skip to content
This repository was archived by the owner on Nov 18, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions TabRESTMigrate/RESTHelpers/CredentialManager.Connection.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
partial class CredentialManager
{
internal class Connection
{
public readonly string ServerAddress;

public readonly string ServerPort;

public Connection(string serverAddress, string serverPort = null)
{
this.ServerAddress = serverAddress;
this.ServerPort = serverPort;
}
}

}
4 changes: 3 additions & 1 deletion TabRESTMigrate/RESTHelpers/CredentialManager.Credential.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ internal class Credential
public readonly string Name;
public readonly string Password;
public readonly bool IsEmbedded;
public readonly Connection Connection;

public Credential(string name, string password, bool isEmbedded)
public Credential(string name, string password, bool isEmbedded, Connection connection = null)
{
this.Name = name;
this.Password = password;
this.IsEmbedded = isEmbedded;
this.Connection = connection;
}
}

Expand Down
4 changes: 2 additions & 2 deletions TabRESTMigrate/RESTHelpers/CredentialManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,10 @@ private static Credential FindContentCredential(List<CredentialNode> list, strin
/// <param name="credentialId"></param>
/// <param name="password"></param>
/// <param name="isEmbedded"></param>
public void AddWorkbookCredential(string workbookName, string projectName, string credentialId, string password, bool isEmbedded)
public void AddWorkbookCredential(string workbookName, string projectName, string serverAddress, string serverPort, string credentialId, string password, bool isEmbedded)
{
_workbookCredentials.Add(new CredentialNode(
workbookName, projectName, new Credential(credentialId, password, isEmbedded)));
workbookName, projectName, new Credential(credentialId, password, isEmbedded, new Connection(serverAddress, serverPort))));
}

/// <summary>
Expand Down
6 changes: 4 additions & 2 deletions TabRESTMigrate/RESTHelpers/CredentialManager_static.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,10 @@ private static void helper_parseCredentialNode(CredentialManager credentialManag
{
var contentType = XmlHelper.ReadTextAttribute(credentialNode, "contentType", "");
var contentProjectName = XmlHelper.ReadTextAttribute(credentialNode, "contentProjectName");
var contentName = XmlHelper.ReadTextAttribute(credentialNode, "contentName");
var contentName = XmlHelper.ReadTextAttribute(credentialNode, "contentName");

var serverAddress = XmlHelper.ReadTextAttribute(credentialNode, "serverAddress");
var serverPort = XmlHelper.ReadTextAttribute(credentialNode, "serverPort");
var dbUserName = XmlHelper.ReadTextAttribute(credentialNode, "dbUser");
var dbPassword = XmlHelper.ReadTextAttribute(credentialNode, "dbPassword");
var isEmbedded = XmlHelper.ReadBooleanAttribute(credentialNode, "credentialIsEmbedded", false);
Expand All @@ -63,7 +65,7 @@ private static void helper_parseCredentialNode(CredentialManager credentialManag

if(contentType == "workbook")
{
credentialManager.AddWorkbookCredential(contentName, contentProjectName, dbUserName, dbPassword, isEmbedded);
credentialManager.AddWorkbookCredential(contentName, contentProjectName, serverAddress, serverPort, dbUserName, dbPassword, isEmbedded);
}
else if(contentType == "datasource")
{
Expand Down
14 changes: 11 additions & 3 deletions TabRESTMigrate/RESTHelpers/CredentialXmlHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ static class CredentialXmlHelper
/// <param name="credential"></param>
public static void WriteCredential(XmlWriter xmlWriter, CredentialManager.Credential credential)
{
WriteCredential(xmlWriter, credential.Name, credential.Password, credential.IsEmbedded);
CredentialManager.Connection connection = credential.Connection;

WriteCredential(xmlWriter, connection.ServerAddress, connection.ServerPort, credential.Name, credential.Password, credential.IsEmbedded);
}
/// <summary>
/// Writes out the credential element. Used in Workbook and Data Source publication
Expand All @@ -23,15 +25,21 @@ public static void WriteCredential(XmlWriter xmlWriter, CredentialManager.Creden
/// <param name="connectionUserName"></param>
/// <param name="password"></param>
/// <param name="isEmbedded"></param>
public static void WriteCredential(XmlWriter xmlWriter, string connectionUserName, string password, bool isEmbedded)
public static void WriteCredential(XmlWriter xmlWriter, string serverAddress, string serverPort, string connectionUserName, string password, bool isEmbedded)
{
// <connectionCredentials name="connection-username" password="connection-password"
// embed="embed-flag" />

xmlWriter.WriteStartElement("connection");
xmlWriter.WriteAttributeString("serverAddress", serverAddress);
if (!"".Equals(serverPort))
{
xmlWriter.WriteAttributeString("serverPort", serverPort);
}
xmlWriter.WriteStartElement("connectionCredentials");
xmlWriter.WriteAttributeString("name", connectionUserName);
xmlWriter.WriteAttributeString("password", password);
XmlHelper.WriteBooleanAttribute(xmlWriter, "embed", isEmbedded);
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
}
}
10 changes: 5 additions & 5 deletions TabRESTMigrate/RESTRequests/UploadWorkbooks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -572,15 +572,15 @@ private SiteWorkbook FinalizePublish(
xmlWriter.WriteStartElement("workbook");
xmlWriter.WriteAttributeString("name", publishedContentName);
xmlWriter.WriteAttributeString("showTabs", XmlHelper.BoolToXmlText(publishSettings.ShowTabs));

xmlWriter.WriteStartElement("connections");
//If we have an associated database credential, write it out
if (dbCredentials != null)
if (dbCredentials != null)
{
CredentialXmlHelper.WriteCredential(
xmlWriter,
dbCredentials);
xmlWriter,
dbCredentials);
}

xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("project"); //<project>
xmlWriter.WriteAttributeString("id", projectId);
xmlWriter.WriteEndElement(); //</project>
Expand Down
6 changes: 3 additions & 3 deletions TabRESTMigrate/_SampleFiles/CredentialExample.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!-- Example file that shows how credentials can be declared. This file can be used as part of site import to supply needed workbook and datasource credentials-->
<xml>
<credential contentType="workbook" contentProjectName="Test Site Import" contentName="test.twbx" dbUser="SimpleUser" dbPassword="q.123456" credentialIsEmbedded="false"> </credential>
<credential contentType="workbook" contentProjectName="Test Site Import" contentName="test2.twbx" dbUser="SimpleUser2" dbPassword="q.1234567"> </credential>
<credential contentType="datasource" contentProjectName="Test Site Import" contentName="test2.tds" dbUser="SimpleUser3" dbPassword="q.12345678"> </credential>
<credential serverAddress="server-hostname" contentType="workbook" contentProjectName="Test Site Import" contentName="test.twbx" dbUser="SimpleUser" dbPassword="q.123456" credentialIsEmbedded="false"> </credential>
<credential serverAddress="server-hostname" contentType="workbook" contentProjectName="Test Site Import" contentName="test2.twbx" dbUser="SimpleUser2" dbPassword="q.1234567"> </credential>
<credential serverAddress="server-hostname" contentType="datasource" contentProjectName="Test Site Import" contentName="test2.tds" dbUser="SimpleUser3" dbPassword="q.12345678"> </credential>
</xml>