summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiesecurity/multiauthcommon.cpp7
-rw-r--r--libopie2/opiesecurity/multiauthcommon.h13
-rw-r--r--libopie2/opiesecurity/multiauthconfigwidget.h10
-rw-r--r--libopie2/opiesecurity/multiauthmainwindow.cpp8
-rw-r--r--libopie2/opiesecurity/multiauthmainwindow.h10
-rw-r--r--libopie2/opiesecurity/multiauthplugininterface.h6
-rw-r--r--libopie2/opiesecurity/opiesecurity.pro6
7 files changed, 57 insertions, 3 deletions
diff --git a/libopie2/opiesecurity/multiauthcommon.cpp b/libopie2/opiesecurity/multiauthcommon.cpp
index b72b9b1..d8e26d5 100644
--- a/libopie2/opiesecurity/multiauthcommon.cpp
+++ b/libopie2/opiesecurity/multiauthcommon.cpp
@@ -3,32 +3,34 @@
/* Opie */
#include <opie2/odebug.h>
#include <opie2/oapplication.h>
/* Qt */
#include <qpe/qpeapplication.h>
#include <qpe/qlibrary.h>
#include <qpe/qcom.h>
#include <qtextview.h>
#include <qdir.h>
/* UNIX */
#include <unistd.h>
#include <qpe/config.h>
+namespace Opie {
+namespace Security {
SecOwnerDlg::SecOwnerDlg( QWidget *parent, const char * name, Contact c,
bool modal, bool fullscreen = FALSE )
: QDialog( parent, name, modal,
fullscreen ?
WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 )
{
if ( fullscreen ) {
QRect desk = qApp->desktop()->geometry();
setGeometry( 0, 0, desk.width(), desk.height() );
}
// set up contents.
QString text("<H3>" + tr("Please contact the owner (directions follow), or try again clicking of this screen (and waiting for the penalty time) if you are the legitimate owner") + "</H3>");
text += c.toRichText();
tv = new QTextView(this);
tv->setText(text);
@@ -40,32 +42,33 @@ void SecOwnerDlg::resizeEvent( QResizeEvent * )
{
tv->resize( size() );
}
bool SecOwnerDlg::eventFilter(QObject *o, QEvent *e)
{
if (e->type() == QEvent::KeyPress || e->type() == QEvent::MouseButtonPress ) {
accept();
return TRUE;
}
return QWidget::eventFilter(o, e);
}
void SecOwnerDlg::mousePressEvent( QMouseEvent * ) { accept(); }
+namespace Internal {
/// run plugins until we reach nbSuccessMin successes
int runPlugins() {
SecOwnerDlg *oi = 0;
// see if there is contact information.
QString vfilename = Global::applicationFileName("addressbook",
"businesscard.vcf");
if (QFile::exists(vfilename)) {
Contact c;
c = Contact::readVCard( vfilename )[0];
oi = new SecOwnerDlg(0, 0, c, TRUE, TRUE);
}
Config config("Security");
config.setGroup("Plugins");
@@ -164,16 +167,20 @@ int runPlugins() {
delete lib;
if (resultCode == MultiauthPluginObject::Success && nbSuccess == nbSuccessMin)
{
if(oi) delete oi;
// we have reached the required number of successes, we can exit the plugin loop
return 0;
}
} else {
owarn << "Could not recognize plugin " << QString( path + "/" + *libIt ) << oendl;
delete lib;
} // end if plugin recognized
} //end for
if(oi) delete oi;
return 1;
}
+
+}
+}
+}
diff --git a/libopie2/opiesecurity/multiauthcommon.h b/libopie2/opiesecurity/multiauthcommon.h
index 6d6d5d1..46beab0 100644
--- a/libopie2/opiesecurity/multiauthcommon.h
+++ b/libopie2/opiesecurity/multiauthcommon.h
@@ -28,35 +28,48 @@
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef MULTIAUTHCOMMON_H
#define MULTIAUTHCOMMON_H
/* OwnerDialog stuff */
#include <qpe/global.h>
#include <qpe/contact.h>
#include <qtextview.h>
#include <qdialog.h>
+
+namespace Opie {
+namespace Security {
+
class SecOwnerDlg : public QDialog
{
Q_OBJECT
public:
SecOwnerDlg( QWidget *parent, const char * name, Contact c,
bool modal, bool fullscreen);
void resizeEvent( QResizeEvent * );
bool eventFilter(QObject *o, QEvent *e);
void mousePressEvent( QMouseEvent * );
private:
QTextView *tv;
+
+ private:
+ struct Private;
+ Private *d;
};
+namespace Internal {
int runPlugins();
+}
+
+}
+}
#endif // MULTIAUTHCOMMON_H
diff --git a/libopie2/opiesecurity/multiauthconfigwidget.h b/libopie2/opiesecurity/multiauthconfigwidget.h
index cd6f047..2ed8fc0 100644
--- a/libopie2/opiesecurity/multiauthconfigwidget.h
+++ b/libopie2/opiesecurity/multiauthconfigwidget.h
@@ -24,45 +24,55 @@
: = ...= . :.=-
-. .:....=;==+<; You should have received a copy of the GNU
-_. . . )=. = Library General Public License along with
-- :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef MULTIAUTHCONFIGWIDGET_H
#define MULTIAUTHCONFIGWIDGET_H
#include <qwidget.h>
#include <qobject.h>
+namespace Opie {
+namespace Security {
+
/// Base class of all Opie multiauth config widgets
/**
* A base class for all Opie Multiauth Config Widgets.
* This will let a Opie multiauth plugin to add the possibility of configuration.
* Plugins need to inherit from this class and need to implement
* the pure virtual method to control configuration.
* The Plugin should read its configuration during creation of the Widget
*
* \author Clement Seveillac (helped by Maximilian Reiß's Today framework)
*/
class MultiauthConfigWidget : public QWidget {
Q_OBJECT
public:
/// standard widget constructor
MultiauthConfigWidget( QWidget *parent, const char *name ) : QWidget( parent, name ) {}
virtual ~MultiauthConfigWidget() {}
/// Method to reimplement, supposed to save the plugin configuration
/**
* Plugins need to reimplement this in the config widget
* Used when the config dialog is closed to write config stuff
*/
virtual void writeConfig() = 0;
+
+ private:
+ struct Private;
+ Private *d;
};
+}
+}
+
#endif // MULTIAUTHCONFIGWIDGET_H
diff --git a/libopie2/opiesecurity/multiauthmainwindow.cpp b/libopie2/opiesecurity/multiauthmainwindow.cpp
index 2be3473..c6229c7 100644
--- a/libopie2/opiesecurity/multiauthmainwindow.cpp
+++ b/libopie2/opiesecurity/multiauthmainwindow.cpp
@@ -1,21 +1,24 @@
#include "multiauthmainwindow.h"
#include "multiauthcommon.h"
#include <qpe/config.h>
+namespace Opie {
+namespace Security {
+
/// Initializes widgets according to allowBypass and explanScreens config
MultiauthMainWindow::MultiauthMainWindow()
: QDialog(0, "main Opie multiauth modal dialog", TRUE,
Qt::WStyle_NoBorder | Qt::WStyle_Customize | Qt::WStyle_StaysOnTop)
{
alreadyDone = false;
// initializes widget pointers which not always point to an object
quit = 0;
message2 = 0;
Config *pcfg = new Config("Security");
pcfg->setGroup("Misc");
explanScreens = pcfg->readBoolEntry("explanScreens", true);
allowBypass = pcfg->readBoolEntry("allowBypass", true);
delete pcfg;
@@ -62,33 +65,33 @@ MultiauthMainWindow::MultiauthMainWindow()
}
else
{
// we will need this button only if runPlugins() fails in proceed()
proceedButton->hide();
// let's proceed now
proceed();
}
}
/// nothing to do
MultiauthMainWindow::~MultiauthMainWindow() {
}
/// launch the authentication
void MultiauthMainWindow::proceed() {
- int result = runPlugins();
+ int result = Internal::runPlugins();
if ( (result == 0) && !explanScreens )
{
// the authentication has succeeded, we can exit directly
// this will work if we haven't been called by the constructor of MultiauthMainWindow
close();
// and if we've been called by this constructor, we use this variable to tell our
// caller we're already done
alreadyDone = true;
return;
}
else
{
proceedButton->setText("Another try?");
@@ -114,16 +117,19 @@ void MultiauthMainWindow::proceed() {
message->setText( "<center><h3>" + tr("You have not succeeded enough authentication steps!") + "</h3></center>" );
proceedButton->show();
if ( allowBypass == true )
message2->setText( "<center><p>" + tr("Note: if 'allow to bypass' was uncheck in Security config, you would have to go back through all the steps now.") + "</p></center>" );
}
}
}
/** When we don't show explanatory screens and we succeed authentication,
* as early as during the proceed() call of the constructor, the caller must know
* (through this function) authentication has already been succeeded..
* \todo try to avoid this hack?
*/
bool MultiauthMainWindow::isAlreadyDone() {
return alreadyDone;
}
+
+}
+}
diff --git a/libopie2/opiesecurity/multiauthmainwindow.h b/libopie2/opiesecurity/multiauthmainwindow.h
index d5f53c6..626b8b3 100644
--- a/libopie2/opiesecurity/multiauthmainwindow.h
+++ b/libopie2/opiesecurity/multiauthmainwindow.h
@@ -28,47 +28,57 @@
-_. . . )=. = Library General Public License along with
-- :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef MULTIAUTHMAINWINDOW_H
#define MULTIAUTHMAINWINDOW_H
#include <qdialog.h>
#include <qlayout.h>
#include <qpushbutton.h>
#include <qlabel.h>
+
+namespace Opie {
+namespace Security {
+
/// Multiauth main window
/**
* This QDialog window displays some information and an exit button,
* and completely hides the desktop, preventing user interactions
* with it.
*/
class MultiauthMainWindow : public QDialog {
Q_OBJECT
public:
MultiauthMainWindow();
~MultiauthMainWindow();
bool isAlreadyDone();
private:
QVBoxLayout * layout;
QLabel * title, * message, * message2;
QPushButton * proceedButton, * quit;
/// whether to show explanatory screens before and after the authentication plugins
bool explanScreens;
/// allow to bypass authnentication via 'exit' buttons on both explan. screens
bool allowBypass;
/// true when the authentication has been done successfully
bool alreadyDone;
private slots:
void proceed();
+ private:
+ struct Private;
+ Private *d;
};
+}
+}
+
#endif // MULTIAUTHMAINWINDOW_H
diff --git a/libopie2/opiesecurity/multiauthplugininterface.h b/libopie2/opiesecurity/multiauthplugininterface.h
index 0035107..5998a18 100644
--- a/libopie2/opiesecurity/multiauthplugininterface.h
+++ b/libopie2/opiesecurity/multiauthplugininterface.h
@@ -30,32 +30,35 @@
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef MULTIAUTH_PLUGIN_INTERFACE
#define MULTIAUTH_PLUGIN_INTERFACE
#include <qpe/qcom.h>
#include "multiauthconfigwidget.h"
class QString;
class QWidget;
+namespace Opie {
+namespace Security {
+
#ifndef IID_MultiauthPluginInterface
/// Universally Unique Id of the interface (required by QCOM):
/// {AD5BE8B1-8421-447b-9AED-250BE1CDA49c}
#define IID_MultiauthPluginInterface QUuid(0xad5be8b1, 0x8421, 0x447b, 0x9a, 0xed, 0x25, 0x0b, 0xe1, 0xcd, 0xa4, 0x9c)
#endif
/// Base class for Opie multiauth plugins
/**
* A MultiauthPluginObject is the base for all Multiauth Plugins.
* A plugin author needs to inherit this class and implement
* the pure virtual methods.
*
* \author Clement Seveillac (helped by Maximilian Reiß's Today framework)
*/
class MultiauthPluginObject {
@@ -93,17 +96,20 @@ class MultiauthPluginObject {
* from $OPIEDIR/pics
*/
virtual QString pixmapNameWidget() const = 0;
};
/// Interface for multiauth plugin classes.
/*
* This is part of the QCOM works. See example plugins how to do it right.
* \see http://doc.trolltech.com/qtopia/html/pluginintro.html
*/
struct MultiauthPluginInterface : public QUnknownInterface {
/// return the MultiauthPluginObject implementation
virtual MultiauthPluginObject *plugin() = 0;
};
+}
+}
+
#endif
diff --git a/libopie2/opiesecurity/opiesecurity.pro b/libopie2/opiesecurity/opiesecurity.pro
index 8cb4821..8535785 100644
--- a/libopie2/opiesecurity/opiesecurity.pro
+++ b/libopie2/opiesecurity/opiesecurity.pro
@@ -1,15 +1,17 @@
TEMPLATE = lib
CONFIG += qt warn_on
DESTDIR = $(OPIEDIR)/lib
HEADERS = multiauthcommon.h \
multiauthmainwindow.h \
multiauthconfigwidget.h \
- multiauthplugininterface.h
+ multiauthplugininterface.h \
+ multiauthpassword.h
SOURCES = multiauthcommon.cpp \
- multiauthmainwindow.cpp
+ multiauthmainwindow.cpp \
+ multiauthpassword.cpp
TARGET = opiesecurity2
VERSION = 0.0.2
INCLUDEPATH += $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
include ( $(OPIEDIR)/include.pro )