[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE_3_2_BRANCH: kdelibs/kdecore
From:       Waldo Bastian <bastian () kde ! org>
Date:       2004-06-08 9:27:57
Message-ID: 20040608092757.CC2E9126C1 () office ! kde ! org
[Download RAW message or body]

CVS commit by waba: 

KIOSK: Make it possible to lift kiosk restrictions for the admin user
with finer granularity for configuration purposes.


  M +2 -1      kapplication.cpp   1.637.2.14
  M +9 -23     kinstance.cpp   1.41.2.2
  M +45 -11    kstandarddirs.cpp   1.168.2.3


--- kdelibs/kdecore/kapplication.cpp  #1.637.2.13:1.637.2.14
@@ -134,4 +134,5 @@
 bool kde_have_kipc = true; // magic hook to disable kipc in kdm
 bool kde_kiosk_exception = false; // flag to disable kiosk restrictions
+bool kde_kiosk_admin = false;
 
 KApplication* KApplication::KApp = 0L;

--- kdelibs/kdecore/kinstance.cpp  #1.41.2.1:1.41.2.2
@@ -18,4 +18,5 @@
 #include "kinstance.h"
 
+#include <stdlib.h>
 #include <unistd.h>
 
@@ -26,5 +27,4 @@
 #include "kaboutdata.h"
 #include "kstandarddirs.h"
-#include "kuser.h"
 #include "kdebug.h"
 #include "kglobal.h"
@@ -171,4 +171,5 @@ KStandardDirs *KInstance::dirs() const
 
 extern bool kde_kiosk_exception;
+extern bool kde_kiosk_admin;
 
 KConfig *KInstance::config() const
@@ -201,21 +202,7 @@ KConfig	*KInstance::config() const
                 d->sharedConfig = KSharedConfig::openConfig( QString::null );
         }
-        d->sharedConfig->setGroup( "KDE Action Restrictions" );
-        QString kioskException = d->sharedConfig->readEntry("kiosk_exception");
-        d->sharedConfig->setGroup( QString::null );
-        if (!kioskException.isEmpty() && !kde_kiosk_exception)
-        {
-            int i = kioskException.find(':');
-            QString user = kioskException.left(i);
-            QString host = kioskException.mid(i+1);
 
-            KUser thisUser;
-            char hostname[ 256 ];
-            hostname[ 0 ] = '\0';
-            if (!gethostname( hostname, 255 ))
-                hostname[sizeof(hostname)-1] = '\0';
-                       
-            if ((user == thisUser.loginName()) &&
-                (host.isEmpty() || (host == hostname)))
+        // Check if we are excempt from kiosk restrictions
+        if (kde_kiosk_admin && !kde_kiosk_exception && \
!QCString(getenv("KDE_KIOSK_NO_RESTRICTIONS")).isEmpty())  {
                 kde_kiosk_exception = true;
@@ -223,5 +210,4 @@ KConfig	*KInstance::config() const
                 return config(); // Reread...
             }
-        }
         
         _config = d->sharedConfig;

--- kdelibs/kdecore/kstandarddirs.cpp  #1.168.2.2:1.168.2.3
@@ -52,4 +52,5 @@
 #include "kshell.h"
 #include "ksimpleconfig.h"
+#include "kuser.h"
 #include <sys/param.h>
 #include <unistd.h>
@@ -1280,4 +1281,6 @@ static QStringList lookupProfiles(const 
 }
 
+extern bool kde_kiosk_admin;
+
 bool KStandardDirs::addCustomized(KConfig *config)
 {
@@ -1296,7 +1299,35 @@ bool KStandardDirs::addCustomized(KConfi
     QString group = QString::fromLatin1("Directories");
     config->setGroup(group);
+    
+    QString kioskAdmin = config->readEntry("kioskAdmin");
+    if (!kioskAdmin.isEmpty() && !kde_kiosk_admin)
+    {
+        int i = kioskAdmin.find(':');
+        QString user = kioskAdmin.left(i);
+        QString host = kioskAdmin.mid(i+1);
+
+        KUser thisUser;
+        char hostname[ 256 ];
+        hostname[ 0 ] = '\0';
+        if (!gethostname( hostname, 255 ))
+            hostname[sizeof(hostname)-1] = '\0';
+                       
+        if ((user == thisUser.loginName()) &&
+            (host.isEmpty() || (host == hostname)))
+        {
+            kde_kiosk_admin = true;
+        }
+    }
+    
+    bool readProfiles = true;
+    
+    if (kde_kiosk_admin && !QCString(getenv("KDE_KIOSK_NO_PROFILES")).isEmpty())
+        readProfiles = false;
+
     QString userMapFile = config->readEntry("userProfileMapFile");
 
-    QStringList profiles = lookupProfiles(userMapFile);
+    QStringList profiles;
+    if (readProfiles)
+        profiles = lookupProfiles(userMapFile);
     
     bool priority = false;
@@ -1337,4 +1368,6 @@ bool KStandardDirs::addCustomized(KConfi
 
     // Process KIOSK restrictions.
+    if (!kde_kiosk_admin || QCString(getenv("KDE_KIOSK_NO_RESTRICTIONS")).isEmpty())
+    {
     config->setGroup("KDE Resource Restrictions");
     QMap<QString, QString> entries = config->entryMap("KDE Resource Restrictions");
@@ -1350,4 +1383,5 @@ bool KStandardDirs::addCustomized(KConfi
         }
     }
+    }
 
     config->setGroup(oldGroup);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic