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
15class QString;
16class KSambaShare;
17
18class KSambaSharePrivate
19{
20public:
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 &parameterName);
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
49private:
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

source code of kio/src/core/ksambashare_p.h