diff -Nur kdeadmin-3.4.0.orig/kuser/propdlg.cpp kdeadmin-3.4.0/kuser/propdlg.cpp --- kdeadmin-3.4.0.orig/kuser/propdlg.cpp 2004-11-29 01:03:48.000000000 +0100 +++ kdeadmin-3.4.0/kuser/propdlg.cpp 2005-04-08 14:05:03.000000000 +0200 @@ -210,6 +210,8 @@ connect(cbposix, SIGNAL(stateChanged(int)), this, SLOT(changed())); connect(cbposix, SIGNAL(stateChanged(int)), this, SLOT(cbposixChanged())); addRow(frame, layout, row++, cbposix, i18n("Disable &POSIX account information"), whatstr); + } else { + cbposix = 0; } frontrow = row; } @@ -706,7 +708,8 @@ bool posix, samba = false; newuser->copy( user ); - if ( cbposix->state() != QButton::NoChange ) { + + if ( kug->getUsers().getCaps() & KUsers::Cap_Disable_POSIX && cbposix->state() != QButton::NoChange ) { if ( cbposix->isChecked() ) newuser->setCaps( newuser->getCaps() & ~KUser::Cap_POSIX ); else @@ -873,7 +876,7 @@ bool propdlg::check() { bool one = ( mUsers.getFirst() == mUsers.getLast() ); - bool posix = !( cbposix->isChecked() ); + bool posix = !( kug->getUsers().getCaps() & KUsers::Cap_Disable_POSIX ) || !( cbposix->isChecked() ); if ( one && posix && leid->text().isEmpty() ) { KMessageBox::sorry( 0, i18n("You need to specify an UID.") ); @@ -928,7 +931,8 @@ uid_t newuid = leid->text().toULong(); - if ( one && !cbposix->isChecked() && olduid != newuid ) + if ( one && ( !( kug->getUsers().getCaps() & KUsers::Cap_Disable_POSIX ) || !cbposix->isChecked() ) + && olduid != newuid ) { if (kug->getUsers().lookup(newuid)) { KMessageBox::sorry( 0,