John wrote: > On Monday 19 October 2009 09:16:51 pm Paul McNett wrote: > >> dabo Commit >> Revision 5476 >> Date: 2009-10-19 21:16:51 -0700 (Mon, 19 Oct 2009) >> Author: Paul >> Trac: http://trac.dabodev.com/changeset/5476 >> >> Changed: >> U trunk/dabo/dApp.py >> U trunk/dabo/dSecurityManager.py >> >> Log: >> Decoupled the login screen from the main form, so it can show before the >> main form is even instantiated. >> >> Added a test script to dSecurityManager using the default login dialog. >> >> >> Diff: >> Modified: trunk/dabo/dApp.py >> =================================================================== >> --- trunk/dabo/dApp.py 2009-10-19 20:17:32 UTC (rev 5475) >> +++ trunk/dabo/dApp.py 2009-10-20 04:16:51 UTC (rev 5476) >> @@ -21,7 +21,7 @@ >> import dabo.dException as dException >> from dabo.dLocalize import _ >> from dabo.lib.connParser import importConnections >> -from dabo import dSecurityManager >> +from dSecurityManager import dSecurityManager >> from dabo.lib.SimpleCrypt import SimpleCrypt >> from dabo.dObject import dObject >> from dabo import dUserSettingProvider >> @@ -377,7 +377,7 @@ >> >> self._finished = False >> if (not self.SecurityManager or not >> self.SecurityManager.RequireAppLogin >> - or self.SecurityManager.login()): >> + or getattr(self, "_loggedIn", False) or >> self.SecurityManager.login()): >> >> userName = self.getUserCaption() >> if userName: >> @@ -440,7 +440,7 @@ >> >> Return a tuple of (user, pass). >> """ >> - loginDialog = self.LoginDialogClass(self.MainForm) >> + loginDialog = self.LoginDialogClass(None) >> loginDialog.setMessage(message) >> # Allow the developer to customize the login dialog: >> self.loginDialogHook(loginDialog) >> @@ -1513,12 +1513,9 @@ >> return None >> >> def _setSecurityManager(self, value): >> - if isinstance(value, dSecurityManager.dSecurityManager): >> - if self.SecurityManager: >> - warnings.warn(Warning, _("SecurityManager >> previously set")) >> - self._securityManager = value >> - else: >> - raise TypeError(_("SecurityManager must descend from >> dSecurityManager.")) + if self.SecurityManager: >> + warnings.warn(Warning, _("SecurityManager previously >> set")) >> + self._securityManager = value >> >> >> def _getShowCommandWindowMenu(self): >> >> Modified: trunk/dabo/dSecurityManager.py >> =================================================================== >> --- trunk/dabo/dSecurityManager.py 2009-10-19 20:17:32 UTC (rev 5475) >> +++ trunk/dabo/dSecurityManager.py 2009-10-20 04:16:51 UTC (rev 5476) >> @@ -1,5 +1,6 @@ >> # -*- coding: utf-8 -*- >> import time >> +import dabo >> from dabo.dObject import dObject >> from dLocalize import _ >> >> @@ -49,6 +50,7 @@ >> time.sleep(self.LoginPause) >> >> if ret: >> + self.Application._loggedIn = True >> self.afterLoginSuccess() >> else: >> self.afterLoginFailure() >> @@ -188,4 +190,20 @@ >> UserName = property(_getUserName, None, None, >> _("""The name of the logged-on user. Read-only.""")) >> >> - >> + >> +if __name__ == "__main__": >> + app = dabo.dApp(MainFormClass=None) >> + app.setup() >> + >> + class TestSM(dSecurityManager): >> + def validateLogin(self, user, passwd): >> + print user, passwd >> + if user == "paul" and passwd == "23": >> + return True >> + return False >> + >> + app.SecurityManager = TestSM() >> + if app.SecurityManager.login(): >> + app.MainForm = dabo.ui.dFormMain() >> + app.start() >> + >> > > Thanks Paul. > > Johnf > This makes the SecurityManager nice to deal with... This should go in the Wiki. I'll see about getting to that today.
Regards, Nate _______________________________________________ Post Messages to: [email protected] Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev Searchable Archives: http://leafe.com/archives/search/dabo-dev This message: http://leafe.com/archives/byMID/[email protected]
