diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2019-07-24 16:45:39 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2019-08-30 07:22:30 +0000 |
commit | c410e4250266a04e7897ecd0c98c49f040f67205 (patch) | |
tree | 81a3ebf3ec4cab211d03fd107a33110c318b88bf /src/libs/installer/fileutils.h | |
parent | 8f7af86198935849c74c71add7c9ca081347fb85 (diff) |
Refactor setting and checking of file permissions
Create methods to explicitly set default file permissions on Unix
platforms, use these on installer created files and installation
target directory. Add unit test for introduced functions.
Remove method introduced in 46aecc23b2983c807ff2232ae9cb9651b4d2fdc2
as the same effect is achieved more efficiently by ensuring target
directory will be written with explicit permissions on initial
installation. Unlike the removed method, this will also not break if
an installed component contains owner non-writable directories.
Further simplify PackageManagerCore::directoryWritable() introduced
in 89f772f819178ee2502768c3d259d22ecb910fbe. Remove orphan unit
test for removed PackageManagerCore::subdirectoriesWritable().
This does not change permissions of files and directories extracted
for installed components.
Task-number: QTIFW-1412
Change-Id: I59698c78aceef874b1f79482bff5a618b9a1b536
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs/installer/fileutils.h')
-rw-r--r-- | src/libs/installer/fileutils.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libs/installer/fileutils.h b/src/libs/installer/fileutils.h index ae08f5ff3..3607a189b 100644 --- a/src/libs/installer/fileutils.h +++ b/src/libs/installer/fileutils.h @@ -36,10 +36,17 @@ QT_BEGIN_NAMESPACE class QFileInfo; +class QFile; class QUrl; QT_END_NAMESPACE namespace QInstaller { + +enum DefaultFilePermissions { + NonExecutable = 0x6644, + Executable = 0x7755 +}; + class INSTALLER_EXPORT TempDirDeleter { public: @@ -80,6 +87,9 @@ private: void INSTALLER_EXPORT removeDirectoryThreaded(const QString &path, bool ignoreErrors = false); void INSTALLER_EXPORT removeSystemGeneratedFiles(const QString &path); + bool INSTALLER_EXPORT setDefaultFilePermissions(const QString &fileName, DefaultFilePermissions permissions); + bool INSTALLER_EXPORT setDefaultFilePermissions(QFile *file, DefaultFilePermissions permissions); + QString INSTALLER_EXPORT generateTemporaryFileName(const QString &templ=QString()); void INSTALLER_EXPORT moveDirectoryContents(const QString &sourceDir, const QString &targetDir); |