author | umopapisdn <umopapisdn> | 2002-09-28 06:36:30 (UTC) |
---|---|---|
committer | umopapisdn <umopapisdn> | 2002-09-28 06:36:30 (UTC) |
commit | 8a95ca149ff5eedc9215bb012c8d7d09cdcaf96c (patch) (unidiff) | |
tree | 50aed468fa8888266c589ce47131d0acaf7f82b7 | |
parent | 996c0d02d16c185acc3190baa5b4a1fc934e730c (diff) | |
download | opie-8a95ca149ff5eedc9215bb012c8d7d09cdcaf96c.zip opie-8a95ca149ff5eedc9215bb012c8d7d09cdcaf96c.tar.gz opie-8a95ca149ff5eedc9215bb012c8d7d09cdcaf96c.tar.bz2 |
Now actually makes the homedirectories owned by the user they belong to. :)
-rw-r--r-- | noncore/settings/usermanager/passwd.cpp | 5 | ||||
-rw-r--r-- | noncore/settings/usermanager/userdialog.cpp | 10 | ||||
-rw-r--r-- | noncore/settings/usermanager/userdialog.h | 2 | ||||
-rw-r--r-- | noncore/settings/usermanager/usermanager.pro | 2 |
4 files changed, 15 insertions, 4 deletions
diff --git a/noncore/settings/usermanager/passwd.cpp b/noncore/settings/usermanager/passwd.cpp index 310cef8..5063661 100644 --- a/noncore/settings/usermanager/passwd.cpp +++ b/noncore/settings/usermanager/passwd.cpp | |||
@@ -8,12 +8,13 @@ | |||
8 | ***************************************************************************/ | 8 | ***************************************************************************/ |
9 | 9 | ||
10 | #include "passwd.h" | 10 | #include "passwd.h" |
11 | 11 | ||
12 | // Needed for crypt_make_salt(); | 12 | // Needed for crypt_make_salt(); |
13 | #include <sys/types.h> | 13 | #include <sys/types.h> |
14 | #include <sys/stat.h> | ||
14 | #include <unistd.h> | 15 | #include <unistd.h> |
15 | #include <time.h> | 16 | #include <time.h> |
16 | 17 | ||
17 | Passwd::Passwd() { | 18 | Passwd::Passwd() { |
18 | } | 19 | } |
19 | 20 | ||
@@ -136,22 +137,24 @@ bool Passwd::findUser(const char *username) { | |||
136 | 137 | ||
137 | bool Passwd::findUser(int uid) { | 138 | bool Passwd::findUser(int uid) { |
138 | QRegExp userRegExp(QString(":%1\\:").arg(uid)); | 139 | QRegExp userRegExp(QString(":%1\\:").arg(uid)); |
139 | return searchUser(userRegExp); | 140 | return searchUser(userRegExp); |
140 | } | 141 | } |
141 | 142 | ||
142 | bool Passwd::addUser(QString pw_name, QString pw_passwd, int pw_uid, int pw_gid, QString pw_gecos,QString pw_dir, QString pw_shell, bool createGroup=true) { | 143 | bool Passwd::addUser(QString pw_name, QString pw_passwd, int pw_uid, int pw_gid, QString pw_gecos,QString pw_dir, QString pw_shell, bool createGroup) { |
143 | QString tempString; | 144 | QString tempString; |
144 | if((createGroup) && (!(findGroup(pw_gid)))) addGroup(pw_name,pw_gid); | 145 | if((createGroup) && (!(findGroup(pw_gid)))) addGroup(pw_name,pw_gid); |
145 | pw_passwd = crypt(pw_passwd, crypt_make_salt()); | 146 | pw_passwd = crypt(pw_passwd, crypt_make_salt()); |
146 | tempString=pw_name+":"+pw_passwd+":"+QString::number(pw_uid)+":"+QString::number(pw_gid)+":"+pw_gecos+":"+pw_dir+":"+pw_shell; | 147 | tempString=pw_name+":"+pw_passwd+":"+QString::number(pw_uid)+":"+QString::number(pw_gid)+":"+pw_gecos+":"+pw_dir+":"+pw_shell; |
147 | passwdStringList.append(tempString); | 148 | passwdStringList.append(tempString); |
148 | // Make home dir. | 149 | // Make home dir. |
149 | QDir d; | 150 | QDir d; |
150 | if(!(d.exists(pw_dir))) { | 151 | if(!(d.exists(pw_dir))) { |
151 | d.mkdir(pw_dir); | 152 | d.mkdir(pw_dir); |
153 | chown(pw_dir,pw_uid,pw_gid); | ||
154 | chmod(pw_dir,S_IRUSR|S_IWUSR|S_IXUSR); | ||
152 | } | 155 | } |
153 | return 1; | 156 | return 1; |
154 | } | 157 | } |
155 | 158 | ||
156 | bool Passwd::updateUser(QString login) { | 159 | bool Passwd::updateUser(QString login) { |
157 | QRegExp userRegExp(QString("^%1\\:").arg(login)); | 160 | QRegExp userRegExp(QString("^%1\\:").arg(login)); |
diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp index f31775d..6940a3b 100644 --- a/noncore/settings/usermanager/userdialog.cpp +++ b/noncore/settings/usermanager/userdialog.cpp | |||
@@ -34,13 +34,14 @@ UserDialog::UserDialog(QWidget* parent, const char* name, bool modal, WFlags fl) | |||
34 | setupTab1(); | 34 | setupTab1(); |
35 | setupTab2(); | 35 | setupTab2(); |
36 | 36 | ||
37 | // And also fill the listview & the combobox with all available groups. | 37 | // And also fill the listview & the combobox with all available groups. |
38 | for( QStringList::Iterator it = accounts->groupStringList.begin(); it!=accounts->groupStringList.end(); ++it) { | 38 | for( QStringList::Iterator it = accounts->groupStringList.begin(); it!=accounts->groupStringList.end(); ++it) { |
39 | accounts->splitGroupEntry(*it); | 39 | accounts->splitGroupEntry(*it); |
40 | new QListViewItem(groupsListView,accounts->gr_name); | 40 | //new QListViewItem(groupsListView,accounts->gr_name); |
41 | new QCheckListItem(groupsListView,accounts->gr_name,QCheckListItem::CheckBox); | ||
41 | groupComboBox->insertItem(accounts->gr_name); | 42 | groupComboBox->insertItem(accounts->gr_name); |
42 | } | 43 | } |
43 | 44 | ||
44 | showMaximized(); | 45 | showMaximized(); |
45 | } | 46 | } |
46 | 47 | ||
@@ -152,12 +153,13 @@ void UserDialog::setupTab2() { | |||
152 | 153 | ||
153 | // Additional groups | 154 | // Additional groups |
154 | groupsListView=new QListView(tabpage,"groups"); | 155 | groupsListView=new QListView(tabpage,"groups"); |
155 | groupsListView->addColumn("Additional groups"); | 156 | groupsListView->addColumn("Additional groups"); |
156 | groupsListView->setColumnWidthMode(0,QListView::Maximum); | 157 | groupsListView->setColumnWidthMode(0,QListView::Maximum); |
157 | groupsListView->setMultiSelection(true); | 158 | groupsListView->setMultiSelection(true); |
159 | groupsListView->setAllColumnsShowFocus(false); | ||
158 | 160 | ||
159 | layout->addSpacing(5); | 161 | layout->addSpacing(5); |
160 | // Grouplist | 162 | // Grouplist |
161 | layout->addWidget(groupsListView); | 163 | layout->addWidget(groupsListView); |
162 | 164 | ||
163 | myTabWidget->addTab(tabpage,"User Groups"); | 165 | myTabWidget->addTab(tabpage,"User Groups"); |
@@ -312,8 +314,12 @@ void UserDialog::accept() { | |||
312 | 314 | ||
313 | /** | 315 | /** |
314 | * This slot is called when the usericon is clicked, this loads (should) the iconselector. | 316 | * This slot is called when the usericon is clicked, this loads (should) the iconselector. |
315 | * | 317 | * |
316 | */ | 318 | */ |
317 | void UserDialog::clickedPicture() { | 319 | void UserDialog::clickedPicture() { |
318 | QMessageBox::information(0,"Sorry!","Icon selection not yet implemented.\nComming real soon now! (tm)"); | 320 | QString filename=OFileDialog::getOpenFileName(OFileSelector::EXTENDED,"/opt/QtPalmtop/pics"); |
321 | // OFileDialog *fd=new OFileDialog("Select Icon",this, OFileSelector::OPEN, OFileSelector::EXTENDED,"/"); | ||
322 | //fd->showMaximized(); | ||
323 | //fd->exec(); | ||
324 | QMessageBox::information(0,"Sorry!","Icon selection not yet implemented.\nComming real soon now! (tm)\n"+filename); | ||
319 | } | 325 | } |
diff --git a/noncore/settings/usermanager/userdialog.h b/noncore/settings/usermanager/userdialog.h index b44de9e..df54269 100644 --- a/noncore/settings/usermanager/userdialog.h +++ b/noncore/settings/usermanager/userdialog.h | |||
@@ -15,12 +15,14 @@ | |||
15 | #include <qlistview.h> | 15 | #include <qlistview.h> |
16 | #include <qtabwidget.h> | 16 | #include <qtabwidget.h> |
17 | #include <qpushbutton.h> | 17 | #include <qpushbutton.h> |
18 | 18 | ||
19 | #include <qpe/resource.h> | 19 | #include <qpe/resource.h> |
20 | 20 | ||
21 | #include <opie/ofiledialog.h> | ||
22 | |||
21 | class UserDialog : public QDialog | 23 | class UserDialog : public QDialog |
22 | { | 24 | { |
23 | Q_OBJECT | 25 | Q_OBJECT |
24 | private: | 26 | private: |
25 | QTabWidget *myTabWidget; | 27 | QTabWidget *myTabWidget; |
26 | QPushButton *picturePushButton; | 28 | QPushButton *picturePushButton; |
diff --git a/noncore/settings/usermanager/usermanager.pro b/noncore/settings/usermanager/usermanager.pro index fc45f93..2f3212f 100644 --- a/noncore/settings/usermanager/usermanager.pro +++ b/noncore/settings/usermanager/usermanager.pro | |||
@@ -2,9 +2,9 @@ TEMPLATE = app | |||
2 | #CONFIG = qt warn_on debug | 2 | #CONFIG = qt warn_on debug |
3 | CONFIG = qt warn_on release | 3 | CONFIG = qt warn_on release |
4 | HEADERS = usermanager.h userdialog.h groupdialog.h passwd.h | 4 | HEADERS = usermanager.h userdialog.h groupdialog.h passwd.h |
5 | SOURCES = usermanager.cpp userdialog.cpp groupdialog.cpp passwd.h main.cpp | 5 | SOURCES = usermanager.cpp userdialog.cpp groupdialog.cpp passwd.h main.cpp |
6 | INCLUDEPATH+= $(OPIEDIR)/include | 6 | INCLUDEPATH+= $(OPIEDIR)/include |
7 | DEPENDPATH+= $(OPIEDIR)/include | 7 | DEPENDPATH+= $(OPIEDIR)/include |
8 | LIBS += -lqpe -lcrypt | 8 | LIBS += -lqpe -lopie -lcrypt |
9 | TARGET = usermanager | 9 | TARGET = usermanager |
10 | DESTDIR = $(OPIEDIR)/bin | 10 | DESTDIR = $(OPIEDIR)/bin |