File indexing completed on 2023-10-03 03:20:02
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 ¶meterName); 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