• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KIO

  • kio
  • kio
ksambasharedata.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2010 Rodrigo Belem <rclbelem@gmail.com>
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) version 3, or any
8 * later version accepted by the membership of KDE e.V. (or its
9 * successor approved by the membership of KDE e.V.), which shall
10 * act as a proxy defined in Section 6 of version 3 of the license.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library. If not, see <http://www.gnu.org/licenses/>
19 */
20
21#include <QtCore/QRegExp>
22#include <QtCore/QFileInfo>
23#include <QtCore/QStringList>
24
25#include "ksambashare.h"
26#include "ksambashare_p.h"
27#include "ksambasharedata.h"
28#include "ksambasharedata_p.h"
29
30//TODO: add support for this samba options
31// usershare allow guests=P_BOOL,FLAG_ADVANCED
32// usershare max shares=P_INTEGER,FLAG_ADVANCED
33// usershare owner only=P_BOOL,FLAG_ADVANCED
34// usershare path=P_STRING,FLAG_ADVANCED
35// usershare prefix allow list=P_LIST,FLAG_ADVANCED
36// usershare prefix deny list=P_LIST,FLAG_ADVANCED
37// usershare template share=P_STRING,FLAG_ADVANCED
38
39KSambaShareData::KSambaShareData()
40 : dd(new KSambaShareDataPrivate)
41{
42}
43
44KSambaShareData::KSambaShareData(const KSambaShareData &other)
45 : dd(other.dd)
46{
47}
48
49KSambaShareData::~KSambaShareData()
50{
51}
52
53QString KSambaShareData::name() const
54{
55 return dd->name;
56}
57
58QString KSambaShareData::path() const
59{
60 return dd->path;
61}
62
63QString KSambaShareData::comment() const
64{
65 return dd->comment;
66}
67
68QString KSambaShareData::acl() const
69{
70 return dd->acl;
71}
72
73KSambaShareData::GuestPermission KSambaShareData::guestPermission() const
74{
75 return (dd->guestPermission == QLatin1String("n")) ? GuestsNotAllowed : GuestsAllowed;
76}
77
78KSambaShareData::UserShareError KSambaShareData::setName(const QString &name)
79{
80 if (!KSambaShare::instance()->d_func()->isShareNameValid(name)) {
81 return UserShareNameInvalid;
82 }
83
84 if (!KSambaShare::instance()->d_func()->isShareNameAvailable(name)) {
85 return UserShareNameInUse;
86 }
87
88
89 if (!dd->name.isEmpty()) {
90 dd.detach();
91 }
92
93 dd->name = name;
94
95 return UserShareNameOk;
96}
97
98KSambaShareData::UserShareError KSambaShareData::setPath(const QString &path)
99{
100 UserShareError result = KSambaShare::instance()->d_func()->isPathValid(path);
101 if (result == UserSharePathOk) {
102 dd->path = path;
103 }
104
105 return result;
106}
107
108KSambaShareData::UserShareError KSambaShareData::setComment(const QString &comment)
109{
110 dd->comment = comment;
111
112 return UserShareCommentOk;
113}
114
115KSambaShareData::UserShareError KSambaShareData::setAcl(const QString &acl)
116{
117 UserShareError result = KSambaShare::instance()->d_func()->isAclValid(acl);
118 if (result == UserShareAclOk) {
119 dd->acl = acl;
120 }
121
122 return result;
123}
124
125KSambaShareData::UserShareError KSambaShareData::setGuestPermission(const GuestPermission &permission)
126{
127 UserShareError result = KSambaShare::instance()->d_func()->guestsAllowed(permission);
128 if (result == UserShareGuestsOk) {
129 dd->guestPermission = (permission == GuestsNotAllowed) ? "n" : "y";
130 }
131
132 return result;
133}
134
135KSambaShareData::UserShareError KSambaShareData::save()
136{
137 if (dd->name.isEmpty()) {
138 return UserShareNameInvalid;
139 } else if (dd->path.isEmpty()) {
140 return UserSharePathInvalid;
141 } else {
142 return KSambaShare::instance()->d_func()->add(*this);
143 }
144}
145
146KSambaShareData::UserShareError KSambaShareData::remove()
147{
148 if (dd->name.isEmpty()) {
149 return UserShareNameInvalid;
150 } else {
151 return KSambaShare::instance()->d_func()->remove(*this);
152 }
153}
154
155KSambaShareData &KSambaShareData::operator=(const KSambaShareData &other)
156{
157 if (&other != this) {
158 dd = other.dd;
159 }
160
161 return *this;
162}
163
164bool KSambaShareData::operator==(const KSambaShareData &other) const
165{
166 return other.dd == dd;
167}
168
169bool KSambaShareData::operator!=(const KSambaShareData &other) const
170{
171 return !(&other == this);
172}
KSambaShareDataPrivate
Definition: ksambasharedata_p.h:29
KSambaShareData
This class represents a Samba user share.
Definition: ksambasharedata.h:40
KSambaShareData::GuestPermission
GuestPermission
Definition: ksambasharedata.h:43
KSambaShareData::GuestsNotAllowed
@ GuestsNotAllowed
Definition: ksambasharedata.h:44
KSambaShareData::GuestsAllowed
@ GuestsAllowed
Definition: ksambasharedata.h:45
KSambaShareData::acl
QString acl() const
Returns a containing a string describing the permission added to the users, such as "[DOMAIN\]usernam...
Definition: ksambasharedata.cpp:68
KSambaShareData::setPath
KSambaShareData::UserShareError setPath(const QString &path)
Set the path for the share.
Definition: ksambasharedata.cpp:98
KSambaShareData::setAcl
KSambaShareData::UserShareError setAcl(const QString &acl)
Sets the acl to the share.
Definition: ksambasharedata.cpp:115
KSambaShareData::comment
QString comment() const
Definition: ksambasharedata.cpp:63
KSambaShareData::UserShareError
UserShareError
Definition: ksambasharedata.h:48
KSambaShareData::UserSharePathInvalid
@ UserSharePathInvalid
Definition: ksambasharedata.h:55
KSambaShareData::UserSharePathOk
@ UserSharePathOk
Definition: ksambasharedata.h:54
KSambaShareData::UserShareNameInUse
@ UserShareNameInUse
Definition: ksambasharedata.h:53
KSambaShareData::UserShareGuestsOk
@ UserShareGuestsOk
Definition: ksambasharedata.h:64
KSambaShareData::UserShareAclOk
@ UserShareAclOk
Definition: ksambasharedata.h:60
KSambaShareData::UserShareNameOk
@ UserShareNameOk
Definition: ksambasharedata.h:51
KSambaShareData::UserShareNameInvalid
@ UserShareNameInvalid
Definition: ksambasharedata.h:52
KSambaShareData::UserShareCommentOk
@ UserShareCommentOk
Definition: ksambasharedata.h:63
KSambaShareData::setGuestPermission
KSambaShareData::UserShareError setGuestPermission(const GuestPermission &permission=KSambaShareData::GuestsNotAllowed)
Flags if guest is allowed or not to access the share.
Definition: ksambasharedata.cpp:125
KSambaShareData::operator==
bool operator==(const KSambaShareData &other) const
Definition: ksambasharedata.cpp:164
KSambaShareData::guestPermission
KSambaShareData::GuestPermission guestPermission() const
Definition: ksambasharedata.cpp:73
KSambaShareData::remove
KSambaShareData::UserShareError remove()
Unshare the folder held by the object.
Definition: ksambasharedata.cpp:146
KSambaShareData::~KSambaShareData
~KSambaShareData()
Definition: ksambasharedata.cpp:49
KSambaShareData::setComment
KSambaShareData::UserShareError setComment(const QString &comment)
Sets the comment for the share.
Definition: ksambasharedata.cpp:108
KSambaShareData::KSambaShareData
KSambaShareData()
Definition: ksambasharedata.cpp:39
KSambaShareData::operator!=
bool operator!=(const KSambaShareData &other) const
Definition: ksambasharedata.cpp:169
KSambaShareData::operator=
KSambaShareData & operator=(const KSambaShareData &other)
Definition: ksambasharedata.cpp:155
KSambaShareData::save
KSambaShareData::UserShareError save()
Share the folder with the information that has been set.
Definition: ksambasharedata.cpp:135
KSambaShareData::path
QString path() const
Definition: ksambasharedata.cpp:58
KSambaShareData::name
QString name() const
Definition: ksambasharedata.cpp:53
KSambaShareData::setName
KSambaShareData::UserShareError setName(const QString &name)
Sets the share name.
Definition: ksambasharedata.cpp:78
KSambaShare::instance
static KSambaShare * instance()
Definition: ksambashare.cpp:498
ksambashare.h
ksambashare_p.h
ksambasharedata.h
ksambasharedata_p.h
name
const char * name(StandardAction id)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KIO

Skip menu "KIO"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal