Diffstat (limited to 'frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js') (more/less context) (show whitespace changes)
-rw-r--r-- | frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js index d88af41..d0b378c 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Web/Controllers/LoginController.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); | 26 | Clipperz.Base.module('Clipperz.PM.UI.Web.Controllers'); |
30 | 27 | ||
31 | Clipperz.PM.UI.Web.Controllers.LoginController = function(args) { | 28 | Clipperz.PM.UI.Web.Controllers.LoginController = function(args) { |
32 | this._args = args || {}; | 29 | this._args = args || {}; |
33 | 30 | ||
34 | this._loginPage = null; | 31 | this._loginPage = null; |
35 | 32 | ||
36 | this._newUserWizardController = null; | 33 | this._newUserWizardController = null; |
37 | this._newUserCreationComponent = null; | 34 | this._newUserCreationComponent = null; |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.LoginController.prototype, { | 39 | MochiKit.Base.update(Clipperz.PM.UI.Web.Controllers.LoginController.prototype, { |
43 | 40 | ||
44 | 'toString': function() { | 41 | 'toString': function() { |
45 | return "Clipperz.PM.UI.Web.Controllers.LoginController"; | 42 | return "Clipperz.PM.UI.Web.Controllers.LoginController"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | 'args': function () { | 45 | 'args': function () { |
49 | return this._args; | 46 | return this._args; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //----------------------------------------------------------------------------- | 49 | //----------------------------------------------------------------------------- |
53 | 50 | ||
54 | 'loginPage': function() { | 51 | 'loginPage': function() { |
55 | if (this._loginPage == null) { | 52 | if (this._loginPage == null) { |
56 | this._loginPage = new Clipperz.PM.UI.Web.Components.LoginPage(); | 53 | this._loginPage = new Clipperz.PM.UI.Web.Components.LoginPage(); |
57 | 54 | ||
58 | MochiKit.Signal.connect(this._loginPage, 'createNewAccountClick', this, 'handleCreateNewAccountClick') | 55 | MochiKit.Signal.connect(this._loginPage, 'createNewAccountClick', this, 'handleCreateNewAccountClick') |
59 | } | 56 | } |
60 | 57 | ||
61 | return this._loginPage; | 58 | return this._loginPage; |
62 | }, | 59 | }, |
63 | 60 | ||
64 | //----------------------------------------------------------------------------- | 61 | //----------------------------------------------------------------------------- |
65 | 62 | ||
66 | 'run': function(args) { | 63 | 'run': function(args) { |
67 | varslot; | 64 | varslot; |
68 | varloginPage; | 65 | varloginPage; |
69 | varloginForm; | 66 | varloginForm; |
70 | 67 | ||
71 | slot = args.slot; | 68 | slot = args.slot; |
72 | 69 | ||
73 | loginForm =new Clipperz.PM.UI.Web.Components.LoginForm({'autocomplete': this.args()['autocomplete']}); | 70 | loginForm =new Clipperz.PM.UI.Web.Components.LoginForm({'autocomplete': this.args()['autocomplete']}); |
74 | 71 | ||
75 | slot.setContent(this.loginPage()); | 72 | slot.setContent(this.loginPage()); |
76 | this.loginPage().slotNamed('loginForm').setContent(loginForm); | 73 | this.loginPage().slotNamed('loginForm').setContent(loginForm); |
77 | 74 | ||
78 | MochiKit.Signal.connect(loginForm, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); | 75 | MochiKit.Signal.connect(loginForm, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); |
79 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); | 76 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'doLogin', MochiKit.Base.method(this, 'doLogin', loginForm)); |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //----------------------------------------------------------------------------- | 79 | //----------------------------------------------------------------------------- |
83 | 80 | ||
84 | 'doLogin': function(aLoginForm, anEvent) { | 81 | 'doLogin': function(aLoginForm, anEvent) { |
85 | var deferredResult; | 82 | var deferredResult; |
86 | varparameters; | 83 | varparameters; |
87 | // varshouldUseOTP; | 84 | // varshouldUseOTP; |
88 | var loginProgress; | 85 | var loginProgress; |
89 | varuser; | 86 | varuser; |
90 | var getPassphraseDelegate; | 87 | var getPassphraseDelegate; |
91 | 88 | ||
92 | parameters = anEvent; | 89 | parameters = anEvent; |
93 | // shouldUseOTP = (typeof(parameters.passphrase) == 'undefined'); | 90 | // shouldUseOTP = (typeof(parameters.passphrase) == 'undefined'); |
94 | 91 | ||
95 | getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase); | 92 | getPassphraseDelegate = MochiKit.Base.partial(MochiKit.Async.succeed, parameters.passphrase); |
96 | user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'getPassphrase')}); | 93 | user = new Clipperz.PM.DataModel.User({'username':parameters.username, 'getPassphraseFunction':MochiKit.Base.method(Clipperz.PM.RunTime.mainController, 'getPassphrase')}); |
97 | 94 | ||
98 | loginProgress = new Clipperz.PM.UI.Web.Components.LoginProgress(); | 95 | loginProgress = new Clipperz.PM.UI.Web.Components.LoginProgress(); |
99 | 96 | ||
100 | deferredResult = new Clipperz.Async.Deferred("LoginController.doLogin", {trace:false}); | 97 | deferredResult = new Clipperz.Async.Deferred("LoginController.doLogin", {trace:false}); |
101 | deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4}); | 98 | deferredResult.addCallbackPass(MochiKit.Signal.signal, Clipperz.Signal.NotificationCenter, 'initProgress', {'steps':4}); |
102 | deferredResult.addMethod(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', getPassphraseDelegate); | 99 | deferredResult.addMethod(Clipperz.PM.RunTime.mainController, 'setPassphraseDelegate', getPassphraseDelegate); |
103 | deferredResult.addMethod(loginProgress, 'deferredShowModal', {deferredObject:deferredResult, openFromElement:aLoginForm.submitButtonElement()}); | 100 | deferredResult.addMethod(loginProgress, 'deferredShowModal', {deferredObject:deferredResult, openFromElement:aLoginForm.submitButtonElement()}); |
104 | deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'); | 101 | deferredResult.addMethod(Clipperz.Crypto.PRNG.defaultRandomGenerator(), 'deferredEntropyCollection'); |
105 | // if (shouldUseOTP == false) { | 102 | // if (shouldUseOTP == false) { |
106 | deferredResult.addMethod(user, 'login'); | 103 | deferredResult.addMethod(user, 'login'); |
107 | // } else { | 104 | // } else { |
108 | // deferredResult.addMethod(user, 'loginUsingOTP', parameters.username, parameters.otp); | 105 | // deferredResult.addMethod(user, 'loginUsingOTP', parameters.username, parameters.otp); |
109 | // } | 106 | // } |
110 | deferredResult.addCallback(function(aLoginProgress, res) { | 107 | deferredResult.addCallback(function(aLoginProgress, res) { |
111 | aLoginProgress.disableCancel(); | 108 | aLoginProgress.disableCancel(); |
112 | return res; | 109 | return res; |
113 | }, loginProgress); | 110 | }, loginProgress); |
114 | deferredResult.addCallback(function () { | 111 | deferredResult.addCallback(function () { |
115 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN',MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:MochiKit.DOM.currentDocument().body})); | 112 | MochiKit.Signal.connect(Clipperz.Signal.NotificationCenter, 'CARDS_CONTROLLER_DID_RUN',MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:MochiKit.DOM.currentDocument().body})); |
116 | }) | 113 | }) |
117 | deferredResult.addMethod(this, 'userLoggedIn', user, loginProgress, aLoginForm); | 114 | deferredResult.addMethod(this, 'userLoggedIn', user, loginProgress, aLoginForm); |
118 | deferredResult.addErrback (MochiKit.Base.method(this, 'handleFailedLogin', loginProgress)); | 115 | deferredResult.addErrback (MochiKit.Base.method(this, 'handleFailedLogin', loginProgress)); |
119 | 116 | ||
120 | deferredResult.addErrback (MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:aLoginForm.submitButtonElement()})); | 117 | deferredResult.addErrback (MochiKit.Base.method(loginProgress, 'deferredHideModalAndRemove', {closeToElement:aLoginForm.submitButtonElement()})); |