[Libreoffice-commits] core.git: sw/source
Ashod Nakashian
ashodnakashian at yahoo.com
Sat Oct 28 16:55:16 UTC 2017
sw/source/core/edit/edfcol.cxx | 36 +++++++++++++++++++++++++++++-------
1 file changed, 29 insertions(+), 7 deletions(-)
New commits:
commit 25057044a6b9ee2277531eb1bdc935ae12684e39
Author: Ashod Nakashian <ashodnakashian at yahoo.com>
Date: Sat Oct 28 08:47:37 2017 -0400
TSCP: store the signature date as RDF
Change-Id: Ibce01df2f04f9960ec2b5c224a553c98819ec849
Reviewed-on: https://gerrit.libreoffice.org/43993
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/sw/source/core/edit/edfcol.cxx b/sw/source/core/edit/edfcol.cxx
index 97d956a09a5a..21b9461c0f15 100644
--- a/sw/source/core/edit/edfcol.cxx
+++ b/sw/source/core/edit/edfcol.cxx
@@ -92,6 +92,7 @@ namespace
static const OUString MetaFilename("bails.rdf");
static const OUString MetaNS("urn:bails");
static const OUString ParagraphSignatureRDFName = "loext:paragraph:signature";
+static const OUString ParagraphSignatureDateRDFName = "loext:paragraph:signature:date";
static const OUString ParagraphSignatureUsageRDFName = "loext:paragraph:signature:usage";
static const OUString ParagraphClassificationNameRDFName = "loext:paragraph:classification:name";
static const OUString ParagraphClassificationValueRDFName = "loext:paragraph:classification:value";
@@ -268,6 +269,7 @@ lcl_MakeParagraphSignatureFieldText(const uno::Reference<frame::XModel>& xModel,
const css::uno::Reference<css::rdf::XResource> xSubject(xField, uno::UNO_QUERY);
std::map<OUString, OUString> aStatements = SwRDFHelper::getStatements(xModel, MetaNS, xSubject);
+
const auto it = aStatements.find(ParagraphSignatureRDFName);
if (it != aStatements.end())
{
@@ -282,13 +284,15 @@ lcl_MakeParagraphSignatureFieldText(const uno::Reference<frame::XModel>& xModel,
valid = svl::crypto::Signing::Verify(data, false, sig, aInfo);
valid = valid && aInfo.nStatus == css::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED;
- const auto it2 = aStatements.find(ParagraphSignatureUsageRDFName);
- msg = (it2 != aStatements.end() ? (it2->second + ", ") : OUString());
- msg += SwResId(STR_SIGNED_BY) + ": " + aInfo.ouSubject + ", " + aInfo.ouDateTime + ": ";
- if (valid)
- msg += SwResId(STR_VALID);
- else
- msg += SwResId(STR_INVALID);
+ msg = SwResId(STR_SIGNED_BY) + ": " + aInfo.ouSubject + ", ";
+
+ const auto itDate = aStatements.find(ParagraphSignatureDateRDFName);
+ msg += (itDate != aStatements.end() ? itDate->second : OUString());
+
+ const auto itUsage = aStatements.find(ParagraphSignatureUsageRDFName);
+ msg += (itUsage != aStatements.end() ? (" (" + itUsage->second + "): ") : OUString(": "));
+
+ msg += (valid ? SwResId(STR_VALID) : SwResId(STR_INVALID));
}
}
@@ -311,6 +315,24 @@ uno::Reference<text::XTextField> lcl_InsertParagraphSignature(const uno::Referen
SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xSubject, ParagraphSignatureRDFName, signature);
SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xSubject, ParagraphSignatureUsageRDFName, usage);
+ // First convert the UTC UNIX timestamp to a tools::DateTime.
+ DateTime aDateTime = DateTime::CreateFromUnixTime(time(nullptr));
+
+ // Then convert to a local UNO DateTime.
+ aDateTime.ConvertToLocalTime();
+ OUStringBuffer rBuffer;
+ rBuffer.append((sal_Int32)aDateTime.GetYear());
+ rBuffer.append('-');
+ if (aDateTime.GetMonth() < 10)
+ rBuffer.append('0');
+ rBuffer.append((sal_Int32)aDateTime.GetMonth());
+ rBuffer.append('-');
+ if (aDateTime.GetDay() < 10)
+ rBuffer.append('0');
+ rBuffer.append((sal_Int32)aDateTime.GetDay());
+
+ SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xSubject, ParagraphSignatureDateRDFName, rBuffer.makeStringAndClear());
+
return xField;
}
More information about the Libreoffice-commits
mailing list