summaryrefslogtreecommitdiff
path: root/frontend/beta/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js
Unidiff
Diffstat (limited to 'frontend/beta/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js22
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/beta/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js b/frontend/beta/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js
index d5336be..1a5caff 100644
--- a/frontend/beta/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js
+++ b/frontend/beta/js/Clipperz/PM/Proxy/Proxy.Offline.DataStore.js
@@ -1,214 +1,212 @@
1/* 1/*
2 2
3Copyright 2008-2011 Clipperz Srl 3Copyright 2008-2013 Clipperz Srl
4 4
5This file is part of Clipperz Community Edition. 5This file is part of Clipperz, the online password manager.
6Clipperz Community Edition is an online password manager.
7For further information about its features and functionalities please 6For further information about its features and functionalities please
8refer to http://www.clipperz.com. 7refer 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
26try { if (typeof(Clipperz.PM.Proxy.Offline) == 'undefined') { throw ""; }} catch (e) { 24try { if (typeof(Clipperz.PM.Proxy.Offline) == 'undefined') { throw ""; }} catch (e) {
27 throw "Clipperz.PM.Proxy.Offline.DataStore depends on Clipperz.PM.Proxy.Offline!"; 25 throw "Clipperz.PM.Proxy.Offline.DataStore depends on Clipperz.PM.Proxy.Offline!";
28} 26}
29 27
30//============================================================================= 28//=============================================================================
31 29
32Clipperz.PM.Proxy.Offline.DataStore = function(args) { 30Clipperz.PM.Proxy.Offline.DataStore = function(args) {
33 args = args || {}; 31 args = args || {};
34 32
35 this._data = args.data || (typeof(_clipperz_dump_data_) != 'undefined' ? _clipperz_dump_data_ : null); 33 this._data = args.data || (typeof(_clipperz_dump_data_) != 'undefined' ? _clipperz_dump_data_ : null);
36 this._isReadOnly = (typeof(args.readOnly) == 'undefined' ? true : args.readOnly); 34 this._isReadOnly = (typeof(args.readOnly) == 'undefined' ? true : args.readOnly);
37 this._shouldPayTolls = args.shouldPayTolls || false; 35 this._shouldPayTolls = args.shouldPayTolls || false;
38 36
39 this._tolls = {}; 37 this._tolls = {};
40 this._connections = {}; 38 this._connections = {};
41 39
42 this._b = null; 40 this._b = null;
43 this._B = null; 41 this._B = null;
44 this._A = null; 42 this._A = null;
45 this._userData = null; 43 this._userData = null;
46 44
47 return this; 45 return this;
48} 46}
49 47
50//Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, { 48//Clipperz.Base.extend(Clipperz.PM.Proxy.Offline.DataStore, Object, {
51Clipperz.PM.Proxy.Offline.DataStore.prototype = MochiKit.Base.update(null, { 49Clipperz.PM.Proxy.Offline.DataStore.prototype = MochiKit.Base.update(null, {
52 50
53 //------------------------------------------------------------------------- 51 //-------------------------------------------------------------------------
54 52
55 'isReadOnly': function () { 53 'isReadOnly': function () {
56 return this._isReadOnly; 54 return this._isReadOnly;
57 }, 55 },
58 56
59 //------------------------------------------------------------------------- 57 //-------------------------------------------------------------------------
60 58
61 'shouldPayTolls': function() { 59 'shouldPayTolls': function() {
62 return this._shouldPayTolls; 60 return this._shouldPayTolls;
63 }, 61 },
64 62
65 //------------------------------------------------------------------------- 63 //-------------------------------------------------------------------------
66 64
67 'data': function () { 65 'data': function () {
68 return this._data; 66 return this._data;
69 }, 67 },
70 68
71 //------------------------------------------------------------------------- 69 //-------------------------------------------------------------------------
72 70
73 'tolls': function () { 71 'tolls': function () {
74 return this._tolls; 72 return this._tolls;
75 }, 73 },
76 74
77 //------------------------------------------------------------------------- 75 //-------------------------------------------------------------------------
78 76
79 'connections': function () { 77 'connections': function () {
80 return this._connections; 78 return this._connections;
81 }, 79 },
82 80
83 //========================================================================= 81 //=========================================================================
84 82
85 'resetData': function() { 83 'resetData': function() {
86 this._data = { 84 this._data = {
87 'users': { 85 'users': {
88 'catchAllUser': { 86 'catchAllUser': {
89 __masterkey_test_value__: 'masterkey', 87 __masterkey_test_value__: 'masterkey',
90 s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00', 88 s: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00',
91 v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00' 89 v: '112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00'
92 } 90 }
93 } 91 }
94 }; 92 };
95 }, 93 },
96 94
97 //------------------------------------------------------------------------- 95 //-------------------------------------------------------------------------
98 96
99 'setupWithEncryptedData': function(someData) { 97 'setupWithEncryptedData': function(someData) {
100 this._data = Clipperz.Base.deepClone(someData); 98 this._data = Clipperz.Base.deepClone(someData);
101 }, 99 },
102 100
103 //------------------------------------------------------------------------- 101 //-------------------------------------------------------------------------
104 102
105 'setupWithData': function(someData) { 103 'setupWithData': function(someData) {
106 var deferredResult; 104 var deferredResult;
107 var resultData; 105 var resultData;
108 var i, c; 106 var i, c;
109 107
110//Clipperz.log(">>> Proxy.Test.setupWithData"); 108//Clipperz.log(">>> Proxy.Test.setupWithData");
111 resultData = this._data; 109 resultData = this._data;
112 110
113 deferredResult = new MochiKit.Async.Deferred(); 111 deferredResult = new MochiKit.Async.Deferred();
114 c = someData['users'].length; 112 c = someData['users'].length;
115 113
116 for (i=0; i<c; i++) { 114 for (i=0; i<c; i++) {
117 varnewConnection; 115 varnewConnection;
118 varrecordConfiguration; 116 varrecordConfiguration;
119 117
120 deferredResult.addCallback(MochiKit.Base.method(this, 'userSerializedEncryptedData', someData['users'][i])); 118 deferredResult.addCallback(MochiKit.Base.method(this, 'userSerializedEncryptedData', someData['users'][i]));
121 deferredResult.addCallback(MochiKit.Base.bind(function(aUserSerializationContext) { 119 deferredResult.addCallback(MochiKit.Base.bind(function(aUserSerializationContext) {
122//console.log("SERIALIZED USER", aUserSerializationContext); 120//console.log("SERIALIZED USER", aUserSerializationContext);
123 resultData['users'][aUserSerializationContext['credentials']['C']] = { 121 resultData['users'][aUserSerializationContext['credentials']['C']] = {
124 's': aUserSerializationContext['credentials']['s'], 122 's': aUserSerializationContext['credentials']['s'],
125 'v': aUserSerializationContext['credentials']['v'], 123 'v': aUserSerializationContext['credentials']['v'],
126 'version': aUserSerializationContext['data']['connectionVersion'], 124 'version': aUserSerializationContext['data']['connectionVersion'],
127 'userDetails': aUserSerializationContext['encryptedData']['user']['header'], 125 'userDetails': aUserSerializationContext['encryptedData']['user']['header'],
128 'userDetailsVersion':aUserSerializationContext['encryptedData']['user']['version'], 126 'userDetailsVersion':aUserSerializationContext['encryptedData']['user']['version'],
129 'statistics': aUserSerializationContext['encryptedData']['user']['statistics'], 127 'statistics': aUserSerializationContext['encryptedData']['user']['statistics'],
130 'lock': aUserSerializationContext['encryptedData']['user']['lock'], 128 'lock': aUserSerializationContext['encryptedData']['user']['lock'],
131 'records': this.rearrangeRecordsData(aUserSerializationContext['encryptedData']['records']) 129 'records': this.rearrangeRecordsData(aUserSerializationContext['encryptedData']['records'])
132 } 130 }
133 }, this)); 131 }, this));
134 } 132 }
135 133
136 deferredResult.addCallback(MochiKit.Base.bind(function() { 134 deferredResult.addCallback(MochiKit.Base.bind(function() {
137//console.log("this._data", resultData); 135//console.log("this._data", resultData);
138 this._data = resultData; 136 this._data = resultData;
139 }, this)); 137 }, this));
140 138
141 deferredResult.callback(); 139 deferredResult.callback();
142//Clipperz.log("<<< Proxy.Test.setupWithData"); 140//Clipperz.log("<<< Proxy.Test.setupWithData");
143 141
144 return deferredResult; 142 return deferredResult;
145 }, 143 },
146 144
147 //========================================================================= 145 //=========================================================================
148 146
149 'b': function() { 147 'b': function() {
150 return this._b; 148 return this._b;
151 }, 149 },
152 150
153 'set_b': function(aValue) { 151 'set_b': function(aValue) {
154 this._b = aValue; 152 this._b = aValue;
155 }, 153 },
156 154
157 //------------------------------------------------------------------------- 155 //-------------------------------------------------------------------------
158 156
159 'B': function() { 157 'B': function() {
160 return this._B; 158 return this._B;
161 }, 159 },
162 160
163 'set_B': function(aValue) { 161 'set_B': function(aValue) {
164 this._B = aValue; 162 this._B = aValue;
165 }, 163 },
166 164
167 //------------------------------------------------------------------------- 165 //-------------------------------------------------------------------------
168 166
169 'A': function() { 167 'A': function() {
170 return this._A; 168 return this._A;
171 }, 169 },
172 170
173 'set_A': function(aValue) { 171 'set_A': function(aValue) {
174 this._A = aValue; 172 this._A = aValue;
175 }, 173 },
176 174
177 //------------------------------------------------------------------------- 175 //-------------------------------------------------------------------------
178 176
179 'userData': function() { 177 'userData': function() {
180 return this._userData; 178 return this._userData;
181 }, 179 },
182 180
183 'setUserData': function(aValue) { 181 'setUserData': function(aValue) {
184 this._userData = aValue; 182 this._userData = aValue;
185 }, 183 },
186 184
187 //========================================================================= 185 //=========================================================================
188 186
189 'getTollForRequestType': function (aRequestType) { 187 'getTollForRequestType': function (aRequestType) {
190 varresult; 188 varresult;
191 vartargetValue; 189 vartargetValue;
192 var cost; 190 var cost;
193 191
194 targetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2); 192 targetValue = Clipperz.Crypto.PRNG.defaultRandomGenerator().getRandomBytes(32).toHexString().substring(2);
195 switch (aRequestType) { 193 switch (aRequestType) {
196 case 'REGISTER': 194 case 'REGISTER':
197 cost = 5; 195 cost = 5;
198 break; 196 break;
199 case 'CONNECT': 197 case 'CONNECT':
200 cost = 5; 198 cost = 5;
201 break; 199 break;
202 case 'MESSAGE': 200 case 'MESSAGE':
203 cost = 2; 201 cost = 2;
204 break; 202 break;
205 } 203 }
206 204
207 result = { 205 result = {
208 requestType: aRequestType, 206 requestType: aRequestType,
209 targetValue: targetValue, 207 targetValue: targetValue,
210 cost: cost 208 cost: cost
211 } 209 }
212 210
213 if (this.shouldPayTolls()) { 211 if (this.shouldPayTolls()) {
214 this.tolls()[targetValue] = result; 212 this.tolls()[targetValue] = result;