author | Clipperz <info@clipperz.com> | 2013-01-18 15:02:39 (UTC) |
---|---|---|
committer | Clipperz <info@clipperz.com> | 2013-01-18 15:02:39 (UTC) |
commit | 969b9f94a25931a765a4cd4765177979f66c1585 (patch) (unidiff) | |
tree | 0b61de265b28c11260dc15256c30184454e7ef08 | |
parent | fac609cf1507ae82e7069b21724e089a9ac93869 (diff) | |
download | clipperz-969b9f94a25931a765a4cd4765177979f66c1585.zip clipperz-969b9f94a25931a765a4cd4765177979f66c1585.tar.gz clipperz-969b9f94a25931a765a4cd4765177979f66c1585.tar.bz2 |
Fixed error when importing data
-rw-r--r-- | frontend/beta/js/Clipperz/PM/DataModel/User.js | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/frontend/beta/js/Clipperz/PM/DataModel/User.js b/frontend/beta/js/Clipperz/PM/DataModel/User.js index b065557..b29d224 100644 --- a/frontend/beta/js/Clipperz/PM/DataModel/User.js +++ b/frontend/beta/js/Clipperz/PM/DataModel/User.js | |||
@@ -1,904 +1,909 @@ | |||
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 Community Edition. | 5 | This file is part of Clipperz Community Edition. |
6 | Clipperz Community Edition is an online password manager. | 6 | Clipperz Community Edition is an online password manager. |
7 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
8 | refer to http://www.clipperz.com. | 8 | refer to http://www.clipperz.com. |
9 | 9 | ||
10 | * Clipperz Community Edition is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
11 | 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 |
12 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
13 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
14 | 14 | ||
15 | * Clipperz Community Edition is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
16 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
19 | 19 | ||
20 | * 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 |
21 | License along with Clipperz Community Edition. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
22 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
23 | 23 | ||
24 | */ | 24 | */ |
25 | 25 | ||
26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
29 | 29 | ||
30 | 30 | ||
31 | //############################################################################# | 31 | //############################################################################# |
32 | 32 | ||
33 | Clipperz.PM.DataModel.User = function(args) { | 33 | Clipperz.PM.DataModel.User = function(args) { |
34 | //MochiKit.Logging.logDebug(">>> new User"); | 34 | //MochiKit.Logging.logDebug(">>> new User"); |
35 | args = args || {}; | 35 | args = args || {}; |
36 | 36 | ||
37 | this._username = args.username || null; | 37 | this._username = args.username || null; |
38 | this._passphrase = args.passphrase || null; | 38 | this._passphrase = args.passphrase || null; |
39 | 39 | ||
40 | this._connection = null; | 40 | this._connection = null; |
41 | this._connectionVersion = 'current'; | 41 | this._connectionVersion = 'current'; |
42 | 42 | ||
43 | this._header = null; | 43 | this._header = null; |
44 | this._statistics = null; | 44 | this._statistics = null; |
45 | this._lock = 'new lock'; | 45 | this._lock = 'new lock'; |
46 | 46 | ||
47 | this._preferences = null; | 47 | this._preferences = null; |
48 | this._records = {}; | 48 | this._records = {}; |
49 | this._directLoginReferences = {}; | 49 | this._directLoginReferences = {}; |
50 | this._oneTimePasswordManager = null; | 50 | this._oneTimePasswordManager = null; |
51 | 51 | ||
52 | this._isLoadingUserDetails = false; | 52 | this._isLoadingUserDetails = false; |
53 | this._loadingUserDetailsPendingQueue = []; | 53 | this._loadingUserDetailsPendingQueue = []; |
54 | 54 | ||
55 | this._maxNumberOfRecords = Number.MAX_VALUE; | 55 | this._maxNumberOfRecords = Number.MAX_VALUE; |
56 | 56 | ||
57 | this._shouldDownloadOfflineCopy = false; | 57 | this._shouldDownloadOfflineCopy = false; |
58 | 58 | ||
59 | this._loginInfo = null; | 59 | this._loginInfo = null; |
60 | this._loginHistory = null; | 60 | this._loginHistory = null; |
61 | 61 | ||
62 | this._serverData = null; | 62 | this._serverData = null; |
63 | //MochiKit.Logging.logDebug("<<< new User"); | 63 | //MochiKit.Logging.logDebug("<<< new User"); |
64 | 64 | ||
65 | return this; | 65 | return this; |
66 | } | 66 | } |
67 | 67 | ||
68 | Clipperz.PM.DataModel.User.prototype = MochiKit.Base.update(null, { | 68 | Clipperz.PM.DataModel.User.prototype = MochiKit.Base.update(null, { |
69 | 69 | ||
70 | 'toString': function() { | 70 | 'toString': function() { |
71 | return "Clipperz.PM.DataModel.User - " + this.username(); | 71 | return "Clipperz.PM.DataModel.User - " + this.username(); |
72 | }, | 72 | }, |
73 | 73 | ||
74 | //------------------------------------------------------------------------- | 74 | //------------------------------------------------------------------------- |
75 | 75 | ||
76 | 'username': function() { | 76 | 'username': function() { |
77 | return this._username; | 77 | return this._username; |
78 | }, | 78 | }, |
79 | 79 | ||
80 | 'setUsername': function(aValue) { | 80 | 'setUsername': function(aValue) { |
81 | this._username = aValue; | 81 | this._username = aValue; |
82 | }, | 82 | }, |
83 | 83 | ||
84 | //------------------------------------------------------------------------- | 84 | //------------------------------------------------------------------------- |
85 | 85 | ||
86 | 'passphrase': function() { | 86 | 'passphrase': function() { |
87 | return this._passphrase; | 87 | return this._passphrase; |
88 | }, | 88 | }, |
89 | 89 | ||
90 | 'setPassphrase': function(aValue) { | 90 | 'setPassphrase': function(aValue) { |
91 | this._passphrase = aValue; | 91 | this._passphrase = aValue; |
92 | }, | 92 | }, |
93 | 93 | ||
94 | //------------------------------------------------------------------------- | 94 | //------------------------------------------------------------------------- |
95 | 95 | ||
96 | 'maxNumberOfRecords': function() { | 96 | 'maxNumberOfRecords': function() { |
97 | return this._maxNumberOfRecords; | 97 | return this._maxNumberOfRecords; |
98 | }, | 98 | }, |
99 | 99 | ||
100 | 'setMaxNumberOfRecords': function(aValue) { | 100 | 'setMaxNumberOfRecords': function(aValue) { |
101 | this._maxNumberOfRecords = aValue; | 101 | this._maxNumberOfRecords = aValue; |
102 | }, | 102 | }, |
103 | 103 | ||
104 | //------------------------------------------------------------------------- | 104 | //------------------------------------------------------------------------- |
105 | 105 | ||
106 | 'errorHandler': function(anErrorString, anException) { | 106 | 'errorHandler': function(anErrorString, anException) { |
107 | MochiKit.Logging.logError("- User.errorHandler: " + anErrorString + " (" + anException + ")"); | 107 | MochiKit.Logging.logError("- User.errorHandler: " + anErrorString + " (" + anException + ")"); |
108 | }, | 108 | }, |
109 | 109 | ||
110 | //------------------------------------------------------------------------- | 110 | //------------------------------------------------------------------------- |
111 | 111 | ||
112 | 'connectionVersion': function() { | 112 | 'connectionVersion': function() { |
113 | return this._connectionVersion; | 113 | return this._connectionVersion; |
114 | }, | 114 | }, |
115 | 115 | ||
116 | 'setConnectionVersion': function(aValue) { | 116 | 'setConnectionVersion': function(aValue) { |
117 | this._connectionVersion = aValue; | 117 | this._connectionVersion = aValue; |
118 | }, | 118 | }, |
119 | 119 | ||
120 | //------------------------------------------------------------------------- | 120 | //------------------------------------------------------------------------- |
121 | 121 | ||
122 | 'connection': function() { | 122 | 'connection': function() { |
123 | if ((this._connection == null) && (this.connectionVersion() != null) ){ | 123 | if ((this._connection == null) && (this.connectionVersion() != null) ){ |
124 | this._connection = new Clipperz.PM.Crypto.communicationProtocol.versions[this.connectionVersion()]({user:this}); | 124 | this._connection = new Clipperz.PM.Crypto.communicationProtocol.versions[this.connectionVersion()]({user:this}); |
125 | } | 125 | } |
126 | 126 | ||
127 | return this._connection; | 127 | return this._connection; |
128 | }, | 128 | }, |
129 | 129 | ||
130 | 'resetConnection': function(aValue) { | 130 | 'resetConnection': function(aValue) { |
131 | this._connection = null; | 131 | this._connection = null; |
132 | }, | 132 | }, |
133 | 133 | ||
134 | //========================================================================= | 134 | //========================================================================= |
135 | 135 | ||
136 | 'register': function(anInvitationCode) { | 136 | 'register': function(anInvitationCode) { |
137 | vardeferredResult; | 137 | vardeferredResult; |
138 | var prng; | 138 | var prng; |
139 | 139 | ||
140 | //MochiKit.Logging.logError(">>> User.register: " + this); | 140 | //MochiKit.Logging.logError(">>> User.register: " + this); |
141 | prng = Clipperz.Crypto.PRNG.defaultRandomGenerator(); | 141 | prng = Clipperz.Crypto.PRNG.defaultRandomGenerator(); |
142 | 142 | ||
143 | deferredResult = new MochiKit.Async.Deferred() | 143 | deferredResult = new MochiKit.Async.Deferred() |
144 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 1: " + res); return res;}); | 144 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 1: " + res); return res;}); |
145 | deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection')); | 145 | deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection')); |
146 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2: " + res); return res;}); | 146 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2: " + res); return res;}); |
147 | deferredResult.addCallback(MochiKit.Base.method(this.header(), 'updateAllSections'), anInvitationCode); | 147 | deferredResult.addCallback(MochiKit.Base.method(this.header(), 'updateAllSections'), anInvitationCode); |
148 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2.1: " + res); return res;}); | 148 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2.1: " + res); return res;}); |
149 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'register'), anInvitationCode); | 149 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'register'), anInvitationCode); |
150 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 3: " + res); return res;}); | 150 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 3: " + res); return res;}); |
151 | deferredResult.callback(); | 151 | deferredResult.callback(); |
152 | //MochiKit.Logging.logError("<<< User.register"); | 152 | //MochiKit.Logging.logError("<<< User.register"); |
153 | 153 | ||
154 | return deferredResult; | 154 | return deferredResult; |
155 | }, | 155 | }, |
156 | 156 | ||
157 | //========================================================================= | 157 | //========================================================================= |
158 | 158 | ||
159 | 'connect': function(aValue) { | 159 | 'connect': function(aValue) { |
160 | vardeferredResult; | 160 | vardeferredResult; |
161 | var prng; | 161 | var prng; |
162 | 162 | ||
163 | prng = Clipperz.Crypto.PRNG.defaultRandomGenerator(); | 163 | prng = Clipperz.Crypto.PRNG.defaultRandomGenerator(); |
164 | 164 | ||
165 | //MochiKit.Logging.logDebug(">>> User.connect"); | 165 | //MochiKit.Logging.logDebug(">>> User.connect"); |
166 | deferredResult = new MochiKit.Async.Deferred(); | 166 | deferredResult = new MochiKit.Async.Deferred(); |
167 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.1 - User.connect - 1: "/* + res*/); return res;}); | 167 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.1 - User.connect - 1: "/* + res*/); return res;}); |
168 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); | 168 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); |
169 | deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection')); | 169 | deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection')); |
170 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.2 - User.connect - 2: "/* + res*/); return res;}); | 170 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.2 - User.connect - 2: "/* + res*/); return res;}); |
171 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); | 171 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); |
172 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'login')); | 172 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'login')); |
173 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.3 - User.connect - 3: "/* + res*/); return res;}); | 173 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.3 - User.connect - 3: "/* + res*/); return res;}); |
174 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); | 174 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); |
175 | 175 | ||
176 | // TODO:add an addErrback call here to manage a wrong login. Any error after this point is due to some other causes. | 176 | // TODO:add an addErrback call here to manage a wrong login. Any error after this point is due to some other causes. |
177 | // possibly the same exact 'handleConnectionFallback use at the end of this same method. | 177 | // possibly the same exact 'handleConnectionFallback use at the end of this same method. |
178 | 178 | ||
179 | if (this.connectionVersion() != 'current') { | 179 | if (this.connectionVersion() != 'current') { |
180 | varcurrentConnection; | 180 | varcurrentConnection; |
181 | 181 | ||
182 | currentVersionConnection = new Clipperz.PM.Crypto.communicationProtocol.versions['current']({user:this}); | 182 | currentVersionConnection = new Clipperz.PM.Crypto.communicationProtocol.versions['current']({user:this}); |
183 | 183 | ||
184 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.4 - User.connect - 4: "/* + res*/); return res;}); | 184 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.4 - User.connect - 4: "/* + res*/); return res;}); |
185 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); | 185 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); |
186 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'connection_upgrading'); | 186 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'connection_upgrading'); |
187 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.5 - User.connect - 5: "/* + res*/); return res;}); | 187 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.5 - User.connect - 5: "/* + res*/); return res;}); |
188 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); | 188 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); |
189 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'upgradeUserCredentials', currentVersionConnection.serverSideUserCredentials()); | 189 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'upgradeUserCredentials', currentVersionConnection.serverSideUserCredentials()); |
190 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.6 - User.connect - 6: "/* + res*/); return res;}); | 190 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.6 - User.connect - 6: "/* + res*/); return res;}); |
191 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); | 191 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); |
192 | } | 192 | } |
193 | 193 | ||
194 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.7 - User.connect - 7: "/* + res*/); return res;}); | 194 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.7 - User.connect - 7: "/* + res*/); return res;}); |
195 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); | 195 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); |
196 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'userConnected', null); | 196 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'userConnected', null); |
197 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.8 - User.connect - 8: "/* + res*/); return res;}); | 197 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.8 - User.connect - 8: "/* + res*/); return res;}); |
198 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); | 198 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); |
199 | deferredResult.addErrback(MochiKit.Base.method(this, 'handleConnectionFallback')); | 199 | deferredResult.addErrback(MochiKit.Base.method(this, 'handleConnectionFallback')); |
200 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.9 - User.connect - 9: "/* + res*/); return res;}); | 200 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("1.2.9 - User.connect - 9: "/* + res*/); return res;}); |
201 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); | 201 | //deferredResult.addErrback(function(res) {MochiKit.Logging.logDebug("ERROR: " + res); return res;}); |
202 | 202 | ||
203 | deferredResult.callback(aValue); | 203 | deferredResult.callback(aValue); |
204 | //MochiKit.Logging.logDebug("<<< User.connect"); | 204 | //MochiKit.Logging.logDebug("<<< User.connect"); |
205 | 205 | ||
206 | return deferredResult; | 206 | return deferredResult; |
207 | }, | 207 | }, |
208 | 208 | ||
209 | //......................................................................... | 209 | //......................................................................... |
210 | 210 | ||
211 | 'handleConnectionFallback': function(aValue) { | 211 | 'handleConnectionFallback': function(aValue) { |
212 | var result; | 212 | var result; |
213 | //MochiKit.Logging.logDebug(">>> User.handleConnectionFallback"); | 213 | //MochiKit.Logging.logDebug(">>> User.handleConnectionFallback"); |
214 | if (aValue instanceof MochiKit.Async.CancelledError) { | 214 | if (aValue instanceof MochiKit.Async.CancelledError) { |
215 | //MochiKit.Logging.logDebug("--- User.handleConnectionFallback - operation cancelled"); | 215 | //MochiKit.Logging.logDebug("--- User.handleConnectionFallback - operation cancelled"); |
216 | result = aValue; | 216 | result = aValue; |
217 | } else { | 217 | } else { |
218 | 218 | ||
219 | //MochiKit.Logging.logDebug("--- User.handleConnectionFallback - an ERROR has occurred - " + aValue); | 219 | //MochiKit.Logging.logDebug("--- User.handleConnectionFallback - an ERROR has occurred - " + aValue); |
220 | this.resetConnection(); | 220 | this.resetConnection(); |
221 | this.setConnectionVersion(Clipperz.PM.Crypto.communicationProtocol.fallbackVersions[this.connectionVersion()]); | 221 | this.setConnectionVersion(Clipperz.PM.Crypto.communicationProtocol.fallbackVersions[this.connectionVersion()]); |
222 | 222 | ||
223 | if (this.connectionVersion() != null) { | 223 | if (this.connectionVersion() != null) { |
224 | result = new MochiKit.Async.Deferred(); | 224 | result = new MochiKit.Async.Deferred(); |
225 | 225 | ||
226 | result.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'connection_tryOlderSchema'); | 226 | result.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'connection_tryOlderSchema'); |
227 | result.addCallback(MochiKit.Base.method(this, 'connect')); | 227 | result.addCallback(MochiKit.Base.method(this, 'connect')); |
228 | result.callback(); | 228 | result.callback(); |
229 | } else { | 229 | } else { |
230 | result = MochiKit.Async.fail(Clipperz.PM.DataModel.User.exception.LoginFailed); | 230 | result = MochiKit.Async.fail(Clipperz.PM.DataModel.User.exception.LoginFailed); |
231 | } | 231 | } |
232 | } | 232 | } |
233 | //MochiKit.Logging.logDebug("<<< User.handleConnectionFallback"); | 233 | //MochiKit.Logging.logDebug("<<< User.handleConnectionFallback"); |
234 | return result; | 234 | return result; |
235 | }, | 235 | }, |
236 | 236 | ||
237 | //========================================================================= | 237 | //========================================================================= |
238 | 238 | ||
239 | 'header': function() { | 239 | 'header': function() { |
240 | if (this._header == null) { | 240 | if (this._header == null) { |
241 | this._header = new Clipperz.PM.DataModel.Header({user:this}); | 241 | this._header = new Clipperz.PM.DataModel.Header({user:this}); |
242 | } | 242 | } |
243 | return this._header; | 243 | return this._header; |
244 | }, | 244 | }, |
245 | 245 | ||
246 | //------------------------------------------------------------------------- | 246 | //------------------------------------------------------------------------- |
247 | 247 | ||
248 | 'statistics': function() { | 248 | 'statistics': function() { |
249 | if (this._statistics == null) { | 249 | if (this._statistics == null) { |
250 | this._statistics = new Clipperz.PM.DataModel.Statistics({user:this}); | 250 | this._statistics = new Clipperz.PM.DataModel.Statistics({user:this}); |
251 | } | 251 | } |
252 | return this._statistics; | 252 | return this._statistics; |
253 | }, | 253 | }, |
254 | 254 | ||
255 | //------------------------------------------------------------------------- | 255 | //------------------------------------------------------------------------- |
256 | 256 | ||
257 | 'records': function() { | 257 | 'records': function() { |
258 | return this._records; | 258 | return this._records; |
259 | }, | 259 | }, |
260 | 260 | ||
261 | //......................................................................... | 261 | //......................................................................... |
262 | 262 | ||
263 | 'addRecord': function(aValue, isBatchUpdate) { | 263 | 'addRecord': function(aValue, isBatchUpdate) { |
264 | this.records()[aValue.reference()] = aValue; | 264 | this.records()[aValue.reference()] = aValue; |
265 | 265 | ||
266 | if (isBatchUpdate != true) { | 266 | if (isBatchUpdate != true) { |
267 | Clipperz.NotificationCenter.notify(aValue, 'recordAdded', null, true); | 267 | Clipperz.NotificationCenter.notify(aValue, 'recordAdded', null, true); |
268 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); | 268 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); |
269 | } | 269 | } |
270 | }, | 270 | }, |
271 | 271 | ||
272 | //----------------------------------------------------------------------------- | 272 | //----------------------------------------------------------------------------- |
273 | 273 | ||
274 | 'addNewRecord': function() { | 274 | 'addNewRecord': function() { |
275 | varrecord; | 275 | varrecord; |
276 | 276 | ||
277 | //MochiKit.Logging.logDebug(">>> User.addNewRecord"); | 277 | //MochiKit.Logging.logDebug(">>> User.addNewRecord"); |
278 | record = new Clipperz.PM.DataModel.Record({user:this}); | 278 | record = new Clipperz.PM.DataModel.Record({user:this}); |
279 | this.addRecord(record); | 279 | this.addRecord(record); |
280 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); | 280 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); |
281 | //MochiKit.Logging.logDebug("<<< User.addNewRecord"); | 281 | //MochiKit.Logging.logDebug("<<< User.addNewRecord"); |
282 | 282 | ||
283 | return record; | 283 | return record; |
284 | }, | 284 | }, |
285 | 285 | ||
286 | //------------------------------------------------------------------------- | 286 | //------------------------------------------------------------------------- |
287 | 287 | ||
288 | 'saveRecords': function(someRecords /*, aMethodName*/) { | 288 | 'saveRecords': function(someRecords /*, aMethodName*/) { |
289 | var deferredResult; | 289 | var deferredResult; |
290 | // var methodName; | 290 | // var methodName; |
291 | varresult; | 291 | varresult; |
292 | var i,c; | 292 | var i,c; |
293 | 293 | ||
294 | //console.log("User.saveRecords - someRecords", someRecords); | 294 | //console.log("User.saveRecords - someRecords", someRecords); |
295 | // methodName = aMethodName || 'addNewRecords'; | 295 | // methodName = aMethodName || 'addNewRecords'; |
296 | 296 | ||
297 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); | 297 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); |
298 | //MochiKit.Logging.logDebug(">>> User.saveRecords"); | 298 | //MochiKit.Logging.logDebug(">>> User.saveRecords"); |
299 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] User.saveRecords"); | 299 | //MochiKit.Logging.logDebug(">>> [" + (new Date()).valueOf() + "] User.saveRecords"); |
300 | /* | 300 | /* |
301 | MochiKit.Logging.logDebug("--- User.saveRecords - 1"); | 301 | MochiKit.Logging.logDebug("--- User.saveRecords - 1"); |
302 | MochiKit.Iter.forEach(someRecords, function(aRecord) { | 302 | MochiKit.Iter.forEach(someRecords, function(aRecord) { |
303 | if (aRecord.headerNotes() != null) { | 303 | if (aRecord.headerNotes() != null) { |
304 | aRecord.setNotes(aRecord.headerNotes()); | 304 | aRecord.setNotes(aRecord.headerNotes()); |
305 | } | 305 | } |
306 | aRecord.syncDirectLoginReferenceValues(); | 306 | aRecord.syncDirectLoginReferenceValues(); |
307 | aRecord.currentVersion().createNewVersion(); | 307 | aRecord.currentVersion().createNewVersion(); |
308 | aRecord.updateKey(); | 308 | aRecord.updateKey(); |
309 | }); | 309 | }); |
310 | MochiKit.Logging.logDebug("--- User.saveRecords - 2"); | 310 | MochiKit.Logging.logDebug("--- User.saveRecords - 2"); |
311 | */ | 311 | */ |
312 | 312 | ||
313 | result = {'records': []}; | 313 | result = { |
314 | 'records': { | ||
315 | // 'deleted': [], | ||
316 | 'updated': [] | ||
317 | } | ||
318 | }; | ||
314 | 319 | ||
315 | deferredResult = new MochiKit.Async.Deferred(); | 320 | deferredResult = new MochiKit.Async.Deferred(); |
316 | c = someRecords.length; | 321 | c = someRecords.length; |
317 | for (i=0; i<c; i++) { | 322 | for (i=0; i<c; i++) { |
318 | deferredResult.addCallback(function(aRecord) { | 323 | deferredResult.addCallback(function(aRecord) { |
319 | if (aRecord.headerNotes() != null) { | 324 | if (aRecord.headerNotes() != null) { |
320 | aRecord.setNotes(aRecord.headerNotes()); | 325 | aRecord.setNotes(aRecord.headerNotes()); |
321 | } | 326 | } |
322 | aRecord.syncDirectLoginReferenceValues(); | 327 | aRecord.syncDirectLoginReferenceValues(); |
323 | aRecord.currentVersion().createNewVersion(); | 328 | aRecord.currentVersion().createNewVersion(); |
324 | aRecord.updateKey(); | 329 | aRecord.updateKey(); |
325 | }, someRecords[i]); | 330 | }, someRecords[i]); |
326 | deferredResult.addCallback(MochiKit.Async.wait, 0.1); | 331 | deferredResult.addCallback(MochiKit.Async.wait, 0.1); |
327 | } | 332 | } |
328 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 1 " + res); return res;}); | 333 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 1 " + res); return res;}); |
329 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_collectRecordInfo'); | 334 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_collectRecordInfo'); |
330 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 2 " + res); return res;}); | 335 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 2 " + res); return res;}); |
331 | 336 | ||
332 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptUserData'); | 337 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptUserData'); |
333 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 3 " + res); return res;}); | 338 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 3 " + res); return res;}); |
334 | deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); | 339 | deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); |
335 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 4 " + res); return res;}); | 340 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 4 " + res); return res;}); |
336 | deferredResult.addCallback(function(aResult, res) { | 341 | deferredResult.addCallback(function(aResult, res) { |
337 | aResult['user'] = res; | 342 | aResult['user'] = res; |
338 | return aResult; | 343 | return aResult; |
339 | }, result); | 344 | }, result); |
340 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 5 " + res); return res;}); | 345 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 5 " + res); return res;}); |
341 | 346 | ||
342 | c = someRecords.length; | 347 | c = someRecords.length; |
343 | for (i=0; i<c; i++) { | 348 | for (i=0; i<c; i++) { |
344 | var recordData; | 349 | var recordData; |
345 | 350 | ||
346 | recordData = {}; | 351 | recordData = {}; |
347 | 352 | ||
348 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.1 " + res); return res;}); | 353 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.1 " + res); return res;}); |
349 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptRecordData'); | 354 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_encryptRecordData'); |
350 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.2 " + res); return res;}); | 355 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.2 " + res); return res;}); |
351 | deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'encryptedData')); | 356 | deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'encryptedData')); |
352 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.3 " + res); return res;}); | 357 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.3 " + res); return res;}); |
353 | deferredResult.addCallback(function(aResult, res) { | 358 | deferredResult.addCallback(function(aResult, res) { |
354 | aResult['record'] = res; | 359 | aResult['record'] = res; |
355 | return aResult; | 360 | return aResult; |
356 | }, recordData); | 361 | }, recordData); |
357 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.4 " + res); return res;}); | 362 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.4 " + res); return res;}); |
358 | 363 | ||
359 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', {} /*'saveCard_encryptRecordVersions'*/); | 364 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', {} /*'saveCard_encryptRecordVersions'*/); |
360 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.5 " + res); return res;}); | 365 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.5 " + res); return res;}); |
361 | deferredResult.addCallback(MochiKit.Base.method(someRecords[i].currentVersion(), 'encryptedData')); | 366 | deferredResult.addCallback(MochiKit.Base.method(someRecords[i].currentVersion(), 'encryptedData')); |
362 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.6 " + res); return res;}); | 367 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.6 " + res); return res;}); |
363 | deferredResult.addCallback(function(aResult, res) { | 368 | deferredResult.addCallback(function(aResult, res) { |
364 | aResult['currentRecordVersion'] = res; | 369 | aResult['currentRecordVersion'] = res; |
365 | return aResult; | 370 | return aResult; |
366 | }, recordData); | 371 | }, recordData); |
367 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.7 " + res); return res;}); | 372 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.7 " + res); return res;}); |
368 | 373 | ||
369 | deferredResult.addCallback(function(aResult, res) { | 374 | deferredResult.addCallback(function(aResult, res) { |
370 | aResult['records'] = { 'updated': [res] }; | 375 | aResult['records']['updated'].push(res); |
371 | return aResult; | 376 | return aResult; |
372 | }, result); | 377 | }, result); |
373 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.8 " + res); return res;}); | 378 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 6.8 " + res); return res;}); |
374 | } | 379 | } |
375 | 380 | ||
376 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 7 " + res); return res;}); | 381 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 7 " + res); return res;}); |
377 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_sendingData'); | 382 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'saveCard_sendingData'); |
378 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 8 " + res); return res;}); | 383 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 8 " + res); return res;}); |
379 | // deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), methodName); | 384 | // deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), methodName); |
380 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'saveChanges'); | 385 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'saveChanges'); |
381 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9 " + res); return res;}); | 386 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9 " + res); return res;}); |
382 | 387 | ||
383 | for (i=0; i<c; i++) { | 388 | for (i=0; i<c; i++) { |
384 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.1 " + res); return res;}); | 389 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.1 " + res); return res;}); |
385 | deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'takeSnapshotOfCurrentData')); | 390 | deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'takeSnapshotOfCurrentData')); |
386 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.2 " + res); return res;}); | 391 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.2 " + res); return res;}); |
387 | deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'setIsBrandNew'), false); | 392 | deferredResult.addCallback(MochiKit.Base.method(someRecords[i], 'setIsBrandNew'), false); |
388 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.3 " + res); return res;}); | 393 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 9.3 " + res); return res;}); |
389 | } | 394 | } |
390 | 395 | ||
391 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 10 " + res); return res;}); | 396 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 10 " + res); return res;}); |
392 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'recordUpdated'); | 397 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'recordUpdated'); |
393 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 11 " + res); return res;}); | 398 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 11 " + res); return res;}); |
394 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'directLoginUpdated'); | 399 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'notify', 'directLoginUpdated'); |
395 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 12 " + res); return res;}); | 400 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.saveRecords - 12 " + res); return res;}); |
396 | deferredResult.callback(); | 401 | deferredResult.callback(); |
397 | 402 | ||
398 | return deferredResult; | 403 | return deferredResult; |
399 | }, | 404 | }, |
400 | 405 | ||
401 | //------------------------------------------------------------------------- | 406 | //------------------------------------------------------------------------- |
402 | 407 | ||
403 | 'removeRecord': function(aRecord) { | 408 | 'removeRecord': function(aRecord) { |
404 | //MochiKit.Logging.logDebug(">>> User.removeRecord"); | 409 | //MochiKit.Logging.logDebug(">>> User.removeRecord"); |
405 | delete this.records()[aRecord.reference()]; | 410 | delete this.records()[aRecord.reference()]; |
406 | //MochiKit.Logging.logDebug("--- User.removeRecord - 1"); | 411 | //MochiKit.Logging.logDebug("--- User.removeRecord - 1"); |
407 | Clipperz.NotificationCenter.notify(aRecord, 'recordRemoved', null, false); | 412 | Clipperz.NotificationCenter.notify(aRecord, 'recordRemoved', null, false); |
408 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); | 413 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'records', true); |
409 | //MochiKit.Logging.logDebug("<<< User.removeRecord"); | 414 | //MochiKit.Logging.logDebug("<<< User.removeRecord"); |
410 | }, | 415 | }, |
411 | 416 | ||
412 | //------------------------------------------------------------------------- | 417 | //------------------------------------------------------------------------- |
413 | 418 | ||
414 | 'deleteRecordsAction': function(someRecords) { | 419 | 'deleteRecordsAction': function(someRecords) { |
415 | vardeferredResult; | 420 | vardeferredResult; |
416 | var parameters; | 421 | var parameters; |
417 | 422 | ||
418 | //MochiKit.Logging.logDebug(">>> User.deleteRecordsAction - someRecords.length: " + someRecords.length); | 423 | //MochiKit.Logging.logDebug(">>> User.deleteRecordsAction - someRecords.length: " + someRecords.length); |
419 | parameters = {}; | 424 | parameters = {}; |
420 | deferredResult = new MochiKit.Async.Deferred(); | 425 | deferredResult = new MochiKit.Async.Deferred(); |
421 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 1 " + res); return res;}); | 426 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 1 " + res); return res;}); |
422 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_collectData'); | 427 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_collectData'); |
423 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 2 " + res); return res;}); | 428 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 2 " + res); return res;}); |
424 | deferredResult.addCallback(function(someParameters, someRecords) { | 429 | deferredResult.addCallback(function(someParameters, someRecords) { |
425 | var recordReferences; | 430 | var recordReferences; |
426 | 431 | ||
427 | recordReferences = MochiKit.Base.map(function(aRecord) { | 432 | recordReferences = MochiKit.Base.map(function(aRecord) { |
428 | var result; | 433 | var result; |
429 | 434 | ||
430 | result = aRecord.reference(); | 435 | result = aRecord.reference(); |
431 | aRecord.remove(); | 436 | aRecord.remove(); |
432 | 437 | ||
433 | return result; | 438 | return result; |
434 | }, someRecords); | 439 | }, someRecords); |
435 | // someParameters.recordReferences = recordReferences; | 440 | // someParameters.recordReferences = recordReferences; |
436 | someParameters['records'] = { 'deleted': recordReferences}; | 441 | someParameters['records'] = { 'deleted': recordReferences}; |
437 | 442 | ||
438 | return someParameters; | 443 | return someParameters; |
439 | }, parameters); | 444 | }, parameters); |
440 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 3 " + res); return res;}); | 445 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 3 " + res); return res;}); |
441 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_encryptData'); | 446 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_encryptData'); |
442 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 4 " + res); return res;}); | 447 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 4 " + res); return res;}); |
443 | deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); | 448 | deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); |
444 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 5 " + res); return res;}); | 449 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 5 " + res); return res;}); |
445 | deferredResult.addCallback(function(someParameters, anUserEncryptedData) { | 450 | deferredResult.addCallback(function(someParameters, anUserEncryptedData) { |
446 | someParameters.user = anUserEncryptedData; | 451 | someParameters.user = anUserEncryptedData; |
447 | return someParameters; | 452 | return someParameters; |
448 | }, parameters); | 453 | }, parameters); |
449 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 6 " + res); return res;}); | 454 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 6 " + res); return res;}); |
450 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_sendingData'); | 455 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_sendingData'); |
451 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecords parameters: " + Clipperz.Base.serializeJSON(res)); return res;}); | 456 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecords parameters: " + Clipperz.Base.serializeJSON(res)); return res;}); |
452 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 7 " + res); return res;}); | 457 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 7 " + res); return res;}); |
453 | // deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteRecords'); | 458 | // deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteRecords'); |
454 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'saveChanges'); | 459 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'saveChanges'); |
455 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 8 " + res); return res;}); | 460 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 8 " + res); return res;}); |
456 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_updatingInterface'); | 461 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'deleteRecord_updatingInterface'); |
457 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 9 " + res); return res;}); | 462 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.deleteRecordsAction - 9 " + res); return res;}); |
458 | deferredResult.callback(someRecords); | 463 | deferredResult.callback(someRecords); |
459 | //MochiKit.Logging.logDebug("<<< User.deleteRecordsAction"); | 464 | //MochiKit.Logging.logDebug("<<< User.deleteRecordsAction"); |
460 | 465 | ||
461 | return deferredResult; | 466 | return deferredResult; |
462 | }, | 467 | }, |
463 | 468 | ||
464 | //------------------------------------------------------------------------- | 469 | //------------------------------------------------------------------------- |
465 | 470 | ||
466 | 'resetAllLocalData': function() { | 471 | 'resetAllLocalData': function() { |
467 | this.resetConnection(); | 472 | this.resetConnection(); |
468 | 473 | ||
469 | this.setUsername(""); | 474 | this.setUsername(""); |
470 | this.setPassphrase(""); | 475 | this.setPassphrase(""); |
471 | 476 | ||
472 | this._header = null; | 477 | this._header = null; |
473 | this._statistics = null; | 478 | this._statistics = null; |
474 | this._preferences = null; | 479 | this._preferences = null; |
475 | this._records = {}; | 480 | this._records = {}; |
476 | this._directLoginReferences = {}; | 481 | this._directLoginReferences = {}; |
477 | }, | 482 | }, |
478 | 483 | ||
479 | //------------------------------------------------------------------------- | 484 | //------------------------------------------------------------------------- |
480 | 485 | ||
481 | 'deleteAccountAction': function() { | 486 | 'deleteAccountAction': function() { |
482 | var deferredResult; | 487 | var deferredResult; |
483 | 488 | ||
484 | //MochiKit.Logging.logDebug(">>> user.deleteAccountAction - " + this); | 489 | //MochiKit.Logging.logDebug(">>> user.deleteAccountAction - " + this); |
485 | deferredResult = new MochiKit.Async.Deferred(); | 490 | deferredResult = new MochiKit.Async.Deferred(); |
486 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteUser'); | 491 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'deleteUser'); |
487 | deferredResult.addCallback(MochiKit.Base.method(this, 'resetAllLocalData')); | 492 | deferredResult.addCallback(MochiKit.Base.method(this, 'resetAllLocalData')); |
488 | deferredResult.callback(); | 493 | deferredResult.callback(); |
489 | //MochiKit.Logging.logDebug("<<< user.deleteAccountAction - " + this); | 494 | //MochiKit.Logging.logDebug("<<< user.deleteAccountAction - " + this); |
490 | 495 | ||
491 | return deferredResult; | 496 | return deferredResult; |
492 | }, | 497 | }, |
493 | 498 | ||
494 | //------------------------------------------------------------------------- | 499 | //------------------------------------------------------------------------- |
495 | 500 | ||
496 | 'encryptedData': function() { | 501 | 'encryptedData': function() { |
497 | var deferredResult; | 502 | var deferredResult; |
498 | varresult; | 503 | varresult; |
499 | 504 | ||
500 | result = {}; | 505 | result = {}; |
501 | 506 | ||
502 | deferredResult = new MochiKit.Async.Deferred(); | 507 | deferredResult = new MochiKit.Async.Deferred(); |
503 | 508 | ||
504 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 0: " + res); return res;}); | 509 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 0: " + res); return res;}); |
505 | deferredResult.addCallback(MochiKit.Base.method(this.header(), 'encryptedData')); | 510 | deferredResult.addCallback(MochiKit.Base.method(this.header(), 'encryptedData')); |
506 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 1: " + res); return res;}); | 511 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 1: " + res); return res;}); |
507 | deferredResult.addCallback(function(aResult, aValue) { | 512 | deferredResult.addCallback(function(aResult, aValue) { |
508 | aResult['header'] = aValue; | 513 | aResult['header'] = aValue; |
509 | }, result); | 514 | }, result); |
510 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 2: " + res); return res;}); | 515 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 2: " + res); return res;}); |
511 | 516 | ||
512 | deferredResult.addCallback(MochiKit.Base.method(this.statistics(), 'encryptedData')); | 517 | deferredResult.addCallback(MochiKit.Base.method(this.statistics(), 'encryptedData')); |
513 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 3: " + res); return res;}); | 518 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 3: " + res); return res;}); |
514 | deferredResult.addCallback(function(aResult, aValue) { | 519 | deferredResult.addCallback(function(aResult, aValue) { |
515 | aResult['statistics'] = aValue; | 520 | aResult['statistics'] = aValue; |
516 | }, result); | 521 | }, result); |
517 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 4: " + res); return res;}); | 522 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 4: " + res); return res;}); |
518 | 523 | ||
519 | deferredResult.addCallback(MochiKit.Base.bind(function(aResult, aValue) { | 524 | deferredResult.addCallback(MochiKit.Base.bind(function(aResult, aValue) { |
520 | aResult['version'] = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; | 525 | aResult['version'] = Clipperz.PM.Crypto.encryptingFunctions.currentVersion; |
521 | aResult['lock'] = this.lock(); | 526 | aResult['lock'] = this.lock(); |
522 | 527 | ||
523 | return aResult; | 528 | return aResult; |
524 | }, this), result); | 529 | }, this), result); |
525 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 5: " + res); return res;}); | 530 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.encryptedData - 5: " + res); return res;}); |
526 | deferredResult.callback(); | 531 | deferredResult.callback(); |
527 | 532 | ||
528 | return deferredResult; | 533 | return deferredResult; |
529 | }, | 534 | }, |
530 | 535 | ||
531 | //------------------------------------------------------------------------- | 536 | //------------------------------------------------------------------------- |
532 | 537 | ||
533 | 'preferences': function() { | 538 | 'preferences': function() { |
534 | if (this._preferences == null) { | 539 | if (this._preferences == null) { |
535 | this._preferences = new Clipperz.PM.DataModel.UserPreferences({user:this}); | 540 | this._preferences = new Clipperz.PM.DataModel.UserPreferences({user:this}); |
536 | } | 541 | } |
537 | 542 | ||
538 | return this._preferences; | 543 | return this._preferences; |
539 | }, | 544 | }, |
540 | /* | 545 | /* |
541 | 'setPreferences': function(aValue) { | 546 | 'setPreferences': function(aValue) { |
542 | this._preferences = aValue; | 547 | this._preferences = aValue; |
543 | 548 | ||
544 | if (this._preferences.preferredLanguage() != null) { | 549 | if (this._preferences.preferredLanguage() != null) { |
545 | Clipperz.PM.Strings.Languages.setSelectedLanguage(this._preferences.preferredLanguage()); | 550 | Clipperz.PM.Strings.Languages.setSelectedLanguage(this._preferences.preferredLanguage()); |
546 | } else { | 551 | } else { |
547 | //MochiKit.Logging.logDebug("### keepping the browser selected language: " + Clipperz.PM.Strings.selectedLanguage); | 552 | //MochiKit.Logging.logDebug("### keepping the browser selected language: " + Clipperz.PM.Strings.selectedLanguage); |
548 | } | 553 | } |
549 | }, | 554 | }, |
550 | */ | 555 | */ |
551 | //------------------------------------------------------------------------- | 556 | //------------------------------------------------------------------------- |
552 | 557 | ||
553 | 'oneTimePasswordManager': function() { | 558 | 'oneTimePasswordManager': function() { |
554 | if (this._oneTimePasswordManager == null) { | 559 | if (this._oneTimePasswordManager == null) { |
555 | this._oneTimePasswordManager = new Clipperz.PM.DataModel.OneTimePasswordManager(this, null); | 560 | this._oneTimePasswordManager = new Clipperz.PM.DataModel.OneTimePasswordManager(this, null); |
556 | } | 561 | } |
557 | 562 | ||
558 | return this._oneTimePasswordManager; | 563 | return this._oneTimePasswordManager; |
559 | }, | 564 | }, |
560 | 565 | ||
561 | //------------------------------------------------------------------------- | 566 | //------------------------------------------------------------------------- |
562 | 567 | ||
563 | 'directLoginReferences': function() { | 568 | 'directLoginReferences': function() { |
564 | return this._directLoginReferences; | 569 | return this._directLoginReferences; |
565 | }, | 570 | }, |
566 | 571 | ||
567 | 'addDirectLoginReference': function(aDirectLoginReference, isBatchUpdate) { | 572 | 'addDirectLoginReference': function(aDirectLoginReference, isBatchUpdate) { |
568 | //MochiKit.Logging.logDebug(">>> User.addDirectLoginReference"); | 573 | //MochiKit.Logging.logDebug(">>> User.addDirectLoginReference"); |
569 | this.directLoginReferences()[aDirectLoginReference.reference()] = aDirectLoginReference; | 574 | this.directLoginReferences()[aDirectLoginReference.reference()] = aDirectLoginReference; |
570 | 575 | ||
571 | if (isBatchUpdate != true) { | 576 | if (isBatchUpdate != true) { |
572 | Clipperz.NotificationCenter.notify(aDirectLoginReference, 'directLoginAdded'); | 577 | Clipperz.NotificationCenter.notify(aDirectLoginReference, 'directLoginAdded'); |
573 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'directLogins', true); | 578 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'directLogins', true); |
574 | } | 579 | } |
575 | }, | 580 | }, |
576 | 581 | ||
577 | 'removeDirectLoginReference': function(aDirectLoginReference) { | 582 | 'removeDirectLoginReference': function(aDirectLoginReference) { |
578 | delete this.directLoginReferences()[aDirectLoginReference.reference()]; | 583 | delete this.directLoginReferences()[aDirectLoginReference.reference()]; |
579 | Clipperz.NotificationCenter.notify(aDirectLoginReference, 'directLoginRemoved'); | 584 | Clipperz.NotificationCenter.notify(aDirectLoginReference, 'directLoginRemoved'); |
580 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'directLogins', true); | 585 | Clipperz.NotificationCenter.notify(this, 'updatedSection', 'directLogins', true); |
581 | }, | 586 | }, |
582 | 587 | ||
583 | //......................................................................... | 588 | //......................................................................... |
584 | 589 | ||
585 | 'addDirectLogin': function(aDirectLogin) { | 590 | 'addDirectLogin': function(aDirectLogin) { |
586 | varnewDirectLoginReference; | 591 | varnewDirectLoginReference; |
587 | 592 | ||
588 | newDirectLoginReference = new Clipperz.PM.DataModel.DirectLoginReference({user:this, directLogin:aDirectLogin}) | 593 | newDirectLoginReference = new Clipperz.PM.DataModel.DirectLoginReference({user:this, directLogin:aDirectLogin}) |
589 | this.addDirectLoginReference(newDirectLoginReference); | 594 | this.addDirectLoginReference(newDirectLoginReference); |
590 | }, | 595 | }, |
591 | 596 | ||
592 | 'synchronizeDirectLogin': function(aDirectLogin) { | 597 | 'synchronizeDirectLogin': function(aDirectLogin) { |
593 | var directLoginReference; | 598 | var directLoginReference; |
594 | 599 | ||
595 | directLoginReference = this.directLoginReferences()[aDirectLogin.reference()]; | 600 | directLoginReference = this.directLoginReferences()[aDirectLogin.reference()]; |
596 | if (typeof(directLoginReference) != 'undefined') { | 601 | if (typeof(directLoginReference) != 'undefined') { |
597 | directLoginReference.synchronizeValues(aDirectLogin); | 602 | directLoginReference.synchronizeValues(aDirectLogin); |
598 | } else { | 603 | } else { |
599 | this.addDirectLogin(aDirectLogin); | 604 | this.addDirectLogin(aDirectLogin); |
600 | } | 605 | } |
601 | }, | 606 | }, |
602 | 607 | ||
603 | 'removeDirectLogin': function(aDirectLogin) { | 608 | 'removeDirectLogin': function(aDirectLogin) { |
604 | this.removeDirectLoginReference(aDirectLogin); | 609 | this.removeDirectLoginReference(aDirectLogin); |
605 | }, | 610 | }, |
606 | 611 | ||
607 | //------------------------------------------------------------------------- | 612 | //------------------------------------------------------------------------- |
608 | 613 | ||
609 | 'changeCredentials': function(aUsername, aPassphrase) { | 614 | 'changeCredentials': function(aUsername, aPassphrase) { |
610 | vardeferredResult; | 615 | vardeferredResult; |
611 | var result; | 616 | var result; |
612 | 617 | ||
613 | result = {}; | 618 | result = {}; |
614 | 619 | ||
615 | deferredResult = new MochiKit.Async.Deferred(); | 620 | deferredResult = new MochiKit.Async.Deferred(); |
616 | 621 | ||
617 | deferredResult.addCallback(MochiKit.Base.method(this.header(), 'loadAllSections')); | 622 | deferredResult.addCallback(MochiKit.Base.method(this.header(), 'loadAllSections')); |
618 | deferredResult.addCallback(MochiKit.Base.method(this.header(), 'updateAllSections')); | 623 | deferredResult.addCallback(MochiKit.Base.method(this.header(), 'updateAllSections')); |
619 | 624 | ||
620 | deferredResult.addCallback(MochiKit.Base.bind(function(aUsername, aPssphrase) { | 625 | deferredResult.addCallback(MochiKit.Base.bind(function(aUsername, aPssphrase) { |
621 | this.setUsername(aUsername); | 626 | this.setUsername(aUsername); |
622 | this.setPassphrase(aPassphrase); | 627 | this.setPassphrase(aPassphrase); |
623 | }, this), aUsername, aPassphrase) | 628 | }, this), aUsername, aPassphrase) |
624 | 629 | ||
625 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 1: " + res); return res;}); | 630 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 1: " + res); return res;}); |
626 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_encryptingData'); | 631 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_encryptingData'); |
627 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 2: " + res); return res;}); | 632 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 2: " + res); return res;}); |
628 | deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); | 633 | deferredResult.addCallback(MochiKit.Base.method(this, 'encryptedData')); |
629 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 3: " + res); return res;}); | 634 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 3: " + res); return res;}); |
630 | deferredResult.addCallback(function(aResult, anEncryptedData) { | 635 | deferredResult.addCallback(function(aResult, anEncryptedData) { |
631 | aResult['user'] = anEncryptedData; | 636 | aResult['user'] = anEncryptedData; |
632 | 637 | ||
633 | return aResult; | 638 | return aResult; |
634 | }, result); | 639 | }, result); |
635 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 4: " + res); return res;}); | 640 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 4: " + res); return res;}); |
636 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_creatingNewCredentials'); | 641 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_creatingNewCredentials'); |
637 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 5: " + res); return res;}); | 642 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 5: " + res); return res;}); |
638 | deferredResult.addCallback(function(aResult, anUser) { | 643 | deferredResult.addCallback(function(aResult, anUser) { |
639 | varnewConnection; | 644 | varnewConnection; |
640 | 645 | ||
641 | newConnection = new Clipperz.PM.Crypto.communicationProtocol.versions[Clipperz.PM.Crypto.communicationProtocol.currentVersion]({user:anUser}) | 646 | newConnection = new Clipperz.PM.Crypto.communicationProtocol.versions[Clipperz.PM.Crypto.communicationProtocol.currentVersion]({user:anUser}) |
642 | aResult['credentials'] = newConnection.serverSideUserCredentials(); | 647 | aResult['credentials'] = newConnection.serverSideUserCredentials(); |
643 | 648 | ||
644 | return aResult; | 649 | return aResult; |
645 | }, result, this); | 650 | }, result, this); |
646 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 6: " + res); return res;}); | 651 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 6: " + res); return res;}); |
647 | deferredResult.addCallback(MochiKit.Base.method(this.oneTimePasswordManager(), 'encryptedData')); | 652 | deferredResult.addCallback(MochiKit.Base.method(this.oneTimePasswordManager(), 'encryptedData')); |
648 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 7: " + res); return res;}); | 653 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 7: " + res); return res;}); |
649 | deferredResult.addCallback(function(aResult, anEncryptedData) { | 654 | deferredResult.addCallback(function(aResult, anEncryptedData) { |
650 | aResult['oneTimePasswords'] = anEncryptedData; | 655 | aResult['oneTimePasswords'] = anEncryptedData; |
651 | 656 | ||
652 | return aResult; | 657 | return aResult; |
653 | }, result); | 658 | }, result); |
654 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 8: " + res); return res;}); | 659 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 8: " + res); return res;}); |
655 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_sendingCredentials'); | 660 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_sendingCredentials'); |
656 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 9: " + res); return res;}); | 661 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 9: " + res); return res;}); |
657 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'upgradeUserCredentials'); | 662 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'upgradeUserCredentials'); |
658 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 10: " + res); return res;}); | 663 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 10: " + res); return res;}); |
659 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_done'); | 664 | deferredResult.addCallback(Clipperz.NotificationCenter.deferredNotification, this, 'updatedProgressState', 'changeCredentials_done'); |
660 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 11: " + res); return res;}); | 665 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.changeCredentials - 11: " + res); return res;}); |
661 | deferredResult.callback(); | 666 | deferredResult.callback(); |
662 | 667 | ||
663 | return deferredResult; | 668 | return deferredResult; |
664 | }, | 669 | }, |
665 | 670 | ||
666 | //------------------------------------------------------------------------- | 671 | //------------------------------------------------------------------------- |
667 | 672 | ||
668 | 'doLogout': function() { | 673 | 'doLogout': function() { |
669 | var deferredResult; | 674 | var deferredResult; |
670 | 675 | ||
671 | deferredResult = new MochiKit.Async.Deferred(); | 676 | deferredResult = new MochiKit.Async.Deferred(); |
672 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.doLogout - 1: " + res); return res;}); | 677 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.doLogout - 1: " + res); return res;}); |
673 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'logout')); | 678 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'logout')); |
674 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.doLogout - 2: " + res); return res;}); | 679 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.doLogout - 2: " + res); return res;}); |
675 | deferredResult.addCallback(MochiKit.Base.method(this, 'resetAllLocalData')); | 680 | deferredResult.addCallback(MochiKit.Base.method(this, 'resetAllLocalData')); |
676 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.doLogout - 3: " + res); return res;}); | 681 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.doLogout - 3: " + res); return res;}); |
677 | 682 | ||
678 | deferredResult.callback(); | 683 | deferredResult.callback(); |
679 | 684 | ||
680 | return deferredResult; | 685 | return deferredResult; |
681 | }, | 686 | }, |
682 | 687 | ||
683 | //------------------------------------------------------------------------- | 688 | //------------------------------------------------------------------------- |
684 | 689 | ||
685 | 'lock': function() { | 690 | 'lock': function() { |
686 | this.setPassphrase("") | 691 | this.setPassphrase("") |
687 | this.connection().logout(); | 692 | this.connection().logout(); |
688 | this.connection().resetSrpConnection(); | 693 | this.connection().resetSrpConnection(); |
689 | }, | 694 | }, |
690 | 695 | ||
691 | 'unlockWithPassphrase': function(aValue) { | 696 | 'unlockWithPassphrase': function(aValue) { |
692 | vardeferredResult; | 697 | vardeferredResult; |
693 | // varconnection; | 698 | // varconnection; |
694 | 699 | ||
695 | // connection = this.connection(); | 700 | // connection = this.connection(); |
696 | 701 | ||
697 | deferredResult = new MochiKit.Async.Deferred(); | 702 | deferredResult = new MochiKit.Async.Deferred(); |
698 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.unlockWithPassphrase 1: " + res); return res;}); | 703 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.unlockWithPassphrase 1: " + res); return res;}); |
699 | deferredResult.addCallback(MochiKit.Base.method(this, 'setPassphrase')); | 704 | deferredResult.addCallback(MochiKit.Base.method(this, 'setPassphrase')); |
700 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.unlockWithPassphrase 2: " + res); return res;}); | 705 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.unlockWithPassphrase 2: " + res); return res;}); |
701 | // deferredResult.addCallback(MochiKit.Base.method(connection, 'message'), 'echo', {'echo':"echo"}); | 706 | // deferredResult.addCallback(MochiKit.Base.method(connection, 'message'), 'echo', {'echo':"echo"}); |
702 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'reestablishConnection')); | 707 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'reestablishConnection')); |
703 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.unlockWithPassphrase 3: " + res); return res;}); | 708 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.unlockWithPassphrase 3: " + res); return res;}); |
704 | // deferredResult.addErrback(MochiKit.Base.method(this, 'setPassphrase', "")); | 709 | // deferredResult.addErrback(MochiKit.Base.method(this, 'setPassphrase', "")); |
705 | deferredResult.addErrback(MochiKit.Base.bind(function(anError) { | 710 | deferredResult.addErrback(MochiKit.Base.bind(function(anError) { |
706 | this.setPassphrase(""); | 711 | this.setPassphrase(""); |
707 | this.connection().resetSrpConnection(); | 712 | this.connection().resetSrpConnection(); |
708 | 713 | ||
709 | return anError; | 714 | return anError; |
710 | }, this)); | 715 | }, this)); |
711 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.unlockWithPassphrase 4: " + res); return res;}); | 716 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.unlockWithPassphrase 4: " + res); return res;}); |
712 | deferredResult.callback(aValue); | 717 | deferredResult.callback(aValue); |
713 | 718 | ||
714 | return deferredResult; | 719 | return deferredResult; |
715 | }, | 720 | }, |
716 | 721 | ||
717 | //------------------------------------------------------------------------- | 722 | //------------------------------------------------------------------------- |
718 | //------------------------------------------------------------------------- | 723 | //------------------------------------------------------------------------- |
719 | //------------------------------------------------------------------------- | 724 | //------------------------------------------------------------------------- |
720 | //------------------------------------------------------------------------- | 725 | //------------------------------------------------------------------------- |
721 | //------------------------------------------------------------------------- | 726 | //------------------------------------------------------------------------- |
722 | //------------------------------------------------------------------------- | 727 | //------------------------------------------------------------------------- |
723 | //------------------------------------------------------------------------- | 728 | //------------------------------------------------------------------------- |
724 | //------------------------------------------------------------------------- | 729 | //------------------------------------------------------------------------- |
725 | //------------------------------------------------------------------------- | 730 | //------------------------------------------------------------------------- |
726 | //------------------------------------------------------------------------- | 731 | //------------------------------------------------------------------------- |
727 | //------------------------------------------------------------------------- | 732 | //------------------------------------------------------------------------- |
728 | //------------------------------------------------------------------------- | 733 | //------------------------------------------------------------------------- |
729 | 734 | ||
730 | 'serverData': function() { | 735 | 'serverData': function() { |
731 | return this._serverData; | 736 | return this._serverData; |
732 | }, | 737 | }, |
733 | 738 | ||
734 | 'setServerData': function(aValue) { | 739 | 'setServerData': function(aValue) { |
735 | //MochiKit.Logging.logDebug(">>> User.setServerData"); | 740 | //MochiKit.Logging.logDebug(">>> User.setServerData"); |
736 | this._serverData = aValue; | 741 | this._serverData = aValue; |
737 | 742 | ||
738 | if (typeof(aValue.maxNumberOfRecords) != 'undefined') { | 743 | if (typeof(aValue.maxNumberOfRecords) != 'undefined') { |
739 | this.setMaxNumberOfRecords(aValue.maxNumberOfRecords); | 744 | this.setMaxNumberOfRecords(aValue.maxNumberOfRecords); |
740 | } | 745 | } |
741 | //MochiKit.Logging.logDebug("<<< User.setServerData"); | 746 | //MochiKit.Logging.logDebug("<<< User.setServerData"); |
742 | }, | 747 | }, |
743 | 748 | ||
744 | //------------------------------------------------------------------------- | 749 | //------------------------------------------------------------------------- |
745 | 750 | ||
746 | 'isLoadingUserDetails': function() { | 751 | 'isLoadingUserDetails': function() { |
747 | return this._isLoadingUserDetails; | 752 | return this._isLoadingUserDetails; |
748 | }, | 753 | }, |
749 | 754 | ||
750 | 'setIsLoadingUserDetails': function(aValue) { | 755 | 'setIsLoadingUserDetails': function(aValue) { |
751 | this._isLoadingUserDetails = aValue; | 756 | this._isLoadingUserDetails = aValue; |
752 | }, | 757 | }, |
753 | 758 | ||
754 | //------------------------------------------------------------------------- | 759 | //------------------------------------------------------------------------- |
755 | 760 | ||
756 | 'loadingUserDetailsPendingQueue': function() { | 761 | 'loadingUserDetailsPendingQueue': function() { |
757 | return this._loadingUserDetailsPendingQueue; | 762 | return this._loadingUserDetailsPendingQueue; |
758 | }, | 763 | }, |
759 | 764 | ||
760 | 'flushLoadingUserDetailsPendingQueue': function() { | 765 | 'flushLoadingUserDetailsPendingQueue': function() { |
761 | var queue; | 766 | var queue; |
762 | 767 | ||
763 | //MochiKit.Logging.logDebug(">>> User.flushLoadingUserDetailsPendingQueue"); | 768 | //MochiKit.Logging.logDebug(">>> User.flushLoadingUserDetailsPendingQueue"); |
764 | queue = this.loadingUserDetailsPendingQueue(); | 769 | queue = this.loadingUserDetailsPendingQueue(); |
765 | 770 | ||
766 | while(queue.length > 0) { | 771 | while(queue.length > 0) { |
767 | //MochiKit.Logging.logDebug("--- User.flushLoadingUserDetailsPendingQueue - pop"); | 772 | //MochiKit.Logging.logDebug("--- User.flushLoadingUserDetailsPendingQueue - pop"); |
768 | queue.pop().callback(); | 773 | queue.pop().callback(); |
769 | } | 774 | } |
770 | //MochiKit.Logging.logDebug("<<< User.flushLoadingUserDetailsPendingQueue"); | 775 | //MochiKit.Logging.logDebug("<<< User.flushLoadingUserDetailsPendingQueue"); |
771 | }, | 776 | }, |
772 | 777 | ||
773 | //------------------------------------------------------------------------- | 778 | //------------------------------------------------------------------------- |
774 | 779 | ||
775 | 'getUserDetails': function() { | 780 | 'getUserDetails': function() { |
776 | var deferredResult; | 781 | var deferredResult; |
777 | 782 | ||
778 | //MochiKit.Logging.logDebug(">>> User.getUserDetails"); | 783 | //MochiKit.Logging.logDebug(">>> User.getUserDetails"); |
779 | deferredResult = new MochiKit.Async.Deferred(); | 784 | deferredResult = new MochiKit.Async.Deferred(); |
780 | if ((this.serverData() == null) && (this.isLoadingUserDetails() == false)) { | 785 | if ((this.serverData() == null) && (this.isLoadingUserDetails() == false)) { |
781 | deferredResult.addCallback(MochiKit.Base.method(this, 'setIsLoadingUserDetails', true)); | 786 | deferredResult.addCallback(MochiKit.Base.method(this, 'setIsLoadingUserDetails', true)); |
782 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'getUserDetails'); | 787 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'getUserDetails'); |
783 | deferredResult.addCallback(MochiKit.Base.method(this, 'setServerData')); | 788 | deferredResult.addCallback(MochiKit.Base.method(this, 'setServerData')); |
784 | deferredResult.addCallback(MochiKit.Base.method(this, 'flushLoadingUserDetailsPendingQueue')); | 789 | deferredResult.addCallback(MochiKit.Base.method(this, 'flushLoadingUserDetailsPendingQueue')); |
785 | deferredResult.addCallback(MochiKit.Base.method(this, 'setIsLoadingUserDetails', false)); | 790 | deferredResult.addCallback(MochiKit.Base.method(this, 'setIsLoadingUserDetails', false)); |
786 | } | 791 | } |
787 | 792 | ||
788 | deferredResult.addCallback(MochiKit.Base.method(this, 'serverData')); | 793 | deferredResult.addCallback(MochiKit.Base.method(this, 'serverData')); |
789 | 794 | ||
790 | if (this.isLoadingUserDetails() == false) { | 795 | if (this.isLoadingUserDetails() == false) { |
791 | deferredResult.callback(); | 796 | deferredResult.callback(); |
792 | } else { | 797 | } else { |
793 | this.loadingUserDetailsPendingQueue().push(deferredResult); | 798 | this.loadingUserDetailsPendingQueue().push(deferredResult); |
794 | } | 799 | } |
795 | //MochiKit.Logging.logDebug("<<< User.getUserDetails"); | 800 | //MochiKit.Logging.logDebug("<<< User.getUserDetails"); |
796 | 801 | ||
797 | return deferredResult; | 802 | return deferredResult; |
798 | }, | 803 | }, |
799 | 804 | ||
800 | //------------------------------------------------------------------------- | 805 | //------------------------------------------------------------------------- |
801 | 806 | ||
802 | 'loadRecords': function() { | 807 | 'loadRecords': function() { |
803 | return this.header().loadRecords(); | 808 | return this.header().loadRecords(); |
804 | }, | 809 | }, |
805 | 810 | ||
806 | 'loadDirectLogins': function() { | 811 | 'loadDirectLogins': function() { |
807 | return this.header().loadDirectLogins(); | 812 | return this.header().loadDirectLogins(); |
808 | }, | 813 | }, |
809 | 814 | ||
810 | 'loadPreferences': function() { | 815 | 'loadPreferences': function() { |
811 | return this.header().loadPreferences(); | 816 | return this.header().loadPreferences(); |
812 | }, | 817 | }, |
813 | 818 | ||
814 | 'loadOneTimePasswords': function() { | 819 | 'loadOneTimePasswords': function() { |
815 | return this.header().loadOneTimePasswords(); | 820 | return this.header().loadOneTimePasswords(); |
816 | }, | 821 | }, |
817 | 822 | ||
818 | //------------------------------------------------------------------------- | 823 | //------------------------------------------------------------------------- |
819 | 824 | ||
820 | 'loadLoginHistory': function() { | 825 | 'loadLoginHistory': function() { |
821 | var deferredResult; | 826 | var deferredResult; |
822 | 827 | ||
823 | deferredResult = new MochiKit.Async.Deferred(); | 828 | deferredResult = new MochiKit.Async.Deferred(); |
824 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'getLoginHistory'); | 829 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'message'), 'getLoginHistory'); |
825 | deferredResult.addCallback(function(aResult) { | 830 | deferredResult.addCallback(function(aResult) { |
826 | return aResult['result']; | 831 | return aResult['result']; |
827 | }); | 832 | }); |
828 | deferredResult.addCallback(MochiKit.Base.method(this, 'setLoginHistory')); | 833 | deferredResult.addCallback(MochiKit.Base.method(this, 'setLoginHistory')); |
829 | deferredResult.addCallback(MochiKit.Base.method(this, 'loginHistory')); | 834 | deferredResult.addCallback(MochiKit.Base.method(this, 'loginHistory')); |
830 | deferredResult.callback(); | 835 | deferredResult.callback(); |
831 | 836 | ||
832 | return deferredResult; | 837 | return deferredResult; |
833 | }, | 838 | }, |
834 | 839 | ||
835 | //------------------------------------------------------------------------- | 840 | //------------------------------------------------------------------------- |
836 | 841 | ||
837 | 'shouldDownloadOfflineCopy': function() { | 842 | 'shouldDownloadOfflineCopy': function() { |
838 | return this._shouldDownloadOfflineCopy; | 843 | return this._shouldDownloadOfflineCopy; |
839 | }, | 844 | }, |
840 | 845 | ||
841 | 'setShouldDownloadOfflineCopy': function(aValue) { | 846 | 'setShouldDownloadOfflineCopy': function(aValue) { |
842 | this._shouldDownloadOfflineCopy = aValue; | 847 | this._shouldDownloadOfflineCopy = aValue; |
843 | }, | 848 | }, |
844 | 849 | ||
845 | //------------------------------------------------------------------------- | 850 | //------------------------------------------------------------------------- |
846 | 851 | ||
847 | 'loginInfo': function() { | 852 | 'loginInfo': function() { |
848 | return this._loginInfo; | 853 | return this._loginInfo; |
849 | }, | 854 | }, |
850 | 855 | ||
851 | 'setLoginInfo': function(aValue) { | 856 | 'setLoginInfo': function(aValue) { |
852 | this._loginInfo = aValue; | 857 | this._loginInfo = aValue; |
853 | //MochiKit.Logging.logDebug("### LoginInfo: " + Clipperz.Base.serializeJSON(aValue)); | 858 | //MochiKit.Logging.logDebug("### LoginInfo: " + Clipperz.Base.serializeJSON(aValue)); |
854 | }, | 859 | }, |
855 | 860 | ||
856 | //------------------------------------------------------------------------- | 861 | //------------------------------------------------------------------------- |
857 | 862 | ||
858 | 'loginHistory': function() { | 863 | 'loginHistory': function() { |
859 | return this._loginHistory; | 864 | return this._loginHistory; |
860 | }, | 865 | }, |
861 | 866 | ||
862 | 'setLoginHistory': function(aValue) { | 867 | 'setLoginHistory': function(aValue) { |
863 | this._loginHistory = aValue; | 868 | this._loginHistory = aValue; |
864 | }, | 869 | }, |
865 | /* | 870 | /* |
866 | 'loginInfoWithOneTimePasswordReference': function(aOneTimePasswordReference) { | 871 | 'loginInfoWithOneTimePasswordReference': function(aOneTimePasswordReference) { |
867 | var result; | 872 | var result; |
868 | var i,c; | 873 | var i,c; |
869 | 874 | ||
870 | result = null; | 875 | result = null; |
871 | c = this.loginHistory().length; | 876 | c = this.loginHistory().length; |
872 | for (i=0; (i<c) && (result == null); i++) { | 877 | for (i=0; (i<c) && (result == null); i++) { |
873 | var currentLoginInfo; | 878 | var currentLoginInfo; |
874 | 879 | ||
875 | currentLoginInfo = this.loginHistory()[i]; | 880 | currentLoginInfo = this.loginHistory()[i]; |
876 | if (currentLoginInfo['oneTimePasswordReference'] == aOneTimePasswordReference) { | 881 | if (currentLoginInfo['oneTimePasswordReference'] == aOneTimePasswordReference) { |
877 | result = currentLoginInfo; | 882 | result = currentLoginInfo; |
878 | } | 883 | } |
879 | } | 884 | } |
880 | 885 | ||
881 | return result; | 886 | return result; |
882 | }, | 887 | }, |
883 | */ | 888 | */ |
884 | //------------------------------------------------------------------------- | 889 | //------------------------------------------------------------------------- |
885 | 890 | ||
886 | 'lock': function() { | 891 | 'lock': function() { |
887 | return this._lock; | 892 | return this._lock; |
888 | }, | 893 | }, |
889 | 894 | ||
890 | 'setLock': function(aValue) { | 895 | 'setLock': function(aValue) { |
891 | //MochiKit.Logging.logDebug("=== User.setLock: " + aValue); | 896 | //MochiKit.Logging.logDebug("=== User.setLock: " + aValue); |
892 | this._lock = aValue; | 897 | this._lock = aValue; |
893 | }, | 898 | }, |
894 | 899 | ||
895 | //------------------------------------------------------------------------- | 900 | //------------------------------------------------------------------------- |
896 | __syntaxFix__: "syntax fix" | 901 | __syntaxFix__: "syntax fix" |
897 | 902 | ||
898 | }); | 903 | }); |
899 | 904 | ||
900 | 905 | ||
901 | Clipperz.PM.DataModel.User.exception = { | 906 | Clipperz.PM.DataModel.User.exception = { |
902 | LoginFailed: new MochiKit.Base.NamedError("Clipperz.PM.DataModel.User.exception.LoginFailed") | 907 | LoginFailed: new MochiKit.Base.NamedError("Clipperz.PM.DataModel.User.exception.LoginFailed") |
903 | }; | 908 | }; |
904 | 909 | ||