summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/usermanager/userdialog.cpp23
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 */
189bool UserDialog::addUser(int uid, int gid) { 190bool 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 }