author | Clipperz <info@clipperz.com> | 2013-01-31 13:42:04 (UTC) |
---|---|---|
committer | Clipperz <info@clipperz.com> | 2013-01-31 13:42:04 (UTC) |
commit | 07d0357beef5d9328a2dd8d07ad7b39c87ac55e4 (patch) (unidiff) | |
tree | f7a4aed8848302db153c2a211f8e58b944eb4c5b /frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js | |
parent | 767a3dcf48b6ac911c088af5dd7738a728eb6b99 (diff) | |
download | clipperz-07d0357beef5d9328a2dd8d07ad7b39c87ac55e4.zip clipperz-07d0357beef5d9328a2dd8d07ad7b39c87ac55e4.tar.gz clipperz-07d0357beef5d9328a2dd8d07ad7b39c87ac55e4.tar.bz2 |
Updated Copyright claims
- updated reference dates;
- removed reference to Community Edition;
- normalized logging using Clipperz.log[Warn|Error|Debug]
Diffstat (limited to 'frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js index 5fd10f9..77d59a5 100644 --- a/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js +++ b/frontend/gamma/js/Clipperz/PM/UI/Common/Controllers/DirectLoginRunner.js | |||
@@ -1,86 +1,84 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2013 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz Community Edition. | 5 | This file is part of Clipperz, the online password manager. |
6 | Clipperz Community Edition is an online password manager. | ||
7 | For further information about its features and functionalities please | 6 | For further information about its features and functionalities please |
8 | refer to http://www.clipperz.com. | 7 | refer to http://www.clipperz.com. |
9 | 8 | ||
10 | * Clipperz Community Edition is free software: you can redistribute | 9 | * Clipperz is free software: you can redistribute it and/or modify it |
11 | it and/or modify it under the terms of the GNU Affero General Public | 10 | under the terms of the GNU Affero General Public License as published |
12 | License as published by the Free Software Foundation, either version | 11 | by the Free Software Foundation, either version 3 of the License, or |
13 | 3 of the License, or (at your option) any later version. | 12 | (at your option) any later version. |
14 | 13 | ||
15 | * Clipperz Community Edition is distributed in the hope that it will | 14 | * Clipperz is distributed in the hope that it will be useful, but |
16 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. | 17 | See the GNU Affero General Public License for more details. |
19 | 18 | ||
20 | * You should have received a copy of the GNU Affero General Public | 19 | * You should have received a copy of the GNU Affero General Public |
21 | License along with Clipperz Community Edition. If not, see | 20 | License along with Clipperz. If not, see http://www.gnu.org/licenses/. |
22 | <http://www.gnu.org/licenses/>. | ||
23 | 21 | ||
24 | */ | 22 | */ |
25 | 23 | ||
26 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); | 24 | Clipperz.Base.module('Clipperz.PM.UI.Common.Controllers'); |
27 | 25 | ||
28 | Clipperz.PM.UI.Common.Controllers.DirectLoginRunner = function(args) { | 26 | Clipperz.PM.UI.Common.Controllers.DirectLoginRunner = function(args) { |
29 | this._directLogin = args['directLogin'] || Clipperz.Base.exception.raise('MandatoryParameter'); | 27 | this._directLogin = args['directLogin'] || Clipperz.Base.exception.raise('MandatoryParameter'); |
30 | this._target = Clipperz.PM.Crypto.randomKey(); | 28 | this._target = Clipperz.PM.Crypto.randomKey(); |
31 | 29 | ||
32 | return this; | 30 | return this; |
33 | } | 31 | } |
34 | 32 | ||
35 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.prototype, { | 33 | MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.prototype, { |
36 | 34 | ||
37 | 'toString': function() { | 35 | 'toString': function() { |
38 | return "Clipperz.PM.UI.Common.Controllers.DirectLoginRunner"; | 36 | return "Clipperz.PM.UI.Common.Controllers.DirectLoginRunner"; |
39 | }, | 37 | }, |
40 | 38 | ||
41 | //----------------------------------------------------------------------------- | 39 | //----------------------------------------------------------------------------- |
42 | 40 | ||
43 | 'directLogin': function () { | 41 | 'directLogin': function () { |
44 | return this._directLogin; | 42 | return this._directLogin; |
45 | }, | 43 | }, |
46 | 44 | ||
47 | //----------------------------------------------------------------------------- | 45 | //----------------------------------------------------------------------------- |
48 | 46 | ||
49 | 'target': function () { | 47 | 'target': function () { |
50 | return this._target; | 48 | return this._target; |
51 | }, | 49 | }, |
52 | 50 | ||
53 | //============================================================================= | 51 | //============================================================================= |
54 | 52 | ||
55 | 'setWindowTitle': function (aWindow, aTitle) { | 53 | 'setWindowTitle': function (aWindow, aTitle) { |
56 | aWindow.document.title = aTitle; | 54 | aWindow.document.title = aTitle; |
57 | }, | 55 | }, |
58 | 56 | ||
59 | 'setWindowBody': function (aWindow, anHTML) { | 57 | 'setWindowBody': function (aWindow, anHTML) { |
60 | aWindow.document.body.innerHTML = anHTML; | 58 | aWindow.document.body.innerHTML = anHTML; |
61 | }, | 59 | }, |
62 | 60 | ||
63 | //============================================================================= | 61 | //============================================================================= |
64 | 62 | ||
65 | 'initialWindowSetup': function (aWindow) { | 63 | 'initialWindowSetup': function (aWindow) { |
66 | this.setWindowTitle(aWindow, "Loading Clipperz Direct Login"); | 64 | this.setWindowTitle(aWindow, "Loading Clipperz Direct Login"); |
67 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3("Loading Clipperz Direct Login ..."))); | 65 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3("Loading Clipperz Direct Login ..."))); |
68 | }, | 66 | }, |
69 | 67 | ||
70 | //----------------------------------------------------------------------------- | 68 | //----------------------------------------------------------------------------- |
71 | 69 | ||
72 | 'updateWindowWithDirectLoginLabel': function (aWindow, aLabel) { | 70 | 'updateWindowWithDirectLoginLabel': function (aWindow, aLabel) { |
73 | var titleText; | 71 | var titleText; |
74 | var bodyText; | 72 | var bodyText; |
75 | 73 | ||
76 | titleText = "Loading '__label__' Direct Login".replace(/__label__/, aLabel) | 74 | titleText = "Loading '__label__' Direct Login".replace(/__label__/, aLabel) |
77 | bodyText = "Loading '__label__' Direct Login... ".replace(/__label__/, aLabel) | 75 | bodyText = "Loading '__label__' Direct Login... ".replace(/__label__/, aLabel) |
78 | 76 | ||
79 | this.setWindowTitle(aWindow, titleText); | 77 | this.setWindowTitle(aWindow, titleText); |
80 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3(bodyText))); | 78 | this.setWindowBody (aWindow, MochiKit.DOM.toHTML(MochiKit.DOM.H3(bodyText))); |
81 | }, | 79 | }, |
82 | 80 | ||
83 | //----------------------------------------------------------------------------- | 81 | //----------------------------------------------------------------------------- |
84 | 82 | ||
85 | 'updateWindowWithHTMLContent': function (aWindow, anHtml) { | 83 | 'updateWindowWithHTMLContent': function (aWindow, anHtml) { |
86 | this.setWindowBody(aWindow, anHtml); | 84 | this.setWindowBody(aWindow, anHtml); |
@@ -93,172 +91,166 @@ MochiKit.Base.update(Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.prototy | |||
93 | var formElement; | 91 | var formElement; |
94 | var submitButtons; | 92 | var submitButtons; |
95 | 93 | ||
96 | formElement = MochiKit.DOM.getElement('directLoginForm'); | 94 | formElement = MochiKit.DOM.getElement('directLoginForm'); |
97 | 95 | ||
98 | submitButtons = MochiKit.Base.filter(function(anInputElement) { | 96 | submitButtons = MochiKit.Base.filter(function(anInputElement) { |
99 | return ((anInputElement.tagName.toLowerCase() == 'input') && (anInputElement.getAttribute('type').toLowerCase() == 'submit')); | 97 | return ((anInputElement.tagName.toLowerCase() == 'input') && (anInputElement.getAttribute('type').toLowerCase() == 'submit')); |
100 | }, formElement.elements); | 98 | }, formElement.elements); |
101 | 99 | ||
102 | if (submitButtons.length == 0) { | 100 | if (submitButtons.length == 0) { |
103 | if (typeof(formElement.submit) == 'function') { | 101 | if (typeof(formElement.submit) == 'function') { |
104 | formElement.submit(); | 102 | formElement.submit(); |
105 | } else { | 103 | } else { |
106 | aSubmitFunction.apply(formElement); | 104 | aSubmitFunction.apply(formElement); |
107 | } | 105 | } |
108 | /* | 106 | /* |
109 | varformSubmitFunction; | 107 | varformSubmitFunction; |
110 | 108 | ||
111 | formSubmitFunction = MochiKit.Base.method(formElement, 'submit'); | 109 | formSubmitFunction = MochiKit.Base.method(formElement, 'submit'); |
112 | if (Clipperz_IEisBroken == true) { | 110 | if (Clipperz_IEisBroken == true) { |
113 | formElement.submit(); | 111 | formElement.submit(); |
114 | } else { | 112 | } else { |
115 | formSubmitFunction(); | 113 | formSubmitFunction(); |
116 | } | 114 | } |
117 | */ | 115 | */ |
118 | } else { | 116 | } else { |
119 | submitButtons[0].click(); | 117 | submitButtons[0].click(); |
120 | } | 118 | } |
121 | }, this)); | 119 | }, this)); |
122 | }, | 120 | }, |
123 | 121 | ||
124 | //------------------------------------------------------------------------- | 122 | //------------------------------------------------------------------------- |
125 | 123 | ||
126 | 'runSubmitFormDirectLogin': function (aWindow, someAttributes) { | 124 | 'runSubmitFormDirectLogin': function (aWindow, someAttributes) { |
127 | var html; | 125 | var html; |
128 | var formElement; | 126 | var formElement; |
129 | var submitFunction; | 127 | var submitFunction; |
130 | 128 | ||
131 | formElement = MochiKit.DOM.FORM({ | 129 | formElement = MochiKit.DOM.FORM({ |
132 | 'id':'directLoginForm', | 130 | 'id':'directLoginForm', |
133 | 'method':someAttributes['formAttributes']['method'], | 131 | 'method':someAttributes['formAttributes']['method'], |
134 | 'action':someAttributes['formAttributes']['action'] | 132 | 'action':someAttributes['formAttributes']['action'] |
135 | }); | 133 | }); |
136 | 134 | ||
137 | submitFunction = formElement.submit; | 135 | submitFunction = formElement.submit; |
138 | 136 | ||
139 | MochiKit.DOM.appendChildNodes(formElement, MochiKit.Base.map(function (anInputAttributes) { | 137 | MochiKit.DOM.appendChildNodes(formElement, MochiKit.Base.map(function (anInputAttributes) { |
140 | return MochiKit.DOM.INPUT({'type':'hidden', 'name':anInputAttributes[0], 'value':anInputAttributes[1]}); | 138 | return MochiKit.DOM.INPUT({'type':'hidden', 'name':anInputAttributes[0], 'value':anInputAttributes[1]}); |
141 | }, MochiKit.Base.items(someAttributes['inputValues']))); | 139 | }, MochiKit.Base.items(someAttributes['inputValues']))); |
142 | 140 | ||
143 | html =''; | 141 | html =''; |
144 | html += '<h3>Loading ' + someAttributes['label'] + ' ...</h3>'; | 142 | html += '<h3>Loading ' + someAttributes['label'] + ' ...</h3>'; |
145 | html +=MochiKit.DOM.appendChildNodes(MochiKit.DOM.DIV(), MochiKit.DOM.appendChildNodes(MochiKit.DOM.DIV({style:'display:none; visibility:hidden;'}), formElement)).innerHTML; | 143 | html +=MochiKit.DOM.appendChildNodes(MochiKit.DOM.DIV(), MochiKit.DOM.appendChildNodes(MochiKit.DOM.DIV({style:'display:none; visibility:hidden;'}), formElement)).innerHTML; |
146 | 144 | ||
147 | this.updateWindowWithHTMLContent(aWindow, html); | 145 | this.updateWindowWithHTMLContent(aWindow, html); |
148 | this.submitLoginForm(aWindow, submitFunction); | 146 | this.submitLoginForm(aWindow, submitFunction); |
149 | }, | 147 | }, |
150 | 148 | ||
151 | //------------------------------------------------------------------------- | 149 | //------------------------------------------------------------------------- |
152 | 150 | ||
153 | 'runHttpAuthDirectLogin': function(aWindow, someAttributes) { | 151 | 'runHttpAuthDirectLogin': function(aWindow, someAttributes) { |
154 | var completeUrl; | 152 | var completeUrl; |
155 | var url; | 153 | var url; |
156 | 154 | ||
157 | //console.log("runHttpAuthDirectLogin", someAttributes); | ||
158 | url = someAttributes['inputValues']['url']; | 155 | url = someAttributes['inputValues']['url']; |
159 | 156 | ||
160 | if (/^https?\:\/\//.test(url) == false) { | 157 | if (/^https?\:\/\//.test(url) == false) { |
161 | url = 'http://' + url; | 158 | url = 'http://' + url; |
162 | } | 159 | } |
163 | 160 | ||
164 | if (Clipperz_IEisBroken === true) { | 161 | if (Clipperz_IEisBroken === true) { |
165 | completeUrl = url; | 162 | completeUrl = url; |
166 | } else { | 163 | } else { |
167 | var username; | 164 | var username; |
168 | var password; | 165 | var password; |
169 | 166 | ||
170 | username = someAttributes['inputValues']['username']; | 167 | username = someAttributes['inputValues']['username']; |
171 | password = someAttributes['inputValues']['password']; | 168 | password = someAttributes['inputValues']['password']; |
172 | /(^https?\:\/\/)?(.*)/.test(url); | 169 | /(^https?\:\/\/)?(.*)/.test(url); |
173 | 170 | ||
174 | completeUrl = RegExp.$1 + username + ':' + password + '@' + RegExp.$2; | 171 | completeUrl = RegExp.$1 + username + ':' + password + '@' + RegExp.$2; |
175 | } | 172 | } |
176 | 173 | ||
177 | window.open(completeUrl, this.target()); | 174 | window.open(completeUrl, this.target()); |
178 | }, | 175 | }, |
179 | 176 | ||
180 | //============================================================================= | 177 | //============================================================================= |
181 | 178 | ||
182 | 'runDirectLogin': function (aWindow) { | 179 | 'runDirectLogin': function (aWindow) { |
183 | var deferredResult; | 180 | var deferredResult; |
184 | 181 | ||
185 | //console.log(">>> runDirectLogin"); | ||
186 | deferredResult = new Clipperz.Async.Deferred("DirectLoginRunner.openDirectLogin", {trace:false}); | 182 | deferredResult = new Clipperz.Async.Deferred("DirectLoginRunner.openDirectLogin", {trace:false}); |
187 | deferredResult.addMethod(this, 'initialWindowSetup', aWindow); | 183 | deferredResult.addMethod(this, 'initialWindowSetup', aWindow); |
188 | deferredResult.addMethod(this.directLogin(), 'label'); | 184 | deferredResult.addMethod(this.directLogin(), 'label'); |
189 | deferredResult.addMethod(this, 'updateWindowWithDirectLoginLabel', aWindow); | 185 | deferredResult.addMethod(this, 'updateWindowWithDirectLoginLabel', aWindow); |
190 | deferredResult.collectResults({ | 186 | deferredResult.collectResults({ |
191 | 'type': MochiKit.Base.method(this.directLogin(), 'type'), | 187 | 'type': MochiKit.Base.method(this.directLogin(), 'type'), |
192 | 'label': MochiKit.Base.method(this.directLogin(), 'label'), | 188 | 'label': MochiKit.Base.method(this.directLogin(), 'label'), |
193 | 'formAttributes':MochiKit.Base.method(this.directLogin(), 'formAttributes'), | 189 | 'formAttributes':MochiKit.Base.method(this.directLogin(), 'formAttributes'), |
194 | 'inputValues': MochiKit.Base.method(this.directLogin(), 'inputValues') | 190 | 'inputValues': MochiKit.Base.method(this.directLogin(), 'inputValues') |
195 | }); | 191 | }); |
196 | //deferredResult.addCallback(function (aValue) { console.log("SOME ATTRIBUTES", aValue); return aValue; }); | ||
197 | deferredResult.addCallback(MochiKit.Base.bind(function (someAttributes) { | 192 | deferredResult.addCallback(MochiKit.Base.bind(function (someAttributes) { |
198 | //console.log("SOME ATTRIBUTES", someAttributes); | ||
199 | switch (someAttributes['type']) { | 193 | switch (someAttributes['type']) { |
200 | case 'http_auth': | 194 | case 'http_auth': |
201 | this.runHttpAuthDirectLogin(aWindow, someAttributes); | 195 | this.runHttpAuthDirectLogin(aWindow, someAttributes); |
202 | break; | 196 | break; |
203 | case 'simple_url': | 197 | case 'simple_url': |
204 | this.runSimpleUrlDirectLogin(aWindow, someAttributes); | 198 | this.runSimpleUrlDirectLogin(aWindow, someAttributes); |
205 | break; | 199 | break; |
206 | default: | 200 | default: |
207 | this.runSubmitFormDirectLogin(aWindow, someAttributes); | 201 | this.runSubmitFormDirectLogin(aWindow, someAttributes); |
208 | break; | 202 | break; |
209 | } | 203 | } |
210 | }, this)); | 204 | }, this)); |
211 | deferredResult.callback(); | 205 | deferredResult.callback(); |
212 | //console.log("<<< runDirectLogin"); | ||
213 | 206 | ||
214 | return deferredResult; | 207 | return deferredResult; |
215 | }, | 208 | }, |
216 | 209 | ||
217 | //============================================================================= | 210 | //============================================================================= |
218 | 211 | ||
219 | 'run': function () { | 212 | 'run': function () { |
220 | var newWindow; | 213 | var newWindow; |
221 | 214 | ||
222 | newWindow = window.open(Clipperz.PM.Strings.getValue('directLoginJumpPageUrl'), this.target()); | 215 | newWindow = window.open(Clipperz.PM.Strings.getValue('directLoginJumpPageUrl'), this.target()); |
223 | 216 | ||
224 | return this.runDirectLogin(newWindow); | 217 | return this.runDirectLogin(newWindow); |
225 | }, | 218 | }, |
226 | 219 | ||
227 | //============================================================================= | 220 | //============================================================================= |
228 | 221 | ||
229 | 'test': function () { | 222 | 'test': function () { |
230 | var iFrame; | 223 | var iFrame; |
231 | var newWindow; | 224 | var newWindow; |
232 | 225 | ||
233 | iFrame = MochiKit.DOM.createDOM('iframe'); | 226 | iFrame = MochiKit.DOM.createDOM('iframe'); |
234 | MochiKit.DOM.appendChildNodes(MochiKit.DOM.currentDocument().body, iFrame); | 227 | MochiKit.DOM.appendChildNodes(MochiKit.DOM.currentDocument().body, iFrame); |
235 | 228 | ||
236 | newWindow = iFrame.contentWindow; | 229 | newWindow = iFrame.contentWindow; |
237 | 230 | ||
238 | return this.runDirectLogin(newWindow); | 231 | return this.runDirectLogin(newWindow); |
239 | }, | 232 | }, |
240 | 233 | ||
241 | //============================================================================= | 234 | //============================================================================= |
242 | __syntaxFix__: "syntax fix" | 235 | __syntaxFix__: "syntax fix" |
243 | }); | 236 | }); |
244 | 237 | ||
245 | //----------------------------------------------------------------------------- | 238 | //----------------------------------------------------------------------------- |
246 | 239 | ||
247 | Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.openDirectLogin = function (aDirectLogin) { | 240 | Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.openDirectLogin = function (aDirectLogin) { |
248 | varrunner; | 241 | varrunner; |
249 | 242 | ||
250 | runner = new Clipperz.PM.UI.Common.Controllers.DirectLoginRunner({directLogin:aDirectLogin}); | 243 | runner = new Clipperz.PM.UI.Common.Controllers.DirectLoginRunner({directLogin:aDirectLogin}); |
251 | return runner.run(); | 244 | return runner.run(); |
252 | }; | 245 | }; |
253 | 246 | ||
254 | //----------------------------------------------------------------------------- | 247 | //----------------------------------------------------------------------------- |
255 | 248 | ||
256 | Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.testDirectLogin = function (aDirectLogin) { | 249 | Clipperz.PM.UI.Common.Controllers.DirectLoginRunner.testDirectLogin = function (aDirectLogin) { |
257 | varrunner; | 250 | varrunner; |
258 | 251 | ||
259 | //console.log(">>>>>> TESTING DIRECT LOGIN"); | ||
260 | runner = new Clipperz.PM.UI.Common.Controllers.DirectLoginRunner({directLogin:aDirectLogin}); | 252 | runner = new Clipperz.PM.UI.Common.Controllers.DirectLoginRunner({directLogin:aDirectLogin}); |
261 | return runner.test(); | 253 | return runner.test(); |
262 | }; | 254 | }; |
263 | 255 | ||
264 | //----------------------------------------------------------------------------- | 256 | //----------------------------------------------------------------------------- |