summaryrefslogtreecommitdiffstats
path: root/filesharing/advanced/kcm_sambaconf/usertabimpl.h
blob: 408ef853fb3b43e8957f01b2ba4e9819760b4e5d (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                : [email protected]
 ***************************************************************************/

/******************************************************************************
 *                                                                            *
 *  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 "tqstringlist.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(TQWidget* parent, SambaShare* share);
	~UserTabImpl();

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

  void setAllowedUser(int, const TQString &);
  void removeDuplicates( TQStringList & validUsers, TQStringList & readList,
                         TQStringList & writeList, TQStringList & adminUsers,
                         TQStringList & invalidUsers);

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

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

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

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

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

#endif