1 | /* |
2 | SPDX-FileCopyrightText: 2010 Rodrigo Belem <rclbelem@gmail.com> |
3 | SPDX-FileCopyrightText: 2020 Harald Sitter <sitter@kde.org> |
4 | |
5 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL |
6 | */ |
7 | |
8 | #ifndef ksambashare_p_h |
9 | #define ksambashare_p_h |
10 | |
11 | #include <QMap> |
12 | |
13 | #include "ksambasharedata.h" |
14 | |
15 | class QString; |
16 | class KSambaShare; |
17 | |
18 | class KSambaSharePrivate |
19 | { |
20 | public: |
21 | explicit KSambaSharePrivate(KSambaShare *parent); |
22 | ~KSambaSharePrivate(); |
23 | |
24 | void setUserSharePath(); |
25 | |
26 | static int runProcess(const QString &fullExecutablePath, const QStringList &args, QByteArray &stdOut, QByteArray &stdErr); |
27 | static QString testparmParamValue(const QString ¶meterName); |
28 | |
29 | QByteArray getNetUserShareInfo(); |
30 | QStringList shareNames() const; |
31 | QStringList sharedDirs() const; |
32 | KSambaShareData getShareByName(const QString &shareName) const; |
33 | QList<KSambaShareData> getSharesByPath(const QString &path) const; |
34 | |
35 | bool isShareNameValid(const QString &name) const; |
36 | bool isDirectoryShared(const QString &path) const; |
37 | bool isShareNameAvailable(const QString &name) const; |
38 | bool areGuestsAllowed() const; |
39 | KSambaShareData::UserShareError isPathValid(const QString &path) const; |
40 | KSambaShareData::UserShareError isAclValid(const QString &acl) const; |
41 | KSambaShareData::UserShareError guestsAllowed(const KSambaShareData::GuestPermission &guestok) const; |
42 | |
43 | KSambaShareData::UserShareError add(const KSambaShareData &shareData); |
44 | KSambaShareData::UserShareError remove(const KSambaShareData &shareName); |
45 | static QMap<QString, KSambaShareData> parse(const QByteArray &usershareData); |
46 | |
47 | void slotFileChange(const QString &path); |
48 | |
49 | private: |
50 | KSambaShare *const q_ptr; |
51 | Q_DECLARE_PUBLIC(KSambaShare) |
52 | |
53 | QMap<QString, KSambaShareData> data; |
54 | QString smbConf; |
55 | QString userSharePath; |
56 | bool skipUserShare; |
57 | QByteArray m_stdErr; |
58 | }; |
59 | |
60 | #endif |
61 | |