File indexing completed on 2024-04-28 11:41:04

0001 /*
0002     SPDX-FileCopyrightText: 2010 Rodrigo Belem <rclbelem@gmail.com>
0003     SPDX-FileCopyrightText: 2020 Harald Sitter <sitter@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #ifndef ksambashare_p_h
0009 #define ksambashare_p_h
0010 
0011 #include <QMap>
0012 
0013 #include "ksambasharedata.h"
0014 
0015 class QString;
0016 class KSambaShare;
0017 
0018 class KSambaSharePrivate
0019 {
0020 public:
0021     explicit KSambaSharePrivate(KSambaShare *parent);
0022     ~KSambaSharePrivate();
0023 
0024     static bool isSambaInstalled();
0025 #if KIOCORE_BUILD_DEPRECATED_SINCE(4, 6)
0026     bool findSmbConf();
0027 #endif
0028     void setUserSharePath();
0029 
0030     static int runProcess(const QString &progName, const QStringList &args, QByteArray &stdOut, QByteArray &stdErr);
0031     static QString testparmParamValue(const QString &parameterName);
0032 
0033     QByteArray getNetUserShareInfo();
0034     QStringList shareNames() const;
0035     QStringList sharedDirs() const;
0036     KSambaShareData getShareByName(const QString &shareName) const;
0037     QList<KSambaShareData> getSharesByPath(const QString &path) const;
0038 
0039     bool isShareNameValid(const QString &name) const;
0040     bool isDirectoryShared(const QString &path) const;
0041     bool isShareNameAvailable(const QString &name) const;
0042     bool areGuestsAllowed() const;
0043     KSambaShareData::UserShareError isPathValid(const QString &path) const;
0044     KSambaShareData::UserShareError isAclValid(const QString &acl) const;
0045     KSambaShareData::UserShareError guestsAllowed(const KSambaShareData::GuestPermission &guestok) const;
0046 
0047     KSambaShareData::UserShareError add(const KSambaShareData &shareData);
0048     KSambaShareData::UserShareError remove(const KSambaShareData &shareName);
0049     static QMap<QString, KSambaShareData> parse(const QByteArray &usershareData);
0050 
0051     void slotFileChange(const QString &path);
0052 
0053 private:
0054     KSambaShare *const q_ptr;
0055     Q_DECLARE_PUBLIC(KSambaShare)
0056 
0057     QMap<QString, KSambaShareData> data;
0058     QString smbConf;
0059     QString userSharePath;
0060     bool skipUserShare;
0061     QByteArray m_stdErr;
0062 };
0063 
0064 #endif