summaryrefslogtreecommitdiffstats
path: root/filesharing/advanced/kcm_sambaconf/usertabimpl.h
blob: df8e4a34a802361909f220817b4cf97452a2c523 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/***************************************************************************
                          usertabimpl.h  -  description
                             -------------------
    begin                : Mon Jul 15 2002
    copyright            : (C) 2002 by Jan Schäfer
    email                : janschaefer@users.sourceforge.net
 ***************************************************************************/

/******************************************************************************
 *                                                                            *
 *  This file is part of KSambaPlugin.                                        *
 *                                                                            *
 *  KSambaPlugin is free software; you can redistribute it and/or modify      *
 *  it under the terms of the GNU General Public License as published by      *
 *  the Free Software Foundation; either version 2 of the License, or         *
 *  (at your option) any later version.                                       *
 *                                                                            *
 *  KSambaPlugin is distributed in the hope that it will be useful,           *
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of            *
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             *
 *  GNU General Public License for more details.                              *
 *                                                                            *
 *  You should have received a copy of the GNU General Public License         *
 *  along with KSambaPlugin; if not, write to the Free Software                     *
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA  *
 *                                                                            *
 ******************************************************************************/

#ifndef USERTABIMPL_H
#define USERTABIMPL_H

#include "usertab.h"
#include "common.h"
#include "qstringlist.h"

/**
  *@author Jan Schäfer
  */

class KListViewItem;
class SambaShare;

/**
 * Implements the usertab.ui interface
 * A Widget where you can add SambaUsers to the valid users, rejected users,
 * write list, read list and admin list parameters of the smb.conf file
 **/
class UserTabImpl : public UserTab
{
Q_OBJECT
public:
	UserTabImpl(QWidget* parent, SambaShare* share);
	~UserTabImpl();

  void load();
  void save();
private:
  SambaShare* _share;
  QStringList _specifiedUsers;
  QStringList _specifiedGroups;

  void setAllowedUser(int, const QString &);
  void removeDuplicates( QStringList & validUsers, QStringList & readList,
                         QStringList & writeList, QStringList & adminUsers,
                         QStringList & invalidUsers);

  void removeAll(QStringList & entryList, QStringList & fromList);
  void addListToUserTable(const QStringList & list, int accessRight);
  void loadForceCombos();

  void loadUsers(const QString & validUsersStr,
                 const QString & readListStr,
                 const QString & writeListStr,
                 const QString & adminUsersStr,
                 const QString & invalidUsersStr);

  void saveUsers(QString & validUsersStr,
                 QString & readListStr,
                 QString & writeListStr,
                 QString & adminUsersStr,
                 QString & invalidUsersStr);

  bool nameIsGroup(const QString & name);
  QString removeGroupTag(const QString & name);
  QString removeQuotationMarks(const QString & name);
  void addUserToUserTable(const QString & user, int accessRight);

protected slots:
  virtual void addUserBtnClicked();
  virtual void addGroupBtnClicked();
  virtual void removeSelectedBtnClicked();
  virtual void expertBtnClicked();
};

#endif