Kaydet (Commit) 83a72f46 authored tarafından Ashod Nakashian's avatar Ashod Nakashian Kaydeden (comit) Ashod Nakashian

sw: paragraph-sign: formatting

Change-Id: I9bf1b58aa6e18202a5f7eba010cc5b914e1d33d4
Reviewed-on: https://gerrit.libreoffice.org/63005
Tested-by: Jenkins
Reviewed-by: 's avatarAshod Nakashian <ashnakash@gmail.com>
üst 6ad096ae
...@@ -359,14 +359,16 @@ SignatureDescr lcl_getSignatureDescr(const uno::Reference<frame::XModel>& xModel ...@@ -359,14 +359,16 @@ SignatureDescr lcl_getSignatureDescr(const uno::Reference<frame::XModel>& xModel
SignatureDescr aDescr; SignatureDescr aDescr;
aDescr.msId = sFieldId; aDescr.msId = sFieldId;
const OUString prefix = ParagraphSignatureRDFNamespace + sFieldId;
const std::map<OUString, OUString> aStatements = lcl_getRDFStatements(xModel, xParagraph); const std::map<OUString, OUString> aStatements = lcl_getRDFStatements(xModel, xParagraph);
const auto itSig = aStatements.find(ParagraphSignatureRDFNamespace + sFieldId + ParagraphSignatureDigestRDFName);
const auto itSig = aStatements.find(prefix + ParagraphSignatureDigestRDFName);
aDescr.msSignature = (itSig != aStatements.end() ? itSig->second : OUString()); aDescr.msSignature = (itSig != aStatements.end() ? itSig->second : OUString());
const auto itDate = aStatements.find(ParagraphSignatureRDFNamespace + sFieldId + ParagraphSignatureDateRDFName); const auto itDate = aStatements.find(prefix + ParagraphSignatureDateRDFName);
aDescr.msDate = (itDate != aStatements.end() ? itDate->second : OUString()); aDescr.msDate = (itDate != aStatements.end() ? itDate->second : OUString());
const auto itUsage = aStatements.find(ParagraphSignatureRDFNamespace + sFieldId + ParagraphSignatureUsageRDFName); const auto itUsage = aStatements.find(prefix + ParagraphSignatureUsageRDFName);
aDescr.msUsage = (itUsage != aStatements.end() ? itUsage->second : OUString()); aDescr.msUsage = (itUsage != aStatements.end() ? itUsage->second : OUString());
return aDescr; return aDescr;
...@@ -376,14 +378,16 @@ SignatureDescr lcl_getSignatureDescr(const uno::Reference<frame::XModel>& xModel ...@@ -376,14 +378,16 @@ SignatureDescr lcl_getSignatureDescr(const uno::Reference<frame::XModel>& xModel
const uno::Reference<css::text::XTextContent>& xParagraph, const uno::Reference<css::text::XTextContent>& xParagraph,
const uno::Reference<css::text::XTextField>& xField) const uno::Reference<css::text::XTextField>& xField)
{ {
const std::pair<OUString, OUString> pair = lcl_getRDF(xModel, xField, ParagraphSignatureIdRDFName); const OUString sFieldId = lcl_getRDF(xModel, xField, ParagraphSignatureIdRDFName).second;
return (!pair.second.isEmpty() ? lcl_getSignatureDescr(xModel, xParagraph, pair.second) : SignatureDescr()); if (!sFieldId.isEmpty())
return lcl_getSignatureDescr(xModel, xParagraph, sFieldId);
return SignatureDescr();
} }
/// Validate and create the signature field display text from the fields. /// Validate and create the signature field display text from the fields.
std::pair<bool, OUString> std::pair<bool, OUString> lcl_MakeParagraphSignatureFieldText(const SignatureDescr& aDescr,
lcl_MakeParagraphSignatureFieldText(const SignatureDescr& aDescr, const OString& utf8Text)
const OString& utf8Text)
{ {
OUString msg = SwResId(STR_INVALID_SIGNATURE); OUString msg = SwResId(STR_INVALID_SIGNATURE);
bool valid = false; bool valid = false;
...@@ -399,7 +403,8 @@ lcl_MakeParagraphSignatureFieldText(const SignatureDescr& aDescr, ...@@ -399,7 +403,8 @@ lcl_MakeParagraphSignatureFieldText(const SignatureDescr& aDescr,
const std::vector<unsigned char> sig(svl::crypto::DecodeHexString(encSignature)); const std::vector<unsigned char> sig(svl::crypto::DecodeHexString(encSignature));
SignatureInformation aInfo(0); SignatureInformation aInfo(0);
valid = svl::crypto::Signing::Verify(data, false, sig, aInfo); valid = svl::crypto::Signing::Verify(data, false, sig, aInfo);
valid = valid && aInfo.nStatus == css::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED; valid = valid
&& aInfo.nStatus == xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED;
msg = SwResId(STR_SIGNED_BY) + ": " + aInfo.ouSubject + ", "; msg = SwResId(STR_SIGNED_BY) + ": " + aInfo.ouSubject + ", ";
msg += aDescr.msDate; msg += aDescr.msDate;
...@@ -411,7 +416,6 @@ lcl_MakeParagraphSignatureFieldText(const SignatureDescr& aDescr, ...@@ -411,7 +416,6 @@ lcl_MakeParagraphSignatureFieldText(const SignatureDescr& aDescr,
return std::make_pair(valid, msg); return std::make_pair(valid, msg);
} }
/// Validate and return validation result and signature field display text. /// Validate and return validation result and signature field display text.
std::pair<bool, OUString> std::pair<bool, OUString>
lcl_MakeParagraphSignatureFieldText(const uno::Reference<frame::XModel>& xModel, lcl_MakeParagraphSignatureFieldText(const uno::Reference<frame::XModel>& xModel,
...@@ -427,11 +431,10 @@ lcl_MakeParagraphSignatureFieldText(const uno::Reference<frame::XModel>& xModel, ...@@ -427,11 +431,10 @@ lcl_MakeParagraphSignatureFieldText(const uno::Reference<frame::XModel>& xModel,
OUString lcl_getNextSignatureId(const uno::Reference<frame::XModel>& xModel, OUString lcl_getNextSignatureId(const uno::Reference<frame::XModel>& xModel,
const uno::Reference<text::XTextContent>& xParagraph) const uno::Reference<text::XTextContent>& xParagraph)
{ {
const std::pair<OUString, OUString> pair = lcl_getRDF(xModel, xParagraph, ParagraphSignatureLastIdRDFName); const OUString sFieldId = lcl_getRDF(xModel, xParagraph, ParagraphSignatureLastIdRDFName).second;
return OUString::number(!pair.second.isEmpty() ? pair.second.toInt32() + 1 : 1); return OUString::number(!sFieldId.isEmpty() ? sFieldId.toInt32() + 1 : 1);
} }
/// Creates and inserts Paragraph Signature Metadata field and creates the RDF entry /// Creates and inserts Paragraph Signature Metadata field and creates the RDF entry
uno::Reference<text::XTextField> lcl_InsertParagraphSignature(const uno::Reference<frame::XModel>& xModel, uno::Reference<text::XTextField> lcl_InsertParagraphSignature(const uno::Reference<frame::XModel>& xModel,
const uno::Reference<text::XTextContent>& xParagraph, const uno::Reference<text::XTextContent>& xParagraph,
...@@ -465,10 +468,11 @@ uno::Reference<text::XTextField> lcl_InsertParagraphSignature(const uno::Referen ...@@ -465,10 +468,11 @@ uno::Reference<text::XTextField> lcl_InsertParagraphSignature(const uno::Referen
// Now set the RDF on the paragraph, since that's what is preserved in .doc(x). // Now set the RDF on the paragraph, since that's what is preserved in .doc(x).
const css::uno::Reference<css::rdf::XResource> xParaSubject(xParagraph, uno::UNO_QUERY); const css::uno::Reference<css::rdf::XResource> xParaSubject(xParagraph, uno::UNO_QUERY);
const OUString prefix = ParagraphSignatureRDFNamespace + sId;
SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xParaSubject, ParagraphSignatureLastIdRDFName, sId); SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xParaSubject, ParagraphSignatureLastIdRDFName, sId);
SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xParaSubject, ParagraphSignatureRDFNamespace + sId + ParagraphSignatureDigestRDFName, signature); SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xParaSubject, prefix + ParagraphSignatureDigestRDFName, signature);
SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xParaSubject, ParagraphSignatureRDFNamespace + sId + ParagraphSignatureUsageRDFName, usage); SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xParaSubject, prefix + ParagraphSignatureUsageRDFName, usage);
SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xParaSubject, ParagraphSignatureRDFNamespace + sId + ParagraphSignatureDateRDFName, rBuffer.makeStringAndClear()); SwRDFHelper::addStatement(xModel, MetaNS, MetaFilename, xParaSubject, prefix + ParagraphSignatureDateRDFName, rBuffer.makeStringAndClear());
return xField; return xField;
} }
...@@ -511,8 +515,9 @@ bool lcl_UpdateParagraphSignatureField(SwDoc* pDoc, ...@@ -511,8 +515,9 @@ bool lcl_UpdateParagraphSignatureField(SwDoc* pDoc,
const uno::Reference<css::text::XTextField>& xField, const uno::Reference<css::text::XTextField>& xField,
const OString& utf8Text) const OString& utf8Text)
{ {
const std::pair<bool, OUString> res = lcl_MakeParagraphSignatureFieldText(xModel, xParagraph, xField, utf8Text); const OUString sDisplayText
return lcl_DoUpdateParagraphSignatureField(pDoc, xField, res.second); = lcl_MakeParagraphSignatureFieldText(xModel, xParagraph, xField, utf8Text).second;
return lcl_DoUpdateParagraphSignatureField(pDoc, xField, sDisplayText);
} }
void lcl_RemoveParagraphMetadataField(const uno::Reference<css::text::XTextField>& xField) void lcl_RemoveParagraphMetadataField(const uno::Reference<css::text::XTextField>& xField)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment