summaryrefslogtreecommitdiff
blob: b73ae0b384e37ac59825ea9abc4d1197414aa4d3 (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
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,