summaryrefslogtreecommitdiff
authorzecke <zecke>2004-07-19 21:48:29 (UTC)
committer zecke <zecke>2004-07-19 21:48:29 (UTC)
commit595d3211a7982471f68bb116fb47cf4c6218d7c1 (patch) (unidiff)
tree1ed2caebe113c43979f0361c172b6232a46fd823
parentd2dfe297f99684ad361240ab4f63dfb1ff8850dd (diff)
downloadopie-595d3211a7982471f68bb116fb47cf4c6218d7c1.zip
opie-595d3211a7982471f68bb116fb47cf4c6218d7c1.tar.gz
opie-595d3211a7982471f68bb116fb47cf4c6218d7c1.tar.bz2
Make it quicklaunchable again
-Do the check if allowed to run in the c'tor of MultiauthConfig and exit(-1) on failure -Adopt the .pro to contain CONFIG quick-app again -main only contains the call to the factory
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/settings/security/main.cpp43
-rw-r--r--core/settings/security/multiauthconfig.cpp50
-rw-r--r--core/settings/security/multiauthconfig.h5
-rw-r--r--core/settings/security/security.pro8
4 files changed, 53 insertions, 53 deletions
diff --git a/core/settings/security/main.cpp b/core/settings/security/main.cpp
index 7f24490..5ba9869 100644
--- a/core/settings/security/main.cpp
+++ b/core/settings/security/main.cpp
@@ -1,44 +1,5 @@
1#include "multiauthconfig.h" 1#include "multiauthconfig.h"
2#include <opie2/oapplication.h>
3#include <opie2/odebug.h>
4 2
3#include <opie2/oapplicationfactory.h>
5 4
6 5OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<MultiauthConfig> );
7int main(int argc, char **argv) {
8 Opie::Core::OApplication app(argc, argv, "MultiAuthentication Config");
9 // protect this dialog if option set
10 Config* pcfg = new Config("Security");
11 pcfg->setGroup( "Misc" );
12 bool protectConfigDialog = ! pcfg->readBoolEntry("noProtectConfig", true);
13 delete pcfg;
14 bool show = true;
15 if ( protectConfigDialog )
16 {
17 if (Opie::Security::Internal::runPlugins() != 0)
18 {
19 // authentication failed
20 show = false;
21 }
22 }
23 if ( show == true ){
24 MultiauthConfig dialog;
25 app.setMainWidget(&dialog);
26
27 if ( dialog.exec() == QDialog::Accepted ) {
28 // write the general, login and sync config
29 dialog.writeConfig();
30 // call writeConfig() on each plugin config widget
31 Opie::Security::MultiauthConfigWidget *confWidget;
32 for ( confWidget = dialog.configWidgetList.first(); confWidget != 0;
33 confWidget = dialog.configWidgetList.next() ) {
34 confWidget->writeConfig();
35 }
36 }
37 dialog.close();
38 app.quit();
39 return 0;
40 } else {
41 owarn << "authentication failed, not showing opie-security" << oendl;
42 return 1;
43 }
44}
diff --git a/core/settings/security/multiauthconfig.cpp b/core/settings/security/multiauthconfig.cpp
index 93e73c3..535352a 100644
--- a/core/settings/security/multiauthconfig.cpp
+++ b/core/settings/security/multiauthconfig.cpp
@@ -85,72 +85,98 @@ MultiauthGeneralConfig::MultiauthGeneralConfig(QWidget * parent, const char * na
85 QGridLayout *devBoxLayout = new QGridLayout( devBox->layout() ); 85 QGridLayout *devBoxLayout = new QGridLayout( devBox->layout() );
86 noProtectConfig = new QCheckBox( tr("Don't protect this config screen"), devBox, "don't protect config"); 86 noProtectConfig = new QCheckBox( tr("Don't protect this config screen"), devBox, "don't protect config");
87 explanScreens = new QCheckBox( tr("Show explanatory screens"), devBox, "Show explan. screens"); 87 explanScreens = new QCheckBox( tr("Show explanatory screens"), devBox, "Show explan. screens");
88 allowBypass = new QCheckBox( tr("Allow to bypass authentication"), devBox, "AllowBypass"); 88 allowBypass = new QCheckBox( tr("Allow to bypass authentication"), devBox, "AllowBypass");
89 QLabel *logicNote = new QLabel( "<p>" + tr("Note: the third option implies the second one") + "</p>", devBox ); 89 QLabel *logicNote = new QLabel( "<p>" + tr("Note: the third option implies the second one") + "</p>", devBox );
90 devBoxLayout->addWidget(noProtectConfig, 0, 0); 90 devBoxLayout->addWidget(noProtectConfig, 0, 0);
91 devBoxLayout->addWidget(explanScreens, 1, 0); 91 devBoxLayout->addWidget(explanScreens, 1, 0);
92 devBoxLayout->addWidget(allowBypass, 2, 0); 92 devBoxLayout->addWidget(allowBypass, 2, 0);
93 devBoxLayout->addMultiCellWidget(logicNote, 3, 3, 0, 1); 93 devBoxLayout->addMultiCellWidget(logicNote, 3, 3, 0, 1);
94 94
95 connect( explanScreens, SIGNAL(toggled(bool)), this, SLOT(checkBypass()) ); 95 connect( explanScreens, SIGNAL(toggled(bool)), this, SLOT(checkBypass()) );
96 connect( allowBypass, SIGNAL(toggled(bool)), this, SLOT(checkScreens()) ); 96 connect( allowBypass, SIGNAL(toggled(bool)), this, SLOT(checkScreens()) );
97} 97}
98 98
99/// nothing to do 99/// nothing to do
100MultiauthGeneralConfig::~MultiauthGeneralConfig() 100MultiauthGeneralConfig::~MultiauthGeneralConfig()
101{} 101{}
102 102
103/// Be sure that explanScreens is checked if allowBypass is 103/// Be sure that explanScreens is checked if allowBypass is
104void MultiauthGeneralConfig::checkScreens() 104void MultiauthGeneralConfig::checkScreens()
105{ 105{
106 if ( (allowBypass->isChecked() == true) && (explanScreens->isChecked() == false) ) 106 if ( (allowBypass->isChecked() == true) && (explanScreens->isChecked() == false) )
107 explanScreens->setChecked(true); 107 explanScreens->setChecked(true);
108} 108}
109 109
110/// Be sure that allowBypass is not checked if explanScreens is not 110/// Be sure that allowBypass is not checked if explanScreens is not
111void MultiauthGeneralConfig::checkBypass() 111void MultiauthGeneralConfig::checkBypass()
112{ 112{
113 if ( (allowBypass->isChecked() == true) && (explanScreens->isChecked() == false) ) 113 if ( (allowBypass->isChecked() == true) && (explanScreens->isChecked() == false) )
114 allowBypass->setChecked(false); 114 allowBypass->setChecked(false);
115} 115}
116 116
117
118
119
120
121
122
123
124
125
126
117/// Builds and displays the Opie multi-authentication configuration dialog 127/// Builds and displays the Opie multi-authentication configuration dialog
118MultiauthConfig::MultiauthConfig() : QDialog(0, 0, TRUE), 128static void test_and_start() {
119 m_mainTW(0), m_pluginListView(0), m_pluginListWidget(0), 129 Config pcfg("Security");
120 m_generalConfig(0), m_loginWidget(0), m_syncWidget(0), 130 pcfg.setGroup( "Misc" );
121 m_nbSuccessReq(0), m_plugins_changed(false) 131 bool protectConfigDialog = ! pcfg.readBoolEntry("noProtectConfig", true);
132
133 if (protectConfigDialog && Opie::Security::Internal::runPlugins() != 0) {
134 owarn << "authentication failed, not showing opie-security" << oendl;
135 exit( -1 );
136 }
137}
138
139
140
141MultiauthConfig::MultiauthConfig(QWidget* par, const char* w, WFlags f)
142 : QDialog(par, w, TRUE, f),
143 m_mainTW(0), m_pluginListView(0), m_pluginListWidget(0),
144 m_generalConfig(0), m_loginWidget(0), m_syncWidget(0),
145 m_nbSuccessReq(0), m_plugins_changed(false)
122{ 146{
123 /* Initializes the global configuration window 147 /* Initializes the global configuration window
124 */ 148 */
149 test_and_start();
150
125 setCaption( tr( "Security configuration" ) ); 151 setCaption( tr( "Security configuration" ) );
126 QVBoxLayout *layout = new QVBoxLayout( this ); 152 QVBoxLayout *layout = new QVBoxLayout( this );
127 m_mainTW = new Opie::Ui::OTabWidget( this ); 153 m_mainTW = new Opie::Ui::OTabWidget( this );
128 layout->addWidget(m_mainTW); 154 layout->addWidget(m_mainTW);
129 m_pluginListWidget = new QWidget(m_mainTW, "plugin list widget"); 155 m_pluginListWidget = new QWidget(m_mainTW, "plugin list widget");
130 QVBoxLayout * pluginListLayout = new QVBoxLayout(m_pluginListWidget); 156 QVBoxLayout * pluginListLayout = new QVBoxLayout(m_pluginListWidget);
131 pluginListLayout->setSpacing(6); 157 pluginListLayout->setSpacing(6);
132 pluginListLayout->setMargin(11); 158 pluginListLayout->setMargin(11);
133 QLabel * pluginListTitle = new QLabel( tr( "Load which plugins in what order:" ), m_pluginListWidget ); 159 QLabel * pluginListTitle = new QLabel( tr( "Load which plugins in what order:" ), m_pluginListWidget );
134 pluginListLayout->addWidget(pluginListTitle); 160 pluginListLayout->addWidget(pluginListTitle);
135 QHBox * pluginListHB = new QHBox(m_pluginListWidget); 161 QHBox * pluginListHB = new QHBox(m_pluginListWidget);
136 pluginListLayout->addWidget(pluginListHB); 162 pluginListLayout->addWidget(pluginListHB);
137 163
138 m_pluginListView = new QListView(pluginListHB); 164 m_pluginListView = new QListView(pluginListHB);
139 m_pluginListView->addColumn("PluginList"); 165 m_pluginListView->addColumn("PluginList");
140 m_pluginListView->header()->hide(); 166 m_pluginListView->header()->hide();
141 m_pluginListView->setSorting(-1); 167 m_pluginListView->setSorting(-1);
142 QWhatsThis::add(m_pluginListView, tr( "Check a checkbox to activate/deactivate a plugin or use the arrow buttons on the right to change the order they will appear in" )); 168 QWhatsThis::add(m_pluginListView, tr( "Check a checkbox to activate/deactivate a plugin or use the arrow buttons on the right to change the order they will appear in" ));
143 169
144 QVBox * pluginListVB = new QVBox(pluginListHB); 170 QVBox * pluginListVB = new QVBox(pluginListHB);
145 new ToolButton( pluginListVB, tr( "Move Up" ), "up", this , SLOT( moveSelectedUp() ) ); 171 new ToolButton( pluginListVB, tr( "Move Up" ), "up", this , SLOT( moveSelectedUp() ) );
146 new ToolButton( pluginListVB, tr( "Move Down" ), "down", this , SLOT( moveSelectedDown() ) ); 172 new ToolButton( pluginListVB, tr( "Move Down" ), "down", this , SLOT( moveSelectedDown() ) );
147 m_mainTW->addTab( m_pluginListWidget, "pass", tr( "plugins" ) ); 173 m_mainTW->addTab( m_pluginListWidget, "pass", tr( "plugins" ) );
148 174
149 connect ( m_pluginListView , SIGNAL( clicked ( QListViewItem * ) ), this, SLOT( pluginsChanged ( ) ) ); 175 connect ( m_pluginListView , SIGNAL( clicked ( QListViewItem * ) ), this, SLOT( pluginsChanged ( ) ) );
150 176
151 // general Opie multi-authentication configuration tab 177 // general Opie multi-authentication configuration tab
152 m_generalConfig = new MultiauthGeneralConfig(m_mainTW); 178 m_generalConfig = new MultiauthGeneralConfig(m_mainTW);
153 m_mainTW->addTab(m_generalConfig, "SettingsIcon", tr( "Authentication") ); 179 m_mainTW->addTab(m_generalConfig, "SettingsIcon", tr( "Authentication") );
154 180
155 // login settings page 181 // login settings page
156 m_loginWidget = new LoginBase(m_mainTW, "login config widget"); 182 m_loginWidget = new LoginBase(m_mainTW, "login config widget");
@@ -177,64 +203,80 @@ MultiauthConfig::MultiauthConfig() : QDialog(0, 0, TRUE),
177 if ( widget != 0l ) { 203 if ( widget != 0l ) {
178 odebug << "plugin " << plugin.name << " has a configuration widget" << oendl; 204 odebug << "plugin " << plugin.name << " has a configuration widget" << oendl;
179 configWidgetList.append(widget); 205 configWidgetList.append(widget);
180 m_mainTW->addTab( widget, plugin.pluginObject->pixmapNameConfig(), 206 m_mainTW->addTab( widget, plugin.pluginObject->pixmapNameConfig(),
181 plugin.pluginObject->pluginName() ); 207 plugin.pluginObject->pluginName() );
182 } 208 }
183 // set the order/activate tab 209 // set the order/activate tab
184 QPixmap icon = Resource::loadPixmap( plugin.pluginObject->pixmapNameWidget() ); 210 QPixmap icon = Resource::loadPixmap( plugin.pluginObject->pixmapNameWidget() );
185 QCheckListItem * item = new QCheckListItem(m_pluginListView, plugin.pluginObject->pluginName(), QCheckListItem::CheckBox ); 211 QCheckListItem * item = new QCheckListItem(m_pluginListView, plugin.pluginObject->pluginName(), QCheckListItem::CheckBox );
186 if ( !icon.isNull() ) { 212 if ( !icon.isNull() ) {
187 item->setPixmap( 0, icon ); 213 item->setPixmap( 0, icon );
188 } 214 }
189 if ( m_excludePlugins.find( plugin.name ) == m_excludePlugins.end() ) { 215 if ( m_excludePlugins.find( plugin.name ) == m_excludePlugins.end() ) {
190 item->setOn( TRUE ); 216 item->setOn( TRUE );
191 } 217 }
192 m_plugins[plugin.name] = item; 218 m_plugins[plugin.name] = item;
193 } 219 }
194 220
195 // set the first tab as default. 221 // set the first tab as default.
196 m_mainTW->setCurrentTab(m_pluginListWidget); 222 m_mainTW->setCurrentTab(m_pluginListWidget);
197 223
198 // put the number of plugins as the max number of req. auth. 224 // put the number of plugins as the max number of req. auth.
199 m_generalConfig->nbSuccessMin->setMaxValue( pluginList.count() ); 225 m_generalConfig->nbSuccessMin->setMaxValue( pluginList.count() );
200 226
201 showMaximized(); 227 showMaximized();
202} 228}
203 229
204/// nothing to do 230/// nothing to do
205MultiauthConfig::~MultiauthConfig() 231MultiauthConfig::~MultiauthConfig()
206{ 232{
207} 233}
208 234
235void MultiauthConfig::accept() {
236 writeConfig();
237
238 MultiauthConfigWidget* confWidget = 0;
239 for ( confWidget = configWidgetList.first(); confWidget != 0;
240 confWidget = configWidgetList.next() )
241 confWidget->writeConfig();
242
243 QDialog::accept();
244}
245
246void MultiauthConfig::done( int r ) {
247 QDialog::done( r );
248 close();
249}
250
209/// moves up the selected plugin 251/// moves up the selected plugin
210void MultiauthConfig::moveSelectedUp() 252void MultiauthConfig::moveSelectedUp()
211{ 253{
212 QListViewItem *item = m_pluginListView->selectedItem(); 254 QListViewItem *item = m_pluginListView->selectedItem();
213 if ( item && item->itemAbove() ) { 255 if ( item && item->itemAbove() ) {
214 item->itemAbove()->moveItem( item ); 256 item->itemAbove()->moveItem( item );
215 } 257 }
216} 258}
217 259
218/// moves down the selected plugin 260/// moves down the selected plugin
219void MultiauthConfig::moveSelectedDown() 261void MultiauthConfig::moveSelectedDown()
220{ 262{
221 QListViewItem *item = m_pluginListView->selectedItem(); 263 QListViewItem *item = m_pluginListView->selectedItem();
222 if ( item && item->itemBelow() ) { 264 if ( item && item->itemBelow() ) {
223 item->moveItem( item->itemBelow() ); 265 item->moveItem( item->itemBelow() );
224 } 266 }
225} 267}
226 268
227/// reads the <code>Security.conf</code> Config file, and updates parts of the user interface 269/// reads the <code>Security.conf</code> Config file, and updates parts of the user interface
228void MultiauthConfig::readConfig() 270void MultiauthConfig::readConfig()
229{ 271{
230 // pointer, so we release this Config when we want 272 // pointer, so we release this Config when we want
231 Config* pcfg = new Config("Security"); 273 Config* pcfg = new Config("Security");
232 pcfg->setGroup( "Misc" ); 274 pcfg->setGroup( "Misc" );
233 m_generalConfig->onStart->setChecked( pcfg->readBoolEntry( "onStart", false ) ); 275 m_generalConfig->onStart->setChecked( pcfg->readBoolEntry( "onStart", false ) );
234 m_generalConfig->onResume->setChecked( pcfg->readBoolEntry( "onResume", false ) ); 276 m_generalConfig->onResume->setChecked( pcfg->readBoolEntry( "onResume", false ) );
235 m_generalConfig->nbSuccessMin->setValue( pcfg->readNumEntry( "nbSuccessMin", 1 ) ); 277 m_generalConfig->nbSuccessMin->setValue( pcfg->readNumEntry( "nbSuccessMin", 1 ) );
236 m_generalConfig->noProtectConfig->setChecked( pcfg->readBoolEntry( "noProtectConfig", true) ); 278 m_generalConfig->noProtectConfig->setChecked( pcfg->readBoolEntry( "noProtectConfig", true) );
237 m_generalConfig->explanScreens->setChecked( pcfg->readBoolEntry( "explanScreens", true ) ); 279 m_generalConfig->explanScreens->setChecked( pcfg->readBoolEntry( "explanScreens", true ) );
238 m_generalConfig->allowBypass->setChecked( pcfg->readBoolEntry( "allowBypass", false ) ); 280 m_generalConfig->allowBypass->setChecked( pcfg->readBoolEntry( "allowBypass", false ) );
239 281
240 pcfg->setGroup( "Plugins" ); 282 pcfg->setGroup( "Plugins" );
diff --git a/core/settings/security/multiauthconfig.h b/core/settings/security/multiauthconfig.h
index ffe920f..649815d 100644
--- a/core/settings/security/multiauthconfig.h
+++ b/core/settings/security/multiauthconfig.h
@@ -52,70 +52,73 @@
52#include <qpushbutton.h> 52#include <qpushbutton.h>
53#include <qmessagebox.h> 53#include <qmessagebox.h>
54#include <qtextstream.h> 54#include <qtextstream.h>
55 55
56/* UI */ 56/* UI */
57#include "syncbase.h" 57#include "syncbase.h"
58#include "loginbase.h" 58#include "loginbase.h"
59 59
60 60
61/// the "misc" configuration tab, about general Opie Multiauth settings 61/// the "misc" configuration tab, about general Opie Multiauth settings
62class MultiauthGeneralConfig : public QWidget 62class MultiauthGeneralConfig : public QWidget
63{ 63{
64 Q_OBJECT 64 Q_OBJECT
65public: 65public:
66 MultiauthGeneralConfig(QWidget * parent, const char * name); 66 MultiauthGeneralConfig(QWidget * parent, const char * name);
67 ~MultiauthGeneralConfig(); 67 ~MultiauthGeneralConfig();
68protected: 68protected:
69 QCheckBox *onStart, *onResume, *noProtectConfig, *explanScreens, *allowBypass; 69 QCheckBox *onStart, *onResume, *noProtectConfig, *explanScreens, *allowBypass;
70 QSpinBox *nbSuccessMin; 70 QSpinBox *nbSuccessMin;
71private: 71private:
72 friend class MultiauthConfig; 72 friend class MultiauthConfig;
73private slots: 73private slots:
74 void checkBypass(); 74 void checkBypass();
75 void checkScreens(); 75 void checkScreens();
76}; 76};
77 77
78/// the whole configuration dialog 78/// the whole configuration dialog
79class MultiauthConfig : public QDialog 79class MultiauthConfig : public QDialog
80{ 80{
81 Q_OBJECT 81 Q_OBJECT
82 82
83public: 83public:
84 MultiauthConfig(); 84 static QString appName() { return QString::fromLatin1("security"); }
85 MultiauthConfig(QWidget *parent, const char* name, WFlags fl);
85 virtual ~MultiauthConfig(); 86 virtual ~MultiauthConfig();
86 void writeConfig(); 87 void writeConfig();
87 QList<Opie::Security::MultiauthConfigWidget> configWidgetList; 88 QList<Opie::Security::MultiauthConfigWidget> configWidgetList;
88 89
89protected slots: 90protected slots:
91 void accept();
92 void done(int r);
90 void pluginsChanged(); 93 void pluginsChanged();
91 void moveSelectedUp(); 94 void moveSelectedUp();
92 void moveSelectedDown(); 95 void moveSelectedDown();
93 96
94private slots: 97private slots:
95 // Login and Sync stuff 98 // Login and Sync stuff
96 void setSyncNet(const QString&); 99 void setSyncNet(const QString&);
97 void changeLoginName(int); 100 void changeLoginName(int);
98 void toggleAutoLogin(bool); 101 void toggleAutoLogin(bool);
99 void restoreDefaults(); 102 void restoreDefaults();
100 void insertDefaultRanges(); 103 void insertDefaultRanges();
101 void deleteListEntry(); 104 void deleteListEntry();
102 105
103private: 106private:
104 /// the widget holding all the tabs (or pages) 107 /// the widget holding all the tabs (or pages)
105 Opie::Ui::OTabWidget *m_mainTW; 108 Opie::Ui::OTabWidget *m_mainTW;
106 /// list of authentication plugins in the "Plugins" page 109 /// list of authentication plugins in the "Plugins" page
107 QListView *m_pluginListView; 110 QListView *m_pluginListView;
108 QStringList m_allPlugins, m_excludePlugins; 111 QStringList m_allPlugins, m_excludePlugins;
109 QMap<QString,QCheckListItem*> m_plugins; 112 QMap<QString,QCheckListItem*> m_plugins;
110 /// plugin list page 113 /// plugin list page
111 QWidget *m_pluginListWidget; 114 QWidget *m_pluginListWidget;
112 /// misc config page 115 /// misc config page
113 MultiauthGeneralConfig *m_generalConfig; 116 MultiauthGeneralConfig *m_generalConfig;
114 /// login (root / ...) choice page 117 /// login (root / ...) choice page
115 LoginBase *m_loginWidget; 118 LoginBase *m_loginWidget;
116 /// synchronization settings page 119 /// synchronization settings page
117 SyncBase *m_syncWidget; 120 SyncBase *m_syncWidget;
118 121
119 int m_nbSuccessReq; 122 int m_nbSuccessReq;
120 bool m_plugins_changed; 123 bool m_plugins_changed;
121 124
diff --git a/core/settings/security/security.pro b/core/settings/security/security.pro
index 5d2ae08..e9f4061 100644
--- a/core/settings/security/security.pro
+++ b/core/settings/security/security.pro
@@ -1,16 +1,10 @@
1CONFIG += qt warn_on 1CONFIG += qt warn_on quick-app
2
3HEADERS = multiauthconfig.h 2HEADERS = multiauthconfig.h
4
5SOURCES = multiauthconfig.cpp main.cpp 3SOURCES = multiauthconfig.cpp main.cpp
6
7 INTERFACES= loginbase.ui syncbase.ui 4 INTERFACES= loginbase.ui syncbase.ui
8 5
9INCLUDEPATH += $(OPIEDIR)/include 6INCLUDEPATH += $(OPIEDIR)/include
10
11LIBS += -lqpe -lopiecore2 -lopieui2 -lopiesecurity2 7LIBS += -lqpe -lopiecore2 -lopieui2 -lopiesecurity2
12
13DESTDIR = $(OPIEDIR)/bin
14TARGET = security 8TARGET = security
15 9
16include ( $(OPIEDIR)/include.pro ) 10include ( $(OPIEDIR)/include.pro )