-rw-r--r-- | noncore/settings/usermanager/userdialog.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp index 90e27d5..c43b391 100644 --- a/noncore/settings/usermanager/userdialog.cpp +++ b/noncore/settings/usermanager/userdialog.cpp | |||
@@ -7,16 +7,17 @@ | |||
7 | * * | 7 | * * |
8 | ***************************************************************************/ | 8 | ***************************************************************************/ |
9 | 9 | ||
10 | #include "userdialog.h" | 10 | #include "userdialog.h" |
11 | 11 | ||
12 | #include <qlayout.h> | 12 | #include <qlayout.h> |
13 | #include <qlabel.h> | 13 | #include <qlabel.h> |
14 | #include <qmessagebox.h> | 14 | #include <qmessagebox.h> |
15 | #include <qfile.h> | ||
15 | 16 | ||
16 | #include <stdlib.h> | 17 | #include <stdlib.h> |
17 | 18 | ||
18 | #include <stdio.h> | 19 | #include <stdio.h> |
19 | #include <sys/types.h> | 20 | #include <sys/types.h> |
20 | #include <sys/wait.h> | 21 | #include <sys/wait.h> |
21 | #include <unistd.h> | 22 | #include <unistd.h> |
22 | #include <signal.h> | 23 | #include <signal.h> |
@@ -182,43 +183,59 @@ void UserDialog::setupTab2() { | |||
182 | * | 183 | * |
183 | * @param uid This is a suggested available UID. | 184 | * @param uid This is a suggested available UID. |
184 | * @param gid This is a suggested available GID. | 185 | * @param gid This is a suggested available GID. |
185 | * | 186 | * |
186 | * @return <code>true</code> if the user was successfully added, otherwise <code>false</code>. | 187 | * @return <code>true</code> if the user was successfully added, otherwise <code>false</code>. |
187 | * | 188 | * |
188 | */ | 189 | */ |
189 | bool UserDialog::addUser(int uid, int gid) { | 190 | bool UserDialog::addUser(int uid, int gid) { |
191 | QCheckListItem *temp; | ||
192 | QFile ozTest; | ||
193 | int oz=ozTest.exists("/etc/oz_version"); | ||
190 | UserDialog *adduserDialog=new UserDialog(); | 194 | UserDialog *adduserDialog=new UserDialog(); |
191 | adduserDialog->setCaption(tr("Add User")); | 195 | adduserDialog->setCaption(tr("Add User")); |
192 | adduserDialog->userID=uid;// Set next available UID as default uid. | 196 | adduserDialog->userID=uid;// Set next available UID as default uid. |
193 | adduserDialog->groupID=gid;// Set next available GID as default gid. | 197 | adduserDialog->groupID=gid;// Set next available GID as default gid. |
194 | // Insert default group into groupComboBox | 198 | // Insert default group into groupComboBox |
195 | adduserDialog->groupComboBox->insertItem("<create new group>",0); | 199 | adduserDialog->groupComboBox->insertItem("<create new group>",0); |
196 | adduserDialog->uidLineEdit->setText(QString::number(uid)); | 200 | adduserDialog->uidLineEdit->setText(QString::number(uid)); |
201 | // If we're running on OZ, add new users to some default groups. | ||
202 | if(oz) { | ||
203 | QListViewItemIterator iter( adduserDialog->groupsListView ); | ||
204 | for ( ; iter.current(); ++iter ) { | ||
205 | temp=(QCheckListItem*)iter.current(); | ||
206 | if (temp->text()=="video") temp->setOn(true); | ||
207 | if (temp->text()=="audio") temp->setOn(true); | ||
208 | if (temp->text()=="time") temp->setOn(true); | ||
209 | if (temp->text()=="power") temp->setOn(true); | ||
210 | if (temp->text()=="input") temp->setOn(true); | ||
211 | if (temp->text()=="sharp") temp->setOn(true); | ||
212 | if (temp->text()=="tty") temp->setOn(true); | ||
213 | } | ||
214 | } | ||
197 | // Show the dialog! | 215 | // Show the dialog! |
198 | if(!(adduserDialog->exec())) return false; | 216 | if(!(adduserDialog->exec())) return false; |
199 | if((adduserDialog->groupComboBox->currentItem()!=0)) { | 217 | if((adduserDialog->groupComboBox->currentItem()!=0)) { |
200 | accounts->findGroup(adduserDialog->groupComboBox->currentText()); | 218 | accounts->findGroup(adduserDialog->groupComboBox->currentText()); |
201 | adduserDialog->groupID=accounts->gr_gid; | 219 | adduserDialog->groupID=accounts->gr_gid; |
202 | qWarning(QString::number(accounts->gr_gid)); | 220 | qWarning(QString::number(accounts->gr_gid)); |
203 | } | 221 | } |
204 | if(!(accounts->addUser(adduserDialog->loginLineEdit->text(), adduserDialog->passwordLineEdit->text(), | 222 | if(!(accounts->addUser(adduserDialog->loginLineEdit->text(), adduserDialog->passwordLineEdit->text(), |
205 | adduserDialog->uidLineEdit->text().toInt(), adduserDialog->groupID, adduserDialog->gecosLineEdit->text(), | 223 | adduserDialog->uidLineEdit->text().toInt(), adduserDialog->groupID, adduserDialog->gecosLineEdit->text(), |
206 | QString("/home/")+adduserDialog->loginLineEdit->text() , adduserDialog->shellComboBox->currentText()))) { | 224 | QString("/home/")+adduserDialog->loginLineEdit->text() , adduserDialog->shellComboBox->currentText()))) { |
207 | QMessageBox::information(0,"Ooops!","Something went wrong!\nUnable to add user."); | 225 | QMessageBox::information(0,"Ooops!","Something went wrong!\nUnable to add user."); |
208 | return false; | 226 | return false; |
209 | } | 227 | } |
210 | 228 | ||
211 | // Add User to additional groups. | 229 | // Add User to additional groups. |
212 | QCheckListItem *temp; | ||
213 | QListViewItemIterator it( adduserDialog->groupsListView ); | 230 | QListViewItemIterator it( adduserDialog->groupsListView ); |
214 | for ( ; it.current(); ++it ) { | 231 | for ( ; it.current(); ++it ) { |
215 | temp=(QCheckListItem*)it.current(); | 232 | temp=(QCheckListItem*)it.current(); |
216 | if (temp->isOn() ) | 233 | if (temp->isOn() ) |
217 | accounts->addGroupMember(it.current()->text(0),adduserDialog->loginLineEdit->text()); | 234 | accounts->addGroupMember(it.current()->text(0),adduserDialog->loginLineEdit->text()); |
218 | } | 235 | } |
219 | // Copy image to pics/users/ | 236 | // Copy image to pics/users/ |
220 | if(!(adduserDialog->userImage.isNull())) { | 237 | if(!(adduserDialog->userImage.isNull())) { |
221 | QDir d; | 238 | QDir d; |
222 | if(!(d.exists("/opt/QtPalmtop/pics/users"))) { | 239 | if(!(d.exists("/opt/QtPalmtop/pics/users"))) { |
223 | d.mkdir("/opt/QtPalmtop/pics/users"); | 240 | d.mkdir("/opt/QtPalmtop/pics/users"); |
224 | } | 241 | } |