summaryrefslogtreecommitdiff
path: root/core/settings
authorclem <clem>2004-09-30 15:11:21 (UTC)
committer clem <clem>2004-09-30 15:11:21 (UTC)
commita823eb5b367c32936a9958f69a9981a55e2022bf (patch) (unidiff)
tree96c61ec870bd72f53047439eb9c610207e510f6a /core/settings
parent5cb30454d4a974bacfae126a5b8b321bae8ca600 (diff)
downloadopie-a823eb5b367c32936a9958f69a9981a55e2022bf.zip
opie-a823eb5b367c32936a9958f69a9981a55e2022bf.tar.gz
opie-a823eb5b367c32936a9958f69a9981a55e2022bf.tar.bz2
- As Zecke suggested, we now hide the plugin list and authentication
configuration tabs if no authentication plugin is installed (but we tell the user a few things about authentication in a third tab). - Small warning about syncnet removed.
Diffstat (limited to 'core/settings') (more/less context) (show whitespace changes)
-rw-r--r--core/settings/security/multiauthconfig.cpp50
-rw-r--r--core/settings/security/multiauthconfig.h1
2 files changed, 51 insertions, 0 deletions
diff --git a/core/settings/security/multiauthconfig.cpp b/core/settings/security/multiauthconfig.cpp
index ff11e49..3c73d7b 100644
--- a/core/settings/security/multiauthconfig.cpp
+++ b/core/settings/security/multiauthconfig.cpp
@@ -3,6 +3,7 @@
3#include <opie2/odebug.h> 3#include <opie2/odebug.h>
4 4
5#include <qgroupbox.h> 5#include <qgroupbox.h>
6#include <qvgroupbox.h>
6#include <qpe/resource.h> 7#include <qpe/resource.h>
7#include <qlayout.h> 8#include <qlayout.h>
8#include <qlabel.h> 9#include <qlabel.h>
@@ -148,10 +149,24 @@ MultiauthConfig::MultiauthConfig(QWidget* par, const char* w, WFlags f)
148 */ 149 */
149 test_and_start(); 150 test_and_start();
150 151
152 /* Checks (and memorizes) if any authentication plugins are
153 * installed on the system
154 */
155 QString path = QPEApplication::qpeDir() + "/plugins/security";
156 QDir dir( path, "lib*.so" );
157 QStringList list = dir.entryList();
158
159 m_pluginsInstalled = ! list.isEmpty();
160 if (m_pluginsInstalled == false)
161 owarn << "no authentication plugins installed! Talking about it in the last tab..." << oendl;
162
151 setCaption( tr( "Security configuration" ) ); 163 setCaption( tr( "Security configuration" ) );
152 QVBoxLayout *layout = new QVBoxLayout( this ); 164 QVBoxLayout *layout = new QVBoxLayout( this );
153 m_mainTW = new Opie::Ui::OTabWidget( this ); 165 m_mainTW = new Opie::Ui::OTabWidget( this );
154 layout->addWidget(m_mainTW); 166 layout->addWidget(m_mainTW);
167
168 if (m_pluginsInstalled)
169 {
155 m_pluginListWidget = new QWidget(m_mainTW, "plugin list widget"); 170 m_pluginListWidget = new QWidget(m_mainTW, "plugin list widget");
156 QVBoxLayout * pluginListLayout = new QVBoxLayout(m_pluginListWidget); 171 QVBoxLayout * pluginListLayout = new QVBoxLayout(m_pluginListWidget);
157 pluginListLayout->setSpacing(6); 172 pluginListLayout->setSpacing(6);
@@ -178,6 +193,7 @@ MultiauthConfig::MultiauthConfig(QWidget* par, const char* w, WFlags f)
178 m_generalConfig = new MultiauthGeneralConfig(m_mainTW); 193 m_generalConfig = new MultiauthGeneralConfig(m_mainTW);
179 m_mainTW->addTab(m_generalConfig, "SettingsIcon", tr( "Authentication") ); 194 m_mainTW->addTab(m_generalConfig, "SettingsIcon", tr( "Authentication") );
180 195
196 }
181 // login settings page 197 // login settings page
182 m_loginWidget = new LoginBase(m_mainTW, "login config widget"); 198 m_loginWidget = new LoginBase(m_mainTW, "login config widget");
183 m_mainTW->addTab(m_loginWidget, "security/users", tr( "Login") ); 199 m_mainTW->addTab(m_loginWidget, "security/users", tr( "Login") );
@@ -189,6 +205,9 @@ MultiauthConfig::MultiauthConfig(QWidget* par, const char* w, WFlags f)
189 // read the "Security" Config file and update our UI 205 // read the "Security" Config file and update our UI
190 readConfig(); 206 readConfig();
191 207
208
209 if (m_pluginsInstalled)
210 {
192 /* loads plugins configuration widgets in mainTW tabs and in pluginListView 211 /* loads plugins configuration widgets in mainTW tabs and in pluginListView
193 */ 212 */
194 213
@@ -223,6 +242,26 @@ MultiauthConfig::MultiauthConfig(QWidget* par, const char* w, WFlags f)
223 242
224 // put the number of plugins as the max number of req. auth. 243 // put the number of plugins as the max number of req. auth.
225 m_generalConfig->nbSuccessMin->setMaxValue( pluginList.count() ); 244 m_generalConfig->nbSuccessMin->setMaxValue( pluginList.count() );
245 }
246 else
247 {
248 /* we don't have any installed plugin there. Let's tell
249 * that to the user in a third tab, using the m_pluginListWidget widget
250 */
251 m_pluginListWidget = new QWidget(m_mainTW, "plugin list widget (no plugins warning)");
252 QVBoxLayout * pluginListLayout = new QVBoxLayout(m_pluginListWidget);
253 pluginListLayout->setSpacing(11);
254 pluginListLayout->setMargin(11);
255 pluginListLayout->setAlignment( Qt::AlignTop );
256 QVGroupBox *warningBox = new QVGroupBox(tr("Important notice"), m_pluginListWidget, "noPlugins warning box");
257 pluginListLayout->addWidget(warningBox);
258 QLabel * warningText = new QLabel( "<p>" + tr("To be able to protect your PDA with one or more authentication plugins (for example, a simple PIN authentication), you must install at least one <em>opie-multiauth-*</em> package! Once you have done that, you will be able to configure your PDA protection here.") + "</p>", warningBox );
259
260 m_mainTW->addTab(m_pluginListWidget, "security/Security", tr( "Locking") );
261
262 // set the first tab as default.
263 m_mainTW->setCurrentTab(m_loginWidget);
264 }
226 265
227 showMaximized(); 266 showMaximized();
228} 267}
@@ -271,6 +310,9 @@ void MultiauthConfig::readConfig()
271{ 310{
272 // pointer, so we release this Config when we want 311 // pointer, so we release this Config when we want
273 Config* pcfg = new Config("Security"); 312 Config* pcfg = new Config("Security");
313
314 if (m_pluginsInstalled)
315 {
274 pcfg->setGroup( "Misc" ); 316 pcfg->setGroup( "Misc" );
275 m_generalConfig->onStart->setChecked( pcfg->readBoolEntry( "onStart", false ) ); 317 m_generalConfig->onStart->setChecked( pcfg->readBoolEntry( "onStart", false ) );
276 m_generalConfig->onResume->setChecked( pcfg->readBoolEntry( "onResume", false ) ); 318 m_generalConfig->onResume->setChecked( pcfg->readBoolEntry( "onResume", false ) );
@@ -282,6 +324,7 @@ void MultiauthConfig::readConfig()
282 pcfg->setGroup( "Plugins" ); 324 pcfg->setGroup( "Plugins" );
283 m_excludePlugins = pcfg->readListEntry( "ExcludePlugins", ',' ); 325 m_excludePlugins = pcfg->readListEntry( "ExcludePlugins", ',' );
284 m_allPlugins = pcfg->readListEntry( "AllPlugins", ',' ); 326 m_allPlugins = pcfg->readListEntry( "AllPlugins", ',' );
327 }
285 328
286 /* Login and Sync stuff */ 329 /* Login and Sync stuff */
287 pcfg->setGroup("Sync"); 330 pcfg->setGroup("Sync");
@@ -351,6 +394,9 @@ void MultiauthConfig::readConfig()
351void MultiauthConfig::writeConfig() 394void MultiauthConfig::writeConfig()
352{ 395{
353 Config* pcfg = new Config("Security"); 396 Config* pcfg = new Config("Security");
397
398 if (m_pluginsInstalled)
399 {
354 pcfg->setGroup( "Plugins" ); 400 pcfg->setGroup( "Plugins" );
355 QStringList exclude; 401 QStringList exclude;
356 QStringList include; 402 QStringList include;
@@ -383,6 +429,7 @@ void MultiauthConfig::writeConfig()
383 pcfg->writeEntry( "noProtectConfig", m_generalConfig->noProtectConfig->isChecked() ); 429 pcfg->writeEntry( "noProtectConfig", m_generalConfig->noProtectConfig->isChecked() );
384 pcfg->writeEntry( "explanScreens", m_generalConfig->explanScreens->isChecked() ); 430 pcfg->writeEntry( "explanScreens", m_generalConfig->explanScreens->isChecked() );
385 pcfg->writeEntry( "allowBypass", m_generalConfig->allowBypass->isChecked() ); 431 pcfg->writeEntry( "allowBypass", m_generalConfig->allowBypass->isChecked() );
432 }
386 433
387 /* Login and Sync stuff */ 434 /* Login and Sync stuff */
388 435
@@ -400,7 +447,10 @@ void MultiauthConfig::writeConfig()
400 for (int i=0; i<10; i++) { 447 for (int i=0; i<10; i++) {
401 QString target; 448 QString target;
402 target.sprintf("net%d", i); 449 target.sprintf("net%d", i);
450 if ( i < m_syncWidget->syncnet->count() )
403 pcfg->writeEntry(target,m_syncWidget->syncnet->text(i)); 451 pcfg->writeEntry(target,m_syncWidget->syncnet->text(i));
452 else // no more entry in the syncnet list -> we clear the line
453 pcfg->writeEntry(target, "");
404 } 454 }
405 455
406#ifdef ODP 456#ifdef ODP
diff --git a/core/settings/security/multiauthconfig.h b/core/settings/security/multiauthconfig.h
index 649815d..5287083 100644
--- a/core/settings/security/multiauthconfig.h
+++ b/core/settings/security/multiauthconfig.h
@@ -121,6 +121,7 @@ private:
121 121
122 int m_nbSuccessReq; 122 int m_nbSuccessReq;
123 bool m_plugins_changed; 123 bool m_plugins_changed;
124 bool m_pluginsInstalled;
124 125
125 void readConfig(); 126 void readConfig();
126 void loadPlugins(); 127 void loadPlugins();