Merge pull request #61945 from alexbruy/anonymize-project-author-metadata

clear author name and creation date project metadata when anonymize_saved_projects setting is set to true (fix #42413)
This commit is contained in:
Alexander Bruy 2025-05-22 07:31:08 +01:00 committed by GitHub
commit 6a4e4d18ee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 0 deletions

View File

@ -3260,6 +3260,11 @@ bool QgsProject::writeProjectFile( const QString &filename )
qgisNode.setAttribute( QStringLiteral( "saveUserFull" ), newSaveUserFull );
mSaveUser = newSaveUser;
mSaveUserFull = newSaveUserFull;
mMetadata.setAuthor( QgsApplication::userFullName() );
if ( !mMetadata.creationDateTime().isValid() )
{
mMetadata.setCreationDateTime( QDateTime( QDateTime::currentDateTime() ) );
}
mSaveDateTime = QDateTime::currentDateTime();
qgisNode.setAttribute( QStringLiteral( "saveDateTime" ), mSaveDateTime.toString( Qt::ISODate ) );
}
@ -3267,6 +3272,8 @@ bool QgsProject::writeProjectFile( const QString &filename )
{
mSaveUser.clear();
mSaveUserFull.clear();
mMetadata.setAuthor( QString() );
mMetadata.setCreationDateTime( QDateTime() );
mSaveDateTime = QDateTime();
}
doc->appendChild( qgisNode );

View File

@ -603,6 +603,8 @@ void TestQgsProject::projectSaveUser()
QVERIFY( p.saveUser().isEmpty() );
QVERIFY( p.saveUserFullName().isEmpty() );
QVERIFY( p.metadata().author().isEmpty() );
QVERIFY( !p.metadata().creationDateTime().isValid() );
QVERIFY( !p.lastSaveDateTime().isValid() );
s.setValue( QStringLiteral( "projects/anonymize_saved_projects" ), false, QgsSettings::Core );
@ -610,6 +612,8 @@ void TestQgsProject::projectSaveUser()
p.write();
QCOMPARE( p.saveUser(), QgsApplication::userLoginName() );
QCOMPARE( p.saveUserFullName(), QgsApplication::userFullName() );
QCOMPARE( p.metadata().author(), QgsApplication::userFullName() );
QCOMPARE( p.metadata().creationDateTime().date(), QDateTime::currentDateTime().date() );
QCOMPARE( p.lastSaveDateTime().date(), QDateTime::currentDateTime().date() );
QgsProject p2;