summaryrefslogtreecommitdiff
path: root/libopie2/opiesecurity
Unidiff
Diffstat (limited to 'libopie2/opiesecurity') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiesecurity/multiauthpassword.cpp45
-rw-r--r--libopie2/opiesecurity/multiauthpassword.h8
2 files changed, 46 insertions, 7 deletions
diff --git a/libopie2/opiesecurity/multiauthpassword.cpp b/libopie2/opiesecurity/multiauthpassword.cpp
index 42341f7..8eda554 100644
--- a/libopie2/opiesecurity/multiauthpassword.cpp
+++ b/libopie2/opiesecurity/multiauthpassword.cpp
@@ -54,7 +54,9 @@ namespace Security {
54 54
55/** 55/**
56 * If the users requires authentication... #fixme 56 * Tells if the users requires authentication (used internally to
57 * know whether to repaint the screen on resume)
57 * 58 *
58 * @todo fix up at_poweron attribute 59 * \param at_poweron true if we are booting Opie, false if we are resuming it
60 * \return true if authenticate() launched right now would trigger an authentication
59 */ 61 */
60bool MultiauthPassword::needToAuthenticate(bool at_poweron) 62bool MultiauthPassword::needToAuthenticate(bool at_poweron)
@@ -71,6 +73,7 @@ bool MultiauthPassword::needToAuthenticate(bool at_poweron)
71 73
72 74
75
73/** 76/**
74 * \brief Require user authentication to unlock and continue 77 * \brief Require (if configured so) user authentication to unlock and continue
75 * 78 *
76 * This method will check if you require authentication 79 * This method will check if you require authentication
@@ -81,13 +84,43 @@ bool MultiauthPassword::needToAuthenticate(bool at_poweron)
81 * when the user has successfully authenticated to the system. 84 * when the user has successfully authenticated to the system.
82 */ 85 */
83void MultiauthPassword::authenticate(bool at_poweron) 86void MultiauthPassword::authenticate(int lockMode)
87{
88 /**
89 * \par Conditions
90 *
91 * If lockMode is an If, it's conditional:
92 * \li IfPowerOn will not trigger an authentication if
93 * onStart is set to false in Security.conf,
94 * \li IfResume will not trigger an authentication if
95 * onResume is set to false in Security.conf.
96 */
97 if ( (lockMode == IfPowerOn) || (lockMode == IfResume) )
84{ 98{
85 if ( ! needToAuthenticate(at_poweron) ) 99 Config cfg("Security");
100 cfg.setGroup("Misc");
101 if ( (
102 (lockMode == IfPowerOn) && cfg.readBoolEntry("onStart", false)
103 ) || (
104 (lockMode == IfResume) && cfg.readBoolEntry("onResume", false)
105 ) )
86 return; 106 return;
107 }
108
109 /**
110 * \li TestNow will ensure that the authentication window will let
111 * people escape through the last screen (which they can reach skipping
112 * all the authentication steps)
113 * \li LockNow will always go on with the authentication, and won't let
114 * people escape.
115 */
116 bool allowByPass = false;
117
118 if (lockMode == TestNow)
119 allowByPass = true;
87 120
88 /* Constructs the main window, which displays messages and blocks 121 /* Constructs the main window, which displays messages and blocks
89 * access to the desktop 122 * access to the desktop
90 */ 123 */
91 MultiauthMainWindow win; 124 MultiauthMainWindow win(allowByPass);
92 125
93 // resize the QDialog object so it fills all the screen 126 // resize the QDialog object so it fills all the screen
diff --git a/libopie2/opiesecurity/multiauthpassword.h b/libopie2/opiesecurity/multiauthpassword.h
index fe276da..effdaa1 100644
--- a/libopie2/opiesecurity/multiauthpassword.h
+++ b/libopie2/opiesecurity/multiauthpassword.h
@@ -39,4 +39,9 @@ namespace Opie {
39namespace Security { 39namespace Security {
40 40
41enum lockMode {
42 IfPowerOn,
43 IfResume,
44 TestNow,
45 LockNow };
41/** 46/**
42 * This is the dropin replacement for the libqpe Password class. 47 * This is the dropin replacement for the libqpe Password class.
@@ -49,7 +54,8 @@ namespace Security {
49 */ 54 */
50class MultiauthPassword { 55class MultiauthPassword {
56
51public: 57public:
58 static void authenticate(int authMode = LockNow);
52 static bool needToAuthenticate( bool atpoweron = false ); 59 static bool needToAuthenticate( bool atpoweron = false );
53 static void authenticate(bool atpoweron = false);
54}; 60};
55 61