author | Giulio Cesare Solaroli <giulio.cesare@clipperz.com> | 2011-10-06 00:36:10 (UTC) |
---|---|---|
committer | Giulio Cesare Solaroli <giulio.cesare@clipperz.com> | 2011-10-06 00:36:10 (UTC) |
commit | 6ba274c79e60e417132b260bd0117c5a68121387 (patch) (unidiff) | |
tree | 57c1f95d0fbf9b80312c5c6b6f4a4f951e31c770 /frontend/gamma/js/Clipperz/PM/DataModel | |
parent | 13ebf1b1987a1566d081ff1ba89b4dca197b7d2e (diff) | |
download | clipperz-6ba274c79e60e417132b260bd0117c5a68121387.zip clipperz-6ba274c79e60e417132b260bd0117c5a68121387.tar.gz clipperz-6ba274c79e60e417132b260bd0117c5a68121387.tar.bz2 |
Fixed the copyright headers
Diffstat (limited to 'frontend/gamma/js/Clipperz/PM/DataModel') (more/less context) (ignore whitespace changes)
14 files changed, 84 insertions, 126 deletions
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js index 1d38509..8f8696d 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLogin.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | Clipperz.Base.module('Clipperz.PM.DataModel'); | 26 | Clipperz.Base.module('Clipperz.PM.DataModel'); |
30 | 27 | ||
31 | Clipperz.PM.DataModel.DirectLogin = function(args) { | 28 | Clipperz.PM.DataModel.DirectLogin = function(args) { |
32 | args = args || {}; | 29 | args = args || {}; |
33 | 30 | ||
34 | Clipperz.PM.DataModel.DirectLogin.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.DataModel.DirectLogin.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._reference =args.reference | 33 | this._reference =args.reference |
37 | ||Clipperz.PM.Crypto.randomKey(); | 34 | ||Clipperz.PM.Crypto.randomKey(); |
38 | this._record =args.record | 35 | this._record =args.record |
39 | ||Clipperz.Base.exception.raise('MandatoryParameter'); | 36 | ||Clipperz.Base.exception.raise('MandatoryParameter'); |
40 | 37 | ||
41 | this._retrieveIndexDataFunction = args.retrieveIndexDataFunction | 38 | this._retrieveIndexDataFunction = args.retrieveIndexDataFunction |
42 | ||this.record().retrieveDirectLoginIndexDataFunction() | 39 | ||this.record().retrieveDirectLoginIndexDataFunction() |
43 | ||Clipperz.Base.exception.raise('MandatoryParameter'); | 40 | ||Clipperz.Base.exception.raise('MandatoryParameter'); |
44 | this._setIndexDataFunction = args.setIndexDataFunction | 41 | this._setIndexDataFunction = args.setIndexDataFunction |
45 | ||this.record().setDirectLoginIndexDataFunction() | 42 | ||this.record().setDirectLoginIndexDataFunction() |
46 | ||Clipperz.Base.exception.raise('MandatoryParameter'); | 43 | ||Clipperz.Base.exception.raise('MandatoryParameter'); |
47 | this._removeIndexDataFunction =args.removeIndexDataFunction | 44 | this._removeIndexDataFunction =args.removeIndexDataFunction |
48 | ||this.record().removeDirectLoginIndexDataFunction() | 45 | ||this.record().removeDirectLoginIndexDataFunction() |
49 | ||Clipperz.Base.exception.raise('MandatoryParameter'); | 46 | ||Clipperz.Base.exception.raise('MandatoryParameter'); |
50 | 47 | ||
51 | this._inputs = null; | 48 | this._inputs = null; |
52 | this._bindings = null; | 49 | this._bindings = null; |
53 | this._formValues = null; | 50 | this._formValues = null; |
54 | 51 | ||
55 | // this._inputsDeferredLock = new MochiKit.Async.DeferredLock(); | 52 | // this._inputsDeferredLock = new MochiKit.Async.DeferredLock(); |
56 | // this._bindingsDeferredLock = new MochiKit.Async.DeferredLock(); | 53 | // this._bindingsDeferredLock = new MochiKit.Async.DeferredLock(); |
57 | // this._formValuesDeferredLock = new MochiKit.Async.DeferredLock(); | 54 | // this._formValuesDeferredLock = new MochiKit.Async.DeferredLock(); |
58 | 55 | ||
59 | this._transientState = null; | 56 | this._transientState = null; |
60 | 57 | ||
61 | this._isBrandNew = MochiKit.Base.isUndefinedOrNull(args.reference); | 58 | this._isBrandNew = MochiKit.Base.isUndefinedOrNull(args.reference); |
62 | 59 | ||
63 | this.record().addDirectLogin(this); | 60 | this.record().addDirectLogin(this); |
64 | 61 | ||
65 | return this; | 62 | return this; |
66 | } | 63 | } |
67 | 64 | ||
68 | Clipperz.Base.extend(Clipperz.PM.DataModel.DirectLogin, Object, { | 65 | Clipperz.Base.extend(Clipperz.PM.DataModel.DirectLogin, Object, { |
69 | 66 | ||
70 | 'toString': function() { | 67 | 'toString': function() { |
71 | return "DirectLogin (" + this.reference() + ")"; | 68 | return "DirectLogin (" + this.reference() + ")"; |
72 | }, | 69 | }, |
73 | 70 | ||
74 | //========================================================================= | 71 | //========================================================================= |
75 | 72 | ||
76 | 'reference': function () { | 73 | 'reference': function () { |
77 | return this._reference; | 74 | return this._reference; |
78 | }, | 75 | }, |
79 | 76 | ||
80 | //------------------------------------------------------------------------- | 77 | //------------------------------------------------------------------------- |
81 | 78 | ||
82 | 'record': function () { | 79 | 'record': function () { |
83 | return this._record; | 80 | return this._record; |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //========================================================================= | 83 | //========================================================================= |
87 | 84 | ||
88 | 'isBrandNew': function () { | 85 | 'isBrandNew': function () { |
89 | return this._isBrandNew; | 86 | return this._isBrandNew; |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //========================================================================= | 89 | //========================================================================= |
93 | 90 | ||
94 | 'removeIndexDataFunction': function () { | 91 | 'removeIndexDataFunction': function () { |
95 | return this._removeIndexDataFunction; | 92 | return this._removeIndexDataFunction; |
96 | }, | 93 | }, |
97 | 94 | ||
98 | 'remove': function () { | 95 | 'remove': function () { |
99 | return Clipperz.Async.callbacks("DirectLogin.remove", [ | 96 | return Clipperz.Async.callbacks("DirectLogin.remove", [ |
100 | MochiKit.Base.partial(this.removeIndexDataFunction(), this.reference()), | 97 | MochiKit.Base.partial(this.removeIndexDataFunction(), this.reference()), |
101 | MochiKit.Base.method(this.record(), 'removeDirectLogin', this) | 98 | MochiKit.Base.method(this.record(), 'removeDirectLogin', this) |
102 | ], {trace:false}); | 99 | ], {trace:false}); |
103 | }, | 100 | }, |
104 | 101 | ||
105 | //========================================================================= | 102 | //========================================================================= |
106 | /* | 103 | /* |
107 | 'inputsDeferredLock': function () { | 104 | 'inputsDeferredLock': function () { |
108 | return this._inputsDeferredLock; | 105 | return this._inputsDeferredLock; |
109 | }, | 106 | }, |
110 | 107 | ||
111 | 'bindingsDeferredLock': function () { | 108 | 'bindingsDeferredLock': function () { |
112 | return this._bindingsDeferredLock; | 109 | return this._bindingsDeferredLock; |
113 | }, | 110 | }, |
114 | 111 | ||
115 | 'formValuesDeferredLock': function () { | 112 | 'formValuesDeferredLock': function () { |
116 | return this._formValuesDeferredLock; | 113 | return this._formValuesDeferredLock; |
117 | }, | 114 | }, |
118 | */ | 115 | */ |
119 | //========================================================================= | 116 | //========================================================================= |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js index fd55c63..4377853 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginBinding.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | 30 | ||
34 | //############################################################################# | 31 | //############################################################################# |
35 | 32 | ||
36 | Clipperz.PM.DataModel.DirectLoginBinding = function(aDirectLogin, args) { | 33 | Clipperz.PM.DataModel.DirectLoginBinding = function(aDirectLogin, args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | 35 | ||
39 | this._directLogin = aDirectLogin|| Clipperz.Base.exception.raise('MandatoryParameter'); | 36 | this._directLogin = aDirectLogin|| Clipperz.Base.exception.raise('MandatoryParameter'); |
40 | 37 | ||
41 | this._key = args.key|| Clipperz.Base.exception.raise('MandatoryParameter'); | 38 | this._key = args.key|| Clipperz.Base.exception.raise('MandatoryParameter'); |
42 | this._fieldKey = args.field || /* this.directLogin().fieldWithName(args.fieldName).reference() || */null; | 39 | this._fieldKey = args.field || /* this.directLogin().fieldWithName(args.fieldName).reference() || */null; |
43 | 40 | ||
44 | return this; | 41 | return this; |
45 | } | 42 | } |
46 | 43 | ||
47 | Clipperz.PM.DataModel.DirectLoginBinding.prototype = MochiKit.Base.update(null, { | 44 | Clipperz.PM.DataModel.DirectLoginBinding.prototype = MochiKit.Base.update(null, { |
48 | 45 | ||
49 | 'toString': function() { | 46 | 'toString': function() { |
50 | return "DirectLoginBinding (" + this.key() + ", " + this.fieldKey() + ")"; | 47 | return "DirectLoginBinding (" + this.key() + ", " + this.fieldKey() + ")"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'directLogin': function () { | 52 | 'directLogin': function () { |
56 | return this._directLogin; | 53 | return this._directLogin; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'key': function() { | 58 | 'key': function() { |
62 | return this._key; | 59 | return this._key; |
63 | }, | 60 | }, |
64 | 61 | ||
65 | //------------------------------------------------------------------------- | 62 | //------------------------------------------------------------------------- |
66 | 63 | ||
67 | 'fieldKey': function() { | 64 | 'fieldKey': function() { |
68 | return this._fieldKey; | 65 | return this._fieldKey; |
69 | }, | 66 | }, |
70 | 67 | ||
71 | 'setFieldKey': function(aValue) { | 68 | 'setFieldKey': function(aValue) { |
72 | this._fieldKey = aValue; | 69 | this._fieldKey = aValue; |
73 | 70 | ||
74 | return this.directLogin().setValue('bindingData' + '.' + this.key(), aValue); | 71 | return this.directLogin().setValue('bindingData' + '.' + this.key(), aValue); |
75 | }, | 72 | }, |
76 | 73 | ||
77 | //'fieldName': function() { | 74 | //'fieldName': function() { |
78 | // return this._fieldName; | 75 | // return this._fieldName; |
79 | //}, | 76 | //}, |
80 | 77 | ||
81 | //------------------------------------------------------------------------- | 78 | //------------------------------------------------------------------------- |
82 | 79 | ||
83 | 'field': function() { | 80 | 'field': function() { |
84 | var deferredResult; | 81 | var deferredResult; |
85 | 82 | ||
86 | if (this.fieldKey() != null) { | 83 | if (this.fieldKey() != null) { |
87 | deferredResult = Clipperz.Async.callbacks("DirectLoginBinding.field [1]", [ | 84 | deferredResult = Clipperz.Async.callbacks("DirectLoginBinding.field [1]", [ |
88 | MochiKit.Base.method(this.directLogin().record(), 'fields'), | 85 | MochiKit.Base.method(this.directLogin().record(), 'fields'), |
89 | MochiKit.Base.itemgetter(this.fieldKey()) | 86 | MochiKit.Base.itemgetter(this.fieldKey()) |
90 | ], {trace:false}); | 87 | ], {trace:false}); |
91 | // } else if (this.fieldName() != null) { | 88 | // } else if (this.fieldName() != null) { |
92 | // WTF = TODO; | 89 | // WTF = TODO; |
93 | // result = this.directLogin().record().fieldWithName(this.fieldName()); | 90 | // result = this.directLogin().record().fieldWithName(this.fieldName()); |
94 | // | 91 | // |
95 | // this.setFieldKey(result.key()); | 92 | // this.setFieldKey(result.key()); |
96 | } else { | 93 | } else { |
97 | deferredResult = MochiKit.Async.succeed(null); | 94 | deferredResult = MochiKit.Async.succeed(null); |
98 | } | 95 | } |
99 | 96 | ||
100 | return deferredResult; | 97 | return deferredResult; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | 'setField': function (aField) { | 100 | 'setField': function (aField) { |
104 | this.setFieldKey(aField.reference()); | 101 | this.setFieldKey(aField.reference()); |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //------------------------------------------------------------------------- | 104 | //------------------------------------------------------------------------- |
108 | /* | 105 | /* |
109 | 'fieldValue': function () { | 106 | 'fieldValue': function () { |
110 | return Clipperz.Async.callbacks("DirectLoginBinding.fieldValue", [ | 107 | return Clipperz.Async.callbacks("DirectLoginBinding.fieldValue", [ |
111 | MochiKit.Base.method('field'), | 108 | MochiKit.Base.method('field'), |
112 | MochiKit.Base.methodcaller('value') | 109 | MochiKit.Base.methodcaller('value') |
113 | ], {trace:false}); | 110 | ], {trace:false}); |
114 | }, | 111 | }, |
115 | */ | 112 | */ |
116 | //------------------------------------------------------------------------- | 113 | //------------------------------------------------------------------------- |
117 | 114 | ||
118 | 'serializedData': function() { | 115 | 'serializedData': function() { |
119 | return this.fieldKey(); | 116 | return this.fieldKey(); |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js index 939ab4b..a461197 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginFormValue.js | |||
@@ -1,107 +1,104 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | 30 | ||
34 | //############################################################################# | 31 | //############################################################################# |
35 | 32 | ||
36 | Clipperz.PM.DataModel.DirectLoginFormValue = function(aDirectLogin, args) { | 33 | Clipperz.PM.DataModel.DirectLoginFormValue = function(aDirectLogin, args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | 35 | ||
39 | this._directLogin = aDirectLogin|| Clipperz.Base.exception.raise('MandatoryParameter'); | 36 | this._directLogin = aDirectLogin|| Clipperz.Base.exception.raise('MandatoryParameter'); |
40 | 37 | ||
41 | this._key = args.key || Clipperz.Base.exception.raise('MandatoryParameter'); | 38 | this._key = args.key || Clipperz.Base.exception.raise('MandatoryParameter'); |
42 | this._fieldOptions = args.fieldOptions|| Clipperz.Base.exception.raise('MandatoryParameter'); | 39 | this._fieldOptions = args.fieldOptions|| Clipperz.Base.exception.raise('MandatoryParameter'); |
43 | this._value = args.value || null; | 40 | this._value = args.value || null; |
44 | 41 | ||
45 | return this; | 42 | return this; |
46 | } | 43 | } |
47 | 44 | ||
48 | Clipperz.PM.DataModel.DirectLoginFormValue.prototype = MochiKit.Base.update(null, { | 45 | Clipperz.PM.DataModel.DirectLoginFormValue.prototype = MochiKit.Base.update(null, { |
49 | 46 | ||
50 | 'toString': function() { | 47 | 'toString': function() { |
51 | return "DirectLoginFormValue (" + this.key() + ", " + this.value() + ")"; | 48 | return "DirectLoginFormValue (" + this.key() + ", " + this.value() + ")"; |
52 | }, | 49 | }, |
53 | 50 | ||
54 | //------------------------------------------------------------------------- | 51 | //------------------------------------------------------------------------- |
55 | 52 | ||
56 | 'directLogin': function () { | 53 | 'directLogin': function () { |
57 | return this._directLogin; | 54 | return this._directLogin; |
58 | }, | 55 | }, |
59 | 56 | ||
60 | //------------------------------------------------------------------------- | 57 | //------------------------------------------------------------------------- |
61 | 58 | ||
62 | 'key': function() { | 59 | 'key': function() { |
63 | return this._key; | 60 | return this._key; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | //------------------------------------------------------------------------- | 63 | //------------------------------------------------------------------------- |
67 | 64 | ||
68 | 'fieldOptions': function() { | 65 | 'fieldOptions': function() { |
69 | return this._fieldOptions; | 66 | return this._fieldOptions; |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //------------------------------------------------------------------------- | 69 | //------------------------------------------------------------------------- |
73 | 70 | ||
74 | 'type': function () { | 71 | 'type': function () { |
75 | return this.fieldOptions()['type']; | 72 | return this.fieldOptions()['type']; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | 76 | ||
80 | 'value': function() { | 77 | 'value': function() { |
81 | varresult; | 78 | varresult; |
82 | 79 | ||
83 | result = this._value; | 80 | result = this._value; |
84 | 81 | ||
85 | // if ((result == null) && (this.type() == 'checkbox')) { | 82 | // if ((result == null) && (this.type() == 'checkbox')) { |
86 | // result = false; | 83 | // result = false; |
87 | // }; | 84 | // }; |
88 | 85 | ||
89 | return result; | 86 | return result; |
90 | }, | 87 | }, |
91 | 88 | ||
92 | 'setValue': function (aValue) { | 89 | 'setValue': function (aValue) { |
93 | //console.log("DirectLoginFormValue.setValue", aValue); | 90 | //console.log("DirectLoginFormValue.setValue", aValue); |
94 | this._value = aValue; | 91 | this._value = aValue; |
95 | return this.directLogin().setValue('formValues' + '.' + this.key(), aValue); | 92 | return this.directLogin().setValue('formValues' + '.' + this.key(), aValue); |
96 | }, | 93 | }, |
97 | 94 | ||
98 | //------------------------------------------------------------------------- | 95 | //------------------------------------------------------------------------- |
99 | /* | 96 | /* |
100 | 'serializedData': function() { | 97 | 'serializedData': function() { |
101 | return this.value(); | 98 | return this.value(); |
102 | }, | 99 | }, |
103 | */ | 100 | */ |
104 | //------------------------------------------------------------------------- | 101 | //------------------------------------------------------------------------- |
105 | __syntaxFix__: "syntax fix" | 102 | __syntaxFix__: "syntax fix" |
106 | }); | 103 | }); |
107 | 104 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js index 673d5ee..8188389 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/DirectLoginInput.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | //############################################################################# | 30 | //############################################################################# |
34 | 31 | ||
35 | Clipperz.PM.DataModel.DirectLoginInput = function(args) { | 32 | Clipperz.PM.DataModel.DirectLoginInput = function(args) { |
36 | this._args = args; | 33 | this._args = args; |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | Clipperz.PM.DataModel.DirectLoginInput.prototype = MochiKit.Base.update(null, { | 38 | Clipperz.PM.DataModel.DirectLoginInput.prototype = MochiKit.Base.update(null, { |
42 | 39 | ||
43 | 'args': function() { | 40 | 'args': function() { |
44 | return this._args; | 41 | return this._args; |
45 | }, | 42 | }, |
46 | 43 | ||
47 | //------------------------------------------------------------------------- | 44 | //------------------------------------------------------------------------- |
48 | 45 | ||
49 | 'name': function() { | 46 | 'name': function() { |
50 | return this.args()['name']; | 47 | return this.args()['name']; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'type': function() { | 52 | 'type': function() { |
56 | var result; | 53 | var result; |
57 | 54 | ||
58 | result = this.args()['type']; | 55 | result = this.args()['type']; |
59 | 56 | ||
60 | if (result != null) { | 57 | if (result != null) { |
61 | result = result.toLowerCase(); | 58 | result = result.toLowerCase(); |
62 | } | 59 | } |
63 | return result; | 60 | return result; |
64 | }, | 61 | }, |
65 | 62 | ||
66 | //------------------------------------------------------------------------- | 63 | //------------------------------------------------------------------------- |
67 | 64 | ||
68 | 'options': function() { | 65 | 'options': function() { |
69 | return this.args()['options']; | 66 | return this.args()['options']; |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //------------------------------------------------------------------------- | 69 | //------------------------------------------------------------------------- |
73 | 70 | ||
74 | 'value': function() { | 71 | 'value': function() { |
75 | return this.args()['value']; | 72 | return this.args()['value']; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | //------------------------------------------------------------------------- | 75 | //------------------------------------------------------------------------- |
79 | /* | 76 | /* |
80 | 'formConfiguration': function(someFormValues, someBindings, someFields) { | 77 | 'formConfiguration': function(someFormValues, someBindings, someFields) { |
81 | var result; | 78 | var result; |
82 | //console.log("### DirectLoginInput.formConfiguration", someFields); | 79 | //console.log("### DirectLoginInput.formConfiguration", someFields); |
83 | if (this.shouldSetValue()) { | 80 | if (this.shouldSetValue()) { |
84 | switch (this.type()) { | 81 | switch (this.type()) { |
85 | case 'select': | 82 | case 'select': |
86 | var currentValue; | 83 | var currentValue; |
87 | var options; | 84 | var options; |
88 | 85 | ||
89 | // currentValue = this.directLogin()._configuration['formValues'][this.name()]; | 86 | // currentValue = this.directLogin()._configuration['formValues'][this.name()]; |
90 | currentValue = someFormValues[this.name()]; | 87 | currentValue = someFormValues[this.name()]; |
91 | options = this.args()['options']; | 88 | options = this.args()['options']; |
92 | 89 | ||
93 | result = MochiKit.DOM.SELECT({name:this.name()}, | 90 | result = MochiKit.DOM.SELECT({name:this.name()}, |
94 | MochiKit.Base.map(function(anOption) { | 91 | MochiKit.Base.map(function(anOption) { |
95 | var options; | 92 | var options; |
96 | 93 | ||
97 | options = {value:anOption['value']}; | 94 | options = {value:anOption['value']}; |
98 | if (currentValue == anOption['value']) { | 95 | if (currentValue == anOption['value']) { |
99 | options.selected = true; | 96 | options.selected = true; |
100 | } | 97 | } |
101 | 98 | ||
102 | return MochiKit.DOM.OPTION(options, anOption['label']) | 99 | return MochiKit.DOM.OPTION(options, anOption['label']) |
103 | }, options) | 100 | }, options) |
104 | ) | 101 | ) |
105 | break; | 102 | break; |
106 | case 'checkbox': | 103 | case 'checkbox': |
107 | var options; | 104 | var options; |
108 | 105 | ||
109 | options = {type:'checkbox', name: this.name()}; | 106 | options = {type:'checkbox', name: this.name()}; |
110 | // if (this.directLogin()._configuration['formValues'][this.name()] == true) { | 107 | // if (this.directLogin()._configuration['formValues'][this.name()] == true) { |
111 | if (someFormValues[this.name()] == true) { | 108 | if (someFormValues[this.name()] == true) { |
112 | options['checked'] = true; | 109 | options['checked'] = true; |
113 | }; | 110 | }; |
114 | 111 | ||
115 | result = MochiKit.DOM.INPUT(options, null); | 112 | result = MochiKit.DOM.INPUT(options, null); |
116 | break; | 113 | break; |
117 | case 'radio': | 114 | case 'radio': |
118 | var currentName; | 115 | var currentName; |
119 | var currentValue; | 116 | var currentValue; |
120 | var options; | 117 | var options; |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js b/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js index 3408b08..cdeec8b 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/EncryptedRemoteObject.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.KeyValueObjectStore) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.KeyValueObjectStore) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.EncryptedRemoteObject depends on Clipperz.KeyValueObjectStore!"; | 27 | throw "Clipperz.PM.DataModel.EncryptedRemoteObject depends on Clipperz.KeyValueObjectStore!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
34 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
35 | 32 | ||
36 | Clipperz.PM.DataModel.EncryptedRemoteObject = function(args) { | 33 | Clipperz.PM.DataModel.EncryptedRemoteObject = function(args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | 35 | ||
39 | this._name = args.name || null; | 36 | this._name = args.name || null; |
40 | this._reference = args.reference || Clipperz.PM.Crypto.randomKey(); | 37 | this._reference = args.reference || Clipperz.PM.Crypto.randomKey(); |
41 | this._isBrandNew = ((args.reference == null) && (args.remoteData == null)); | 38 | this._isBrandNew = ((args.reference == null) && (args.remoteData == null)); |
42 | 39 | ||
43 | if ((this._isBrandNew == false) && (args['retrieveKeyFunction'] == null)) { | 40 | if ((this._isBrandNew == false) && (args['retrieveKeyFunction'] == null)) { |
44 | Clipperz.Base.exception.raise('MandatoryParameter'); | 41 | Clipperz.Base.exception.raise('MandatoryParameter'); |
45 | } else { | 42 | } else { |
46 | this._retrieveKeyFunction = args['retrieveKeyFunction']; | 43 | this._retrieveKeyFunction = args['retrieveKeyFunction']; |
47 | } | 44 | } |
48 | 45 | ||
49 | this._retrieveRemoteDataFunction = args.retrieveRemoteDataFunction|| null; | 46 | this._retrieveRemoteDataFunction = args.retrieveRemoteDataFunction|| null; |
50 | this._remoteData = args.remoteData || null; | 47 | this._remoteData = args.remoteData || null; |
51 | // this._remoteData = args.remoteData ? Clipperz.Base.deepClone(args.remoteData) : null; | 48 | // this._remoteData = args.remoteData ? Clipperz.Base.deepClone(args.remoteData) : null; |
52 | if ((!this._isBrandNew) && ((this._retrieveRemoteDataFunction == null) && (this._remoteData == null))) { | 49 | if ((!this._isBrandNew) && ((this._retrieveRemoteDataFunction == null) && (this._remoteData == null))) { |
53 | Clipperz.Base.exception.raise('MandatoryParameter'); | 50 | Clipperz.Base.exception.raise('MandatoryParameter'); |
54 | } | 51 | } |
55 | 52 | ||
56 | 53 | ||
57 | this._encryptedDataKeypath = args.encryptedDataKeypath || 'data'; //Clipperz.Base.exception.raise('MandatoryParameter'); | 54 | this._encryptedDataKeypath = args.encryptedDataKeypath || 'data'; //Clipperz.Base.exception.raise('MandatoryParameter'); |
58 | this._encryptedVersionKeypath = args.encryptedVersionKeypath || 'version';//Clipperz.Base.exception.raise('MandatoryParameter'); | 55 | this._encryptedVersionKeypath = args.encryptedVersionKeypath || 'version';//Clipperz.Base.exception.raise('MandatoryParameter'); |
59 | 56 | ||
60 | 57 | ||
61 | this._transientState = null; | 58 | this._transientState = null; |
62 | this._deferredLocks = {}; | 59 | this._deferredLocks = {}; |
63 | 60 | ||
64 | if (this._isBrandNew == true) { | 61 | if (this._isBrandNew == true) { |
65 | this._objectDataStore = new Clipperz.KeyValueObjectStore(/*{'name':'EncryptedRemoteObject.objectDataStore [1]'}*/); | 62 | this._objectDataStore = new Clipperz.KeyValueObjectStore(/*{'name':'EncryptedRemoteObject.objectDataStore [1]'}*/); |
66 | } else { | 63 | } else { |
67 | this._objectDataStore = null; | 64 | this._objectDataStore = null; |
68 | } | 65 | } |
69 | 66 | ||
70 | return this; | 67 | return this; |
71 | } | 68 | } |
72 | 69 | ||
73 | // | 70 | // |
74 | // Basic data workflow | 71 | // Basic data workflow |
75 | //======================= | 72 | //======================= |
76 | // | 73 | // |
77 | //getRemoteData | 74 | //getRemoteData |
78 | // unpackRemoteData | 75 | // unpackRemoteData |
79 | // getDecryptData [encryptedDataKeypath, encryptedVersionKeypath] | 76 | // getDecryptData [encryptedDataKeypath, encryptedVersionKeypath] |
80 | // unpackData | 77 | // unpackData |
81 | // | 78 | // |
82 | // | 79 | // |
83 | // ?? packData | 80 | // ?? packData |
84 | // ?? encryptDataWithKey | 81 | // ?? encryptDataWithKey |
85 | // ??packRemoteData [encryptedDataKeypath (?), encryptedVersionKeypath (?)] | 82 | // ??packRemoteData [encryptedDataKeypath (?), encryptedVersionKeypath (?)] |
86 | // | 83 | // |
87 | 84 | ||
88 | Clipperz.PM.DataModel.EncryptedRemoteObject.prototype = MochiKit.Base.update(null, { | 85 | Clipperz.PM.DataModel.EncryptedRemoteObject.prototype = MochiKit.Base.update(null, { |
89 | 86 | ||
90 | 'toString': function () { | 87 | 'toString': function () { |
91 | return "Clipperz.PM.DataModel.EncryptedRemoteObject" + (this.name() != null ? " - " + this.name() : ""); | 88 | return "Clipperz.PM.DataModel.EncryptedRemoteObject" + (this.name() != null ? " - " + this.name() : ""); |
92 | }, | 89 | }, |
93 | 90 | ||
94 | //------------------------------------------------------------------------- | 91 | //------------------------------------------------------------------------- |
95 | 92 | ||
96 | 'name': function () { | 93 | 'name': function () { |
97 | return this._name; | 94 | return this._name; |
98 | }, | 95 | }, |
99 | 96 | ||
100 | //------------------------------------------------------------------------- | 97 | //------------------------------------------------------------------------- |
101 | 98 | ||
102 | 'reference': function () { | 99 | 'reference': function () { |
103 | return this._reference; | 100 | return this._reference; |
104 | }, | 101 | }, |
105 | 102 | ||
106 | 'setReference': function (aValue) { | 103 | 'setReference': function (aValue) { |
107 | this._reference = aValue; | 104 | this._reference = aValue; |
108 | 105 | ||
109 | return this._reference; | 106 | return this._reference; |
110 | }, | 107 | }, |
111 | 108 | ||
112 | //------------------------------------------------------------------------- | 109 | //------------------------------------------------------------------------- |
113 | 110 | ||
114 | 'transientState': function () { | 111 | 'transientState': function () { |
115 | if (this._transientState == null) { | 112 | if (this._transientState == null) { |
116 | this._transientState = new Clipperz.KeyValueObjectStore(/*{'name':'EncryptedRemoteObject.transientState [2]'}*/); | 113 | this._transientState = new Clipperz.KeyValueObjectStore(/*{'name':'EncryptedRemoteObject.transientState [2]'}*/); |
117 | } | 114 | } |
118 | 115 | ||
119 | return this._transientState; | 116 | return this._transientState; |
120 | }, | 117 | }, |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js b/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js index 9f1c197..834e21b 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/OneTimePassword.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | 30 | ||
34 | //############################################################################# | 31 | //############################################################################# |
35 | 32 | ||
36 | Clipperz.PM.DataModel.OneTimePassword = function(args) { | 33 | Clipperz.PM.DataModel.OneTimePassword = function(args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | 35 | ||
39 | //this._user = args['user']; | 36 | //this._user = args['user']; |
40 | this._reference = args['reference']|| Clipperz.PM.Crypto.randomKey(); | 37 | this._reference = args['reference']|| Clipperz.PM.Crypto.randomKey(); |
41 | this._password = args['password']; | 38 | this._password = args['password']; |
42 | this._passwordValue = Clipperz.PM.DataModel.OneTimePassword.normalizedOneTimePassword(args['password']); | 39 | this._passwordValue = Clipperz.PM.DataModel.OneTimePassword.normalizedOneTimePassword(args['password']); |
43 | this._creationDate = args['created'] ? Clipperz.PM.Date.parseDateWithUTCFormat(args['created']) : new Date(); | 40 | this._creationDate = args['created'] ? Clipperz.PM.Date.parseDateWithUTCFormat(args['created']) : new Date(); |
44 | this._usageDate = args['used'] ? Clipperz.PM.Date.parseDateWithUTCFormat(args['used']) : null; | 41 | this._usageDate = args['used'] ? Clipperz.PM.Date.parseDateWithUTCFormat(args['used']) : null; |
45 | 42 | ||
46 | this._status = args['status'] || 'ACTIVE'; //'REQUESTED', 'USED', 'DISABLED' | 43 | this._status = args['status'] || 'ACTIVE'; //'REQUESTED', 'USED', 'DISABLED' |
47 | this._connectionInfo= null; | 44 | this._connectionInfo= null; |
48 | 45 | ||
49 | this._key = null; | 46 | this._key = null; |
50 | this._keyChecksum= null; | 47 | this._keyChecksum= null; |
51 | 48 | ||
52 | return this; | 49 | return this; |
53 | } | 50 | } |
54 | 51 | ||
55 | Clipperz.PM.DataModel.OneTimePassword.prototype = MochiKit.Base.update(null, { | 52 | Clipperz.PM.DataModel.OneTimePassword.prototype = MochiKit.Base.update(null, { |
56 | 53 | ||
57 | 'toString': function() { | 54 | 'toString': function() { |
58 | return "Clipperz.PM.DataModel.OneTimePassword"; | 55 | return "Clipperz.PM.DataModel.OneTimePassword"; |
59 | }, | 56 | }, |
60 | /* | 57 | /* |
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'user': function() { | 60 | 'user': function() { |
64 | return this._user; | 61 | return this._user; |
65 | }, | 62 | }, |
66 | 63 | ||
67 | //------------------------------------------------------------------------- | 64 | //------------------------------------------------------------------------- |
68 | 65 | ||
69 | 'password': function() { | 66 | 'password': function() { |
70 | return this._password; | 67 | return this._password; |
71 | }, | 68 | }, |
72 | 69 | ||
73 | //------------------------------------------------------------------------- | 70 | //------------------------------------------------------------------------- |
74 | 71 | ||
75 | 'passwordValue': function() { | 72 | 'passwordValue': function() { |
76 | return this._passwordValue; | 73 | return this._passwordValue; |
77 | }, | 74 | }, |
78 | 75 | ||
79 | //------------------------------------------------------------------------- | 76 | //------------------------------------------------------------------------- |
80 | 77 | ||
81 | 'creationDate': function() { | 78 | 'creationDate': function() { |
82 | return this._creationDate; | 79 | return this._creationDate; |
83 | }, | 80 | }, |
84 | 81 | ||
85 | //------------------------------------------------------------------------- | 82 | //------------------------------------------------------------------------- |
86 | 83 | ||
87 | 'reference': function() { | 84 | 'reference': function() { |
88 | return this._reference; | 85 | return this._reference; |
89 | }, | 86 | }, |
90 | 87 | ||
91 | //------------------------------------------------------------------------- | 88 | //------------------------------------------------------------------------- |
92 | 89 | ||
93 | 'key': function() { | 90 | 'key': function() { |
94 | if (this._key == null) { | 91 | if (this._key == null) { |
95 | this._key = Clipperz.PM.DataModel.OneTimePassword.computeKeyWithUsernameAndPassword(this.user().username(), this.passwordValue()); | 92 | this._key = Clipperz.PM.DataModel.OneTimePassword.computeKeyWithUsernameAndPassword(this.user().username(), this.passwordValue()); |
96 | } | 93 | } |
97 | 94 | ||
98 | return this._key; | 95 | return this._key; |
99 | }, | 96 | }, |
100 | 97 | ||
101 | //------------------------------------------------------------------------- | 98 | //------------------------------------------------------------------------- |
102 | 99 | ||
103 | 'keyChecksum': function() { | 100 | 'keyChecksum': function() { |
104 | if (this._keyChecksum == null) { | 101 | if (this._keyChecksum == null) { |
105 | this._keyChecksum = Clipperz.PM.DataModel.OneTimePassword.computeKeyChecksumWithUsernameAndPassword(this.user().username(), this.passwordValue()); | 102 | this._keyChecksum = Clipperz.PM.DataModel.OneTimePassword.computeKeyChecksumWithUsernameAndPassword(this.user().username(), this.passwordValue()); |
106 | } | 103 | } |
107 | 104 | ||
108 | return this._keyChecksum; | 105 | return this._keyChecksum; |
109 | }, | 106 | }, |
110 | */ | 107 | */ |
111 | //------------------------------------------------------------------------- | 108 | //------------------------------------------------------------------------- |
112 | 109 | ||
113 | 'status': function() { | 110 | 'status': function() { |
114 | return this._status; | 111 | return this._status; |
115 | }, | 112 | }, |
116 | 113 | ||
117 | 'setStatus': function(aValue) { | 114 | 'setStatus': function(aValue) { |
118 | this._status = aValue; | 115 | this._status = aValue; |
119 | }, | 116 | }, |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js index 147aa7d..f51bbc2 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.Field.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.Record.Version) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.Record.Version) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.Record.Version.Field depends on Clipperz.PM.DataModel.Record.Version!"; | 27 | throw "Clipperz.PM.DataModel.Record.Version.Field depends on Clipperz.PM.DataModel.Record.Version!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | Clipperz.PM.DataModel.Record.Version.Field = function(args) { | 30 | Clipperz.PM.DataModel.Record.Version.Field = function(args) { |
34 | Clipperz.PM.DataModel.Record.Version.Field.superclass.constructor.apply(this, arguments); | 31 | Clipperz.PM.DataModel.Record.Version.Field.superclass.constructor.apply(this, arguments); |
35 | 32 | ||
36 | this._recordVersion = args.recordVersion|| Clipperz.Base.exception.raise('MandatoryParameter'); | 33 | this._recordVersion = args.recordVersion|| Clipperz.Base.exception.raise('MandatoryParameter'); |
37 | this._reference = args.reference || Clipperz.PM.Crypto.randomKey(); | 34 | this._reference = args.reference || Clipperz.PM.Crypto.randomKey(); |
38 | 35 | ||
39 | return this; | 36 | return this; |
40 | } | 37 | } |
41 | 38 | ||
42 | 39 | ||
43 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version.Field, Object, { | 40 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version.Field, Object, { |
44 | 41 | ||
45 | 'toString': function() { | 42 | 'toString': function() { |
46 | return "Record.Version.Field (" + this.reference() + ")"; | 43 | return "Record.Version.Field (" + this.reference() + ")"; |
47 | }, | 44 | }, |
48 | 45 | ||
49 | //------------------------------------------------------------------------- | 46 | //------------------------------------------------------------------------- |
50 | 47 | ||
51 | 'recordVersion': function () { | 48 | 'recordVersion': function () { |
52 | return this._recordVersion; | 49 | return this._recordVersion; |
53 | }, | 50 | }, |
54 | 51 | ||
55 | //------------------------------------------------------------------------- | 52 | //------------------------------------------------------------------------- |
56 | 53 | ||
57 | 'reference': function () { | 54 | 'reference': function () { |
58 | return this._reference; | 55 | return this._reference; |
59 | }, | 56 | }, |
60 | 57 | ||
61 | //------------------------------------------------------------------------- | 58 | //------------------------------------------------------------------------- |
62 | 59 | ||
63 | 'getItem': function (aKey) { | 60 | 'getItem': function (aKey) { |
64 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.getItem", [ | 61 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.getItem", [ |
65 | MochiKit.Base.method(this, 'recordVersion'), | 62 | MochiKit.Base.method(this, 'recordVersion'), |
66 | MochiKit.Base.methodcaller('getValue', 'fields' + '.' + this.reference() + '.' + aKey) | 63 | MochiKit.Base.methodcaller('getValue', 'fields' + '.' + this.reference() + '.' + aKey) |
67 | ], {trace:false}); | 64 | ], {trace:false}); |
68 | }, | 65 | }, |
69 | 66 | ||
70 | 'setItem': function (aKey, aValue) { | 67 | 'setItem': function (aKey, aValue) { |
71 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.getItem", [ | 68 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.getItem", [ |
72 | MochiKit.Base.method(this, 'recordVersion'), | 69 | MochiKit.Base.method(this, 'recordVersion'), |
73 | MochiKit.Base.methodcaller('setValue', 'fields' + '.' + this.reference() + '.' + aKey, aValue) | 70 | MochiKit.Base.methodcaller('setValue', 'fields' + '.' + this.reference() + '.' + aKey, aValue) |
74 | ], {trace:false}); | 71 | ], {trace:false}); |
75 | }, | 72 | }, |
76 | 73 | ||
77 | //------------------------------------------------------------------------- | 74 | //------------------------------------------------------------------------- |
78 | 75 | ||
79 | 'label': function () { | 76 | 'label': function () { |
80 | return this.getItem('label'); | 77 | return this.getItem('label'); |
81 | }, | 78 | }, |
82 | 79 | ||
83 | 'setLabel': function (aValue) { | 80 | 'setLabel': function (aValue) { |
84 | return this.setItem('label', aValue); | 81 | return this.setItem('label', aValue); |
85 | }, | 82 | }, |
86 | 83 | ||
87 | //------------------------------------------------------------------------- | 84 | //------------------------------------------------------------------------- |
88 | 85 | ||
89 | 'value': function () { | 86 | 'value': function () { |
90 | return this.getItem('value'); | 87 | return this.getItem('value'); |
91 | }, | 88 | }, |
92 | 89 | ||
93 | 'setValue': function (aValue) { | 90 | 'setValue': function (aValue) { |
94 | return this.setItem('value', aValue); | 91 | return this.setItem('value', aValue); |
95 | }, | 92 | }, |
96 | 93 | ||
97 | //------------------------------------------------------------------------- | 94 | //------------------------------------------------------------------------- |
98 | 95 | ||
99 | 'actionType': function () { | 96 | 'actionType': function () { |
100 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.actionType", [ | 97 | return Clipperz.Async.callbacks("Clipperz.PM.DataModel.Record.Version.Field.actionType", [ |
101 | Clipperz.Async.collectResults("Clipperz.PM.DataModel.Record.Version.Field.actionType [collect results]", { | 98 | Clipperz.Async.collectResults("Clipperz.PM.DataModel.Record.Version.Field.actionType [collect results]", { |
102 | 'isHidden':MochiKit.Base.method(this, 'isHidden'), | 99 | 'isHidden':MochiKit.Base.method(this, 'isHidden'), |
103 | 'value':MochiKit.Base.method(this, 'value') | 100 | 'value':MochiKit.Base.method(this, 'value') |
104 | }, {trace:false}), | 101 | }, {trace:false}), |
105 | function (someValues) { | 102 | function (someValues) { |
106 | var result; //'NONE', 'URL', 'EMAIL', 'PASSWORD' | 103 | var result; //'NONE', 'URL', 'EMAIL', 'PASSWORD' |
107 | 104 | ||
108 | result = 'NONE'; | 105 | result = 'NONE'; |
109 | 106 | ||
110 | if (someValues['isHidden']) { | 107 | if (someValues['isHidden']) { |
111 | result = 'PASSWORD'; | 108 | result = 'PASSWORD'; |
112 | } else if (Clipperz.Base.isUrl(someValues['value'])) { | 109 | } else if (Clipperz.Base.isUrl(someValues['value'])) { |
113 | result = 'URL' | 110 | result = 'URL' |
114 | } else if (Clipperz.Base.isEmail(someValues['value'])) { | 111 | } else if (Clipperz.Base.isEmail(someValues['value'])) { |
115 | result = 'EMAIL' | 112 | result = 'EMAIL' |
116 | }; | 113 | }; |
117 | 114 | ||
118 | return result; | 115 | return result; |
119 | } | 116 | } |
120 | ], {trace:false}); | 117 | ], {trace:false}); |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js index 6e50f8e..dd35fc9 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/Record.Version.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.Record) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.Record) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.Record.Version depends on Clipperz.PM.DataModel.Record!"; | 27 | throw "Clipperz.PM.DataModel.Record.Version depends on Clipperz.PM.DataModel.Record!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | Clipperz.PM.DataModel.Record.Version = function(args) { | 30 | Clipperz.PM.DataModel.Record.Version = function(args) { |
34 | //console.log(">>> Record.new"); | 31 | //console.log(">>> Record.new"); |
35 | Clipperz.PM.DataModel.Record.Version.superclass.constructor.apply(this, arguments); | 32 | Clipperz.PM.DataModel.Record.Version.superclass.constructor.apply(this, arguments); |
36 | 33 | ||
37 | this._getVersionFunction = args.getVersion|| Clipperz.Base.exception.raise('MandatoryParameter'); | 34 | this._getVersionFunction = args.getVersion|| Clipperz.Base.exception.raise('MandatoryParameter'); |
38 | this._fields = null; | 35 | this._fields = null; |
39 | 36 | ||
40 | return this; | 37 | return this; |
41 | } | 38 | } |
42 | 39 | ||
43 | 40 | ||
44 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version, Clipperz.PM.DataModel.EncryptedRemoteObject, { | 41 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record.Version, Clipperz.PM.DataModel.EncryptedRemoteObject, { |
45 | 42 | ||
46 | 'toString': function() { | 43 | 'toString': function() { |
47 | return "Record.Version (" + this.reference() + ")"; | 44 | return "Record.Version (" + this.reference() + ")"; |
48 | }, | 45 | }, |
49 | 46 | ||
50 | //------------------------------------------------------------------------- | 47 | //------------------------------------------------------------------------- |
51 | 48 | ||
52 | 'reference': function () { | 49 | 'reference': function () { |
53 | return this._reference; | 50 | return this._reference; |
54 | }, | 51 | }, |
55 | 52 | ||
56 | //------------------------------------------------------------------------- | 53 | //------------------------------------------------------------------------- |
57 | /* | 54 | /* |
58 | 'hasPendingChanges': function () { | 55 | 'hasPendingChanges': function () { |
59 | var deferredResult; | 56 | var deferredResult; |
60 | 57 | ||
61 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.hasPendingChanges", {trace:false}); | 58 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.hasPendingChanges", {trace:false}); |
62 | deferredResult.addCallback(MochiKit.Base.bind(Clipperz.PM.DataModel.Record.Version.superclass.hasPendingChanges, this)); | 59 | deferredResult.addCallback(MochiKit.Base.bind(Clipperz.PM.DataModel.Record.Version.superclass.hasPendingChanges, this)); |
63 | deferredResult.callback(); | 60 | deferredResult.callback(); |
64 | 61 | ||
65 | return deferredResult; | 62 | return deferredResult; |
66 | }, | 63 | }, |
67 | */ | 64 | */ |
68 | //------------------------------------------------------------------------- | 65 | //------------------------------------------------------------------------- |
69 | 66 | ||
70 | 67 | ||
71 | 'hasPendingChangesWhenBrandNew': function () { | 68 | 'hasPendingChangesWhenBrandNew': function () { |
72 | var deferredResult; | 69 | var deferredResult; |
73 | 70 | ||
74 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.hasPendingChangesWhenBrandNew", {trace:false}); | 71 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.hasPendingChangesWhenBrandNew", {trace:false}); |
75 | deferredResult.addMethod(this, 'fields'); | 72 | deferredResult.addMethod(this, 'fields'); |
76 | deferredResult.addCallback(MochiKit.Base.values); | 73 | deferredResult.addCallback(MochiKit.Base.values); |
77 | deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.methodcaller('isEmpty')) | 74 | deferredResult.addCallback(MochiKit.Base.map, MochiKit.Base.methodcaller('isEmpty')) |
78 | deferredResult.addCallback(Clipperz.Async.collectAll); | 75 | deferredResult.addCallback(Clipperz.Async.collectAll); |
79 | deferredResult.addCallback(function(someValues) { | 76 | deferredResult.addCallback(function(someValues) { |
80 | return MochiKit.Iter.every(someValues, MochiKit.Base.operator.identity); | 77 | return MochiKit.Iter.every(someValues, MochiKit.Base.operator.identity); |
81 | }); | 78 | }); |
82 | deferredResult.addCallback(MochiKit.Base.operator.lognot) | 79 | deferredResult.addCallback(MochiKit.Base.operator.lognot) |
83 | deferredResult.callback(); | 80 | deferredResult.callback(); |
84 | 81 | ||
85 | return deferredResult; | 82 | return deferredResult; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //========================================================================= | 85 | //========================================================================= |
89 | 86 | ||
90 | 'commitTransientState': function () { | 87 | 'commitTransientState': function () { |
91 | var deferredResult; | 88 | var deferredResult; |
92 | 89 | ||
93 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.commitTransientState", {trace:false}); | 90 | deferredResult = new Clipperz.Async.Deferred("Clipperz.PM.DataModel.Record.Version.commitTransientState", {trace:false}); |
94 | deferredResult.addCallback(MochiKit.Base.bind(Clipperz.PM.DataModel.Record.Version.superclass.commitTransientState, this)); | 91 | deferredResult.addCallback(MochiKit.Base.bind(Clipperz.PM.DataModel.Record.Version.superclass.commitTransientState, this)); |
95 | deferredResult.callback(); | 92 | deferredResult.callback(); |
96 | 93 | ||
97 | return deferredResult; | 94 | return deferredResult; |
98 | }, | 95 | }, |
99 | 96 | ||
100 | //========================================================================= | 97 | //========================================================================= |
101 | 98 | ||
102 | 'unpackData': function (someData) { //++ | 99 | 'unpackData': function (someData) { //++ |
103 | varresult; | 100 | varresult; |
104 | 101 | ||
105 | //console.log("Record.Version - UNPACK DATA", this, someData); | 102 | //console.log("Record.Version - UNPACK DATA", this, someData); |
106 | result = someData; | 103 | result = someData; |
107 | if ((someData['fields'] != null) && (someData['fields'] instanceof Array)) { | 104 | if ((someData['fields'] != null) && (someData['fields'] instanceof Array)) { |
108 | varfields; | 105 | varfields; |
109 | var i,c; | 106 | var i,c; |
110 | 107 | ||
111 | fields = someData['fields']; | 108 | fields = someData['fields']; |
112 | delete someData['fields']; | 109 | delete someData['fields']; |
113 | 110 | ||
114 | someData['fields'] = {}; | 111 | someData['fields'] = {}; |
115 | c = fields.length; | 112 | c = fields.length; |
116 | for (i=0; i<c; i++) { | 113 | for (i=0; i<c; i++) { |
117 | someData['fields'][i] = fields[i]; | 114 | someData['fields'][i] = fields[i]; |
118 | } | 115 | } |
119 | } | 116 | } |
120 | 117 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/Record.js b/frontend/gamma/js/Clipperz/PM/DataModel/Record.js index 85dd06b..b816f80 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/Record.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/Record.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | 30 | ||
34 | Clipperz.PM.DataModel.Record = function(args) { | 31 | Clipperz.PM.DataModel.Record = function(args) { |
35 | //console.log(">>> new Clipperz.PM.DataModel.Record", args); | 32 | //console.log(">>> new Clipperz.PM.DataModel.Record", args); |
36 | Clipperz.PM.DataModel.Record.superclass.constructor.apply(this, arguments); | 33 | Clipperz.PM.DataModel.Record.superclass.constructor.apply(this, arguments); |
37 | 34 | ||
38 | this._updateDate = (args.updateDate ? Clipperz.PM.Date.parse(args.updateDate) : Clipperz.Base.exception.raise('MandatoryParameter')); | 35 | this._updateDate = (args.updateDate ? Clipperz.PM.Date.parse(args.updateDate) : Clipperz.Base.exception.raise('MandatoryParameter')); |
39 | 36 | ||
40 | this._retrieveIndexDataFunction = args.retrieveIndexDataFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); | 37 | this._retrieveIndexDataFunction = args.retrieveIndexDataFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); |
41 | this._updateIndexDataFunction = args.updateIndexDataFunction || Clipperz.Base.exception.raise('MandatoryParameter'); | 38 | this._updateIndexDataFunction = args.updateIndexDataFunction || Clipperz.Base.exception.raise('MandatoryParameter'); |
42 | 39 | ||
43 | this._retrieveDirectLoginIndexDataFunction = args.retrieveDirectLoginIndexDataFunction|| null; | 40 | this._retrieveDirectLoginIndexDataFunction = args.retrieveDirectLoginIndexDataFunction|| null; |
44 | this._setDirectLoginIndexDataFunction = args.setDirectLoginIndexDataFunction || null; | 41 | this._setDirectLoginIndexDataFunction = args.setDirectLoginIndexDataFunction || null; |
45 | this._removeDirectLoginIndexDataFunction = args.removeDirectLoginIndexDataFunction|| null; | 42 | this._removeDirectLoginIndexDataFunction = args.removeDirectLoginIndexDataFunction|| null; |
46 | 43 | ||
47 | this._createNewDirectLoginFunction = args.createNewDirectLoginFunction || null; | 44 | this._createNewDirectLoginFunction = args.createNewDirectLoginFunction || null; |
48 | 45 | ||
49 | this._directLogins = {}; | 46 | this._directLogins = {}; |
50 | 47 | ||
51 | this._versions = {}; | 48 | this._versions = {}; |
52 | 49 | ||
53 | this._currentRecordVersion = null; | 50 | this._currentRecordVersion = null; |
54 | if (this.isBrandNew()) { | 51 | if (this.isBrandNew()) { |
55 | var newVersion; | 52 | var newVersion; |
56 | 53 | ||
57 | this.setNotes(''); | 54 | this.setNotes(''); |
58 | newVersion = new Clipperz.PM.DataModel.Record.Version({ | 55 | newVersion = new Clipperz.PM.DataModel.Record.Version({ |
59 | 'retrieveKeyFunction':MochiKit.Base.method(this, 'getVersionKey'), | 56 | 'retrieveKeyFunction':MochiKit.Base.method(this, 'getVersionKey'), |
60 | 'getVersion': MochiKit.Base.method(this, 'getVersion') | 57 | 'getVersion': MochiKit.Base.method(this, 'getVersion') |
61 | 58 | ||
62 | }); | 59 | }); |
63 | this._versions[newVersion.reference()] = newVersion; | 60 | this._versions[newVersion.reference()] = newVersion; |
64 | this._currentVersionReference = newVersion.reference(); | 61 | this._currentVersionReference = newVersion.reference(); |
65 | // this.setLabel(''); | 62 | // this.setLabel(''); |
66 | } | 63 | } |
67 | 64 | ||
68 | //console.log("<<< new Clipperz.PM.DataModel.Record", args); | 65 | //console.log("<<< new Clipperz.PM.DataModel.Record", args); |
69 | 66 | ||
70 | return this; | 67 | return this; |
71 | } | 68 | } |
72 | 69 | ||
73 | 70 | ||
74 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.EncryptedRemoteObject, { | 71 | Clipperz.Base.extend(Clipperz.PM.DataModel.Record, Clipperz.PM.DataModel.EncryptedRemoteObject, { |
75 | 72 | ||
76 | 'toString': function() { | 73 | 'toString': function() { |
77 | return "Record (" + this.reference() + ")"; | 74 | return "Record (" + this.reference() + ")"; |
78 | }, | 75 | }, |
79 | 76 | ||
80 | //------------------------------------------------------------------------- | 77 | //------------------------------------------------------------------------- |
81 | 78 | ||
82 | 'reference': function () { | 79 | 'reference': function () { |
83 | return this._reference; | 80 | return this._reference; |
84 | }, | 81 | }, |
85 | 82 | ||
86 | //========================================================================= | 83 | //========================================================================= |
87 | 84 | ||
88 | 'getIndexData': function () { | 85 | 'getIndexData': function () { |
89 | return this._retrieveIndexDataFunction(this.reference()); | 86 | return this._retrieveIndexDataFunction(this.reference()); |
90 | }, | 87 | }, |
91 | 88 | ||
92 | //......................................................................... | 89 | //......................................................................... |
93 | 90 | ||
94 | 'getIndexDataForKey': function (aKey) { | 91 | 'getIndexDataForKey': function (aKey) { |
95 | return Clipperz.Async.callbacks("Record.getIndexDataForKey", [ | 92 | return Clipperz.Async.callbacks("Record.getIndexDataForKey", [ |
96 | MochiKit.Base.method(this, 'getIndexData'), | 93 | MochiKit.Base.method(this, 'getIndexData'), |
97 | MochiKit.Base.itemgetter(aKey) | 94 | MochiKit.Base.itemgetter(aKey) |
98 | ], {trace:false}); | 95 | ], {trace:false}); |
99 | }, | 96 | }, |
100 | 97 | ||
101 | //------------------------------------------------------------------------- | 98 | //------------------------------------------------------------------------- |
102 | 99 | ||
103 | 'setIndexDataForKey': function (aKey, aValue) { | 100 | 'setIndexDataForKey': function (aKey, aValue) { |
104 | // return this._updateIndexDataFunction(this.reference(), aKey, aValue); | 101 | // return this._updateIndexDataFunction(this.reference(), aKey, aValue); |
105 | 102 | ||
106 | var deferredResult; | 103 | var deferredResult; |
107 | 104 | ||
108 | deferredResult = new Clipperz.Async.Deferred("Record.setIndexDataForKey", {trace:false}); | 105 | deferredResult = new Clipperz.Async.Deferred("Record.setIndexDataForKey", {trace:false}); |
109 | deferredResult.addMethod(this, 'getIndexDataForKey', aKey); | 106 | deferredResult.addMethod(this, 'getIndexDataForKey', aKey); |
110 | deferredResult.addCallback(MochiKit.Base.bind(function (aCurrentValue) { | 107 | deferredResult.addCallback(MochiKit.Base.bind(function (aCurrentValue) { |
111 | var result; | 108 | var result; |
112 | var originalValue; | 109 | var originalValue; |
113 | 110 | ||
114 | originalValue = this.transientState().getValue('originalValues.indexData.' + aKey); | 111 | originalValue = this.transientState().getValue('originalValues.indexData.' + aKey); |
115 | if (originalValue == null) { | 112 | if (originalValue == null) { |
116 | originalValue = this.transientState().setValue('originalValues.indexData.' + aKey, aCurrentValue); | 113 | originalValue = this.transientState().setValue('originalValues.indexData.' + aKey, aCurrentValue); |
117 | } | 114 | } |
118 | 115 | ||
119 | if (aCurrentValue != aValue) { | 116 | if (aCurrentValue != aValue) { |
120 | if (originalValue != aValue) { | 117 | if (originalValue != aValue) { |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js index e675525..d6202ff 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Legacy.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.User.Header.Legacy depends on Clipperz.PM.DataModel.User!"; | 27 | throw "Clipperz.PM.DataModel.User.Header.Legacy depends on Clipperz.PM.DataModel.User!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } | 30 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } |
34 | 31 | ||
35 | Clipperz.PM.DataModel.User.Header.Legacy = function(args) { | 32 | Clipperz.PM.DataModel.User.Header.Legacy = function(args) { |
36 | //args = args || {}; | 33 | //args = args || {}; |
37 | Clipperz.PM.DataModel.User.Header.Legacy.superclass.constructor.apply(this, arguments); | 34 | Clipperz.PM.DataModel.User.Header.Legacy.superclass.constructor.apply(this, arguments); |
38 | 35 | ||
39 | this._retrieveRecordDetailFunction = args.retrieveRecordDetailFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); | 36 | this._retrieveRecordDetailFunction = args.retrieveRecordDetailFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); |
40 | this._records = null; | 37 | this._records = null; |
41 | //this._directLogins = null; | 38 | //this._directLogins = null; |
42 | 39 | ||
43 | return this; | 40 | return this; |
44 | } | 41 | } |
45 | 42 | ||
46 | 43 | ||
47 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Legacy, Clipperz.PM.DataModel.EncryptedRemoteObject, { | 44 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Legacy, Clipperz.PM.DataModel.EncryptedRemoteObject, { |
48 | 45 | ||
49 | 'toString': function() { | 46 | 'toString': function() { |
50 | return "Clipperz.PM.DataModel.User.Header.Legacy"; | 47 | return "Clipperz.PM.DataModel.User.Header.Legacy"; |
51 | }, | 48 | }, |
52 | 49 | ||
53 | //------------------------------------------------------------------------- | 50 | //------------------------------------------------------------------------- |
54 | 51 | ||
55 | 'retrieveRecordDetailFunction': function () { | 52 | 'retrieveRecordDetailFunction': function () { |
56 | return this._retrieveRecordDetailFunction; | 53 | return this._retrieveRecordDetailFunction; |
57 | }, | 54 | }, |
58 | 55 | ||
59 | //------------------------------------------------------------------------- | 56 | //------------------------------------------------------------------------- |
60 | 57 | ||
61 | 'getRecordKey': function (aRecordReference) { | 58 | 'getRecordKey': function (aRecordReference) { |
62 | var deferredResult; | 59 | var deferredResult; |
63 | 60 | ||
64 | deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.getRecordKey", {trace:false}); | 61 | deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.getRecordKey", {trace:false}); |
65 | deferredResult.addMethod(this, 'getRecordIndexData'); | 62 | deferredResult.addMethod(this, 'getRecordIndexData'); |
66 | deferredResult.addCallback(MochiKit.Base.itemgetter('key')) | 63 | deferredResult.addCallback(MochiKit.Base.itemgetter('key')) |
67 | deferredResult.callback(); | 64 | deferredResult.callback(); |
68 | 65 | ||
69 | return deferredResult; | 66 | return deferredResult; |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //========================================================================= | 69 | //========================================================================= |
73 | 70 | ||
74 | 'getRecordIndexData': function (aRecordReference) { | 71 | 'getRecordIndexData': function (aRecordReference) { |
75 | return this.getValue('records.' + aRecordReference); | 72 | return this.getValue('records.' + aRecordReference); |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'updateRecordIndexData': function (aRecordReference, aKey, aValue) { | 75 | 'updateRecordIndexData': function (aRecordReference, aKey, aValue) { |
79 | return this.setValue('records.' + aRecordReference + "." + aKey, aValue); | 76 | return this.setValue('records.' + aRecordReference + "." + aKey, aValue); |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //------------------------------------------------------------------------- | 79 | //------------------------------------------------------------------------- |
83 | 80 | ||
84 | 'getDirectLoginIndexData': function (aDirectLoginReference) { | 81 | 'getDirectLoginIndexData': function (aDirectLoginReference) { |
85 | return this.getValue('directLogins.' + aDirectLoginReference); | 82 | return this.getValue('directLogins.' + aDirectLoginReference); |
86 | }, | 83 | }, |
87 | 84 | ||
88 | 'setDirectLoginIndexData': function (aDirectLoginReference, aKey, aValue) { | 85 | 'setDirectLoginIndexData': function (aDirectLoginReference, aKey, aValue) { |
89 | return this.setValue('directLogins.' + aDirectLoginReference + '.' + aKey, aValue); | 86 | return this.setValue('directLogins.' + aDirectLoginReference + '.' + aKey, aValue); |
90 | }, | 87 | }, |
91 | 88 | ||
92 | 'removeDirectLoginIndexData': function (aDirectLoginReference) { | 89 | 'removeDirectLoginIndexData': function (aDirectLoginReference) { |
93 | return this.removeValue('directLogins.' + aDirectLoginReference); | 90 | return this.removeValue('directLogins.' + aDirectLoginReference); |
94 | }, | 91 | }, |
95 | 92 | ||
96 | //========================================================================= | 93 | //========================================================================= |
97 | 94 | ||
98 | 'records': function () { | 95 | 'records': function () { |
99 | vardeferredResult; | 96 | vardeferredResult; |
100 | var deferredLock; | 97 | var deferredLock; |
101 | 98 | ||
102 | deferredLock = this.getDeferredLockForKey('records'); | 99 | deferredLock = this.getDeferredLockForKey('records'); |
103 | 100 | ||
104 | deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records", {trace:false}); | 101 | deferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records", {trace:false}); |
105 | deferredResult.acquireLock(deferredLock); | 102 | deferredResult.acquireLock(deferredLock); |
106 | deferredResult.addCallback(MochiKit.Base.bind(function () { | 103 | deferredResult.addCallback(MochiKit.Base.bind(function () { |
107 | var innerDeferredResult; | 104 | var innerDeferredResult; |
108 | 105 | ||
109 | if (this._records == null) { | 106 | if (this._records == null) { |
110 | innerDeferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records <inner deferred>", {trace:false}); | 107 | innerDeferredResult = new Clipperz.Async.Deferred("User.Header.Legacy.records <inner deferred>", {trace:false}); |
111 | innerDeferredResult.collectResults({ | 108 | innerDeferredResult.collectResults({ |
112 | 'header': [ | 109 | 'header': [ |
113 | // MochiKit.Base.method(this, 'getObjectDataStore'), | 110 | // MochiKit.Base.method(this, 'getObjectDataStore'), |
114 | // MochiKit.Base.methodcaller('values') | 111 | // MochiKit.Base.methodcaller('values') |
115 | MochiKit.Base.method(this, 'values') | 112 | MochiKit.Base.method(this, 'values') |
116 | ], | 113 | ], |
117 | 'recordsStats': [ | 114 | 'recordsStats': [ |
118 | MochiKit.Base.method(this, 'getRemoteData'), | 115 | MochiKit.Base.method(this, 'getRemoteData'), |
119 | MochiKit.Base.itemgetter('recordsStats') | 116 | MochiKit.Base.itemgetter('recordsStats') |
120 | ] | 117 | ] |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js index 0ee8599..3528db6 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.OneTimePasswords.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.User.Header.OneTimePasswords depends on Clipperz.PM.DataModel.User!"; | 27 | throw "Clipperz.PM.DataModel.User.Header.OneTimePasswords depends on Clipperz.PM.DataModel.User!"; |
31 | } | 28 | } |
32 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } | 29 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } |
33 | 30 | ||
34 | //----------------------------------------------------------------------------- | 31 | //----------------------------------------------------------------------------- |
35 | 32 | ||
36 | Clipperz.PM.DataModel.User.Header.OneTimePasswords = function(args) { | 33 | Clipperz.PM.DataModel.User.Header.OneTimePasswords = function(args) { |
37 | Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.constructor.apply(this, arguments); | 34 | Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.constructor.apply(this, arguments); |
38 | 35 | ||
39 | this._oneTimePasswords = null; | 36 | this._oneTimePasswords = null; |
40 | 37 | ||
41 | return this; | 38 | return this; |
42 | } | 39 | } |
43 | 40 | ||
44 | //----------------------------------------------------------------------------- | 41 | //----------------------------------------------------------------------------- |
45 | 42 | ||
46 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.OneTimePasswords, Clipperz.PM.DataModel.EncryptedRemoteObject, { | 43 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.OneTimePasswords, Clipperz.PM.DataModel.EncryptedRemoteObject, { |
47 | 44 | ||
48 | 'toString': function() { | 45 | 'toString': function() { |
49 | return "Clipperz.PM.DataModel.User.Header.OneTimePasswords"; | 46 | return "Clipperz.PM.DataModel.User.Header.OneTimePasswords"; |
50 | }, | 47 | }, |
51 | 48 | ||
52 | //------------------------------------------------------------------------- | 49 | //------------------------------------------------------------------------- |
53 | /* | 50 | /* |
54 | 'packData': function (someData) { //++ | 51 | 'packData': function (someData) { //++ |
55 | var result; | 52 | var result; |
56 | 53 | ||
57 | console.log(">>> OneTimePasswords.packData", someData); | 54 | console.log(">>> OneTimePasswords.packData", someData); |
58 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packData.apply(this, arguments); | 55 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packData.apply(this, arguments); |
59 | console.log("<<< OneTimePasswords.packData"); | 56 | console.log("<<< OneTimePasswords.packData"); |
60 | 57 | ||
61 | return result; | 58 | return result; |
62 | }, | 59 | }, |
63 | */ | 60 | */ |
64 | //------------------------------------------------------------------------- | 61 | //------------------------------------------------------------------------- |
65 | /* | 62 | /* |
66 | 'packRemoteData': function (someData) { | 63 | 'packRemoteData': function (someData) { |
67 | var result; | 64 | var result; |
68 | 65 | ||
69 | console.log(">>> OneTimePasswords.packRemoteData", someData); | 66 | console.log(">>> OneTimePasswords.packRemoteData", someData); |
70 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packRemoteData.apply(this, arguments); | 67 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.packRemoteData.apply(this, arguments); |
71 | console.log("<<< OneTimePasswords.packRemoteData"); | 68 | console.log("<<< OneTimePasswords.packRemoteData"); |
72 | 69 | ||
73 | return result; | 70 | return result; |
74 | }, | 71 | }, |
75 | */ | 72 | */ |
76 | //------------------------------------------------------------------------- | 73 | //------------------------------------------------------------------------- |
77 | /* | 74 | /* |
78 | 'prepareRemoteDataWithKey': function (aKey) { | 75 | 'prepareRemoteDataWithKey': function (aKey) { |
79 | var result; | 76 | var result; |
80 | 77 | ||
81 | console.log(">>> OneTimePasswords.prepareRemoteDataWithKey"); | 78 | console.log(">>> OneTimePasswords.prepareRemoteDataWithKey"); |
82 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.prepareRemoteDataWithKey.apply(this, arguments); | 79 | result = Clipperz.PM.DataModel.User.Header.OneTimePasswords.superclass.prepareRemoteDataWithKey.apply(this, arguments); |
83 | console.log("<<< OneTimePasswords.prepareRemoteDataWithKey"); | 80 | console.log("<<< OneTimePasswords.prepareRemoteDataWithKey"); |
84 | 81 | ||
85 | return result; | 82 | return result; |
86 | }, | 83 | }, |
87 | */ | 84 | */ |
88 | //========================================================================= | 85 | //========================================================================= |
89 | 86 | ||
90 | 'oneTimePasswords': function () { | 87 | 'oneTimePasswords': function () { |
91 | vardeferredResult; | 88 | vardeferredResult; |
92 | 89 | ||
93 | deferredResult = new Clipperz.Async.Deferred("User.Header.OneTimePasswords.oneTimePasswords", {trace:false}); | 90 | deferredResult = new Clipperz.Async.Deferred("User.Header.OneTimePasswords.oneTimePasswords", {trace:false}); |
94 | if (this._oneTimePasswords == null) { | 91 | if (this._oneTimePasswords == null) { |
95 | deferredResult.addMethod(this, 'values') | 92 | deferredResult.addMethod(this, 'values') |
96 | deferredResult.addCallback(MochiKit.Base.bind(function (someData) { | 93 | deferredResult.addCallback(MochiKit.Base.bind(function (someData) { |
97 | varotpKey; | 94 | varotpKey; |
98 | 95 | ||
99 | this._oneTimePasswords = {}; | 96 | this._oneTimePasswords = {}; |
100 | 97 | ||
101 | for (otpKey in someData) { | 98 | for (otpKey in someData) { |
102 | var otp; | 99 | var otp; |
103 | var otpParameters; | 100 | var otpParameters; |
104 | 101 | ||
105 | otpParameters = Clipperz.Base.deepClone(someData[otpKey]); | 102 | otpParameters = Clipperz.Base.deepClone(someData[otpKey]); |
106 | otpParameters['reference'] = otpKey; | 103 | otpParameters['reference'] = otpKey; |
107 | 104 | ||
108 | otp = new Clipperz.PM.DataModel.OneTimePassword(otpParameters); | 105 | otp = new Clipperz.PM.DataModel.OneTimePassword(otpParameters); |
109 | this._oneTimePasswords[otpKey] = otp; | 106 | this._oneTimePasswords[otpKey] = otp; |
110 | } | 107 | } |
111 | 108 | ||
112 | return this._oneTimePasswords; | 109 | return this._oneTimePasswords; |
113 | 110 | ||
114 | }, this)); | 111 | }, this)); |
115 | deferredResult.callback(); | 112 | deferredResult.callback(); |
116 | } else { | 113 | } else { |
117 | deferredResult = MochiKit.Async.succeed(this._oneTimePasswords); | 114 | deferredResult = MochiKit.Async.succeed(this._oneTimePasswords); |
118 | } | 115 | } |
119 | 116 | ||
120 | return deferredResult; | 117 | return deferredResult; |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js index 91b981e..b164889 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.Preferences.js | |||
@@ -1,53 +1,50 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.User.Header.Preferences depends on Clipperz.PM.DataModel.User!"; | 27 | throw "Clipperz.PM.DataModel.User.Header.Preferences depends on Clipperz.PM.DataModel.User!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } | 30 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } |
34 | 31 | ||
35 | Clipperz.PM.DataModel.User.Header.Preferences = function(args) { | 32 | Clipperz.PM.DataModel.User.Header.Preferences = function(args) { |
36 | Clipperz.PM.DataModel.User.Header.Preferences.superclass.constructor.apply(this, arguments); | 33 | Clipperz.PM.DataModel.User.Header.Preferences.superclass.constructor.apply(this, arguments); |
37 | 34 | ||
38 | return this; | 35 | return this; |
39 | } | 36 | } |
40 | 37 | ||
41 | 38 | ||
42 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Preferences, Clipperz.PM.DataModel.EncryptedRemoteObject, { | 39 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Preferences, Clipperz.PM.DataModel.EncryptedRemoteObject, { |
43 | 40 | ||
44 | 'toString': function() { | 41 | 'toString': function() { |
45 | return "Clipperz.PM.DataModel.User.Header.Preferences"; | 42 | return "Clipperz.PM.DataModel.User.Header.Preferences"; |
46 | }, | 43 | }, |
47 | 44 | ||
48 | //------------------------------------------------------------------------- | 45 | //------------------------------------------------------------------------- |
49 | //========================================================================= | 46 | //========================================================================= |
50 | __syntaxFix__: "syntax fix" | 47 | __syntaxFix__: "syntax fix" |
51 | }); | 48 | }); |
52 | 49 | ||
53 | 50 | ||
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js index 6ba58a8..f77ea80 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.Header.RecordIndex.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { | 26 | try { if (typeof(Clipperz.PM.DataModel.User) == 'undefined') { throw ""; }} catch (e) { |
30 | throw "Clipperz.PM.DataModel.User.Header.RecordIndex depends on Clipperz.PM.DataModel.User!"; | 27 | throw "Clipperz.PM.DataModel.User.Header.RecordIndex depends on Clipperz.PM.DataModel.User!"; |
31 | } | 28 | } |
32 | 29 | ||
33 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } | 30 | if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.DataModel.User.Header = {}; } |
34 | 31 | ||
35 | Clipperz.PM.DataModel.User.Header.RecordIndex = function(args) { | 32 | Clipperz.PM.DataModel.User.Header.RecordIndex = function(args) { |
36 | Clipperz.PM.DataModel.User.Header.RecordIndex.superclass.constructor.apply(this, arguments); | 33 | Clipperz.PM.DataModel.User.Header.RecordIndex.superclass.constructor.apply(this, arguments); |
37 | 34 | ||
38 | //console.log("NEW Clipperz.PM.DataModel.User.Header.RecordIndex", args); | 35 | //console.log("NEW Clipperz.PM.DataModel.User.Header.RecordIndex", args); |
39 | this._recordsData = new Clipperz.PM.DataModel.EncryptedRemoteObject({ | 36 | this._recordsData = new Clipperz.PM.DataModel.EncryptedRemoteObject({ |
40 | 'name':'recordsData', | 37 | 'name':'recordsData', |
41 | 'retrieveKeyFunction': args.retrieveKeyFunction, | 38 | 'retrieveKeyFunction': args.retrieveKeyFunction, |
42 | 'remoteData': { | 39 | 'remoteData': { |
43 | 'data': args.recordsData['data'], | 40 | 'data': args.recordsData['data'], |
44 | 'version': args.encryptedDataVersion, | 41 | 'version': args.encryptedDataVersion, |
45 | 'recordsStats': args.recordsStats | 42 | 'recordsStats': args.recordsStats |
46 | }//, | 43 | }//, |
47 | // 'encryptedDataKeypath': 'data', | 44 | // 'encryptedDataKeypath': 'data', |
48 | // 'encryptedVersionKeypath': 'version' | 45 | // 'encryptedVersionKeypath': 'version' |
49 | }); | 46 | }); |
50 | 47 | ||
51 | this._directLoginsData = new Clipperz.PM.DataModel.EncryptedRemoteObject({ | 48 | this._directLoginsData = new Clipperz.PM.DataModel.EncryptedRemoteObject({ |
52 | 'name':'directLoginsData', | 49 | 'name':'directLoginsData', |
53 | 'retrieveKeyFunction': args.retrieveKeyFunction, | 50 | 'retrieveKeyFunction': args.retrieveKeyFunction, |
54 | 'remoteData': { | 51 | 'remoteData': { |
55 | 'data': args.directLoginsData['data'], | 52 | 'data': args.directLoginsData['data'], |
56 | 'version': args.encryptedDataVersion | 53 | 'version': args.encryptedDataVersion |
57 | }//, | 54 | }//, |
58 | // 'encryptedDataKeypath': 'data', | 55 | // 'encryptedDataKeypath': 'data', |
59 | // 'encryptedVersionKeypath': 'version' | 56 | // 'encryptedVersionKeypath': 'version' |
60 | }); | 57 | }); |
61 | 58 | ||
62 | this._lock = new MochiKit.Async.DeferredLock(); | 59 | this._lock = new MochiKit.Async.DeferredLock(); |
63 | this._transientState = null; | 60 | this._transientState = null; |
64 | 61 | ||
65 | this._retrieveRecordDetailFunction = args.retrieveRecordDetailFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); | 62 | this._retrieveRecordDetailFunction = args.retrieveRecordDetailFunction|| Clipperz.Base.exception.raise('MandatoryParameter'); |
66 | this._recordsIndex = args.recordsData['index'] || Clipperz.Base.exception.raise('MandatoryParameter'); | 63 | this._recordsIndex = args.recordsData['index'] || Clipperz.Base.exception.raise('MandatoryParameter'); |
67 | this._directLoginsIndex = args.directLoginsData['index']|| Clipperz.Base.exception.raise('MandatoryParameter'); | 64 | this._directLoginsIndex = args.directLoginsData['index']|| Clipperz.Base.exception.raise('MandatoryParameter'); |
68 | 65 | ||
69 | this._records = null; | 66 | this._records = null; |
70 | 67 | ||
71 | return this; | 68 | return this; |
72 | } | 69 | } |
73 | 70 | ||
74 | 71 | ||
75 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.RecordIndex, Object, { | 72 | Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.RecordIndex, Object, { |
76 | 73 | ||
77 | 'toString': function() { | 74 | 'toString': function() { |
78 | return "Clipperz.PM.DataModel.User.Header.RecordIndex"; | 75 | return "Clipperz.PM.DataModel.User.Header.RecordIndex"; |
79 | }, | 76 | }, |
80 | 77 | ||
81 | //------------------------------------------------------------------------- | 78 | //------------------------------------------------------------------------- |
82 | 79 | ||
83 | 'retrieveRecordDetailFunction': function () { | 80 | 'retrieveRecordDetailFunction': function () { |
84 | return this._retrieveRecordDetailFunction; | 81 | return this._retrieveRecordDetailFunction; |
85 | }, | 82 | }, |
86 | 83 | ||
87 | //------------------------------------------------------------------------- | 84 | //------------------------------------------------------------------------- |
88 | 85 | ||
89 | 'recordsIndex': function () { | 86 | 'recordsIndex': function () { |
90 | return this._recordsIndex; | 87 | return this._recordsIndex; |
91 | }, | 88 | }, |
92 | 89 | ||
93 | 'recordsData': function () { | 90 | 'recordsData': function () { |
94 | return this._recordsData; | 91 | return this._recordsData; |
95 | }, | 92 | }, |
96 | 93 | ||
97 | //------------------------------------------------------------------------- | 94 | //------------------------------------------------------------------------- |
98 | 95 | ||
99 | 'directLoginsIndex': function () { | 96 | 'directLoginsIndex': function () { |
100 | return this._directLoginsIndex; | 97 | return this._directLoginsIndex; |
101 | }, | 98 | }, |
102 | 99 | ||
103 | 'directLoginsData': function () { | 100 | 'directLoginsData': function () { |
104 | return this._directLoginsData; | 101 | return this._directLoginsData; |
105 | }, | 102 | }, |
106 | 103 | ||
107 | //------------------------------------------------------------------------- | 104 | //------------------------------------------------------------------------- |
108 | 105 | ||
109 | 'lock': function () { | 106 | 'lock': function () { |
110 | return this._lock; | 107 | return this._lock; |
111 | }, | 108 | }, |
112 | 109 | ||
113 | //------------------------------------------------------------------------- | 110 | //------------------------------------------------------------------------- |
114 | 111 | ||
115 | 'transientState': function () { | 112 | 'transientState': function () { |
116 | if (this._transientState == null) { | 113 | if (this._transientState == null) { |
117 | this._transientState = new Clipperz.KeyValueObjectStore(/*{'name':'User.Header.RecordIndex.transientState [1]'}*/); | 114 | this._transientState = new Clipperz.KeyValueObjectStore(/*{'name':'User.Header.RecordIndex.transientState [1]'}*/); |
118 | } | 115 | } |
119 | 116 | ||
120 | return this._transientState; | 117 | return this._transientState; |
diff --git a/frontend/gamma/js/Clipperz/PM/DataModel/User.js b/frontend/gamma/js/Clipperz/PM/DataModel/User.js index e8afa97..72d4006 100644 --- a/frontend/gamma/js/Clipperz/PM/DataModel/User.js +++ b/frontend/gamma/js/Clipperz/PM/DataModel/User.js | |||
@@ -1,120 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2011 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz's Javascript Crypto Library. | 5 | This file is part of Clipperz Community Edition. |
6 | Javascript Crypto Library provides web developers with an extensive | 6 | Clipperz Community Edition is an online password manager. |
7 | and efficient set of cryptographic functions. The library aims to | ||
8 | obtain maximum execution speed while preserving modularity and | ||
9 | reusability. | ||
10 | For further information about its features and functionalities please | 7 | For further information about its features and functionalities please |
11 | refer to http://www.clipperz.com | 8 | refer to http://www.clipperz.com. |
12 | 9 | ||
13 | * Javascript Crypto Library is free software: you can redistribute | 10 | * Clipperz Community Edition is free software: you can redistribute |
14 | it and/or modify it under the terms of the GNU Affero General Public | 11 | it and/or modify it under the terms of the GNU Affero General Public |
15 | License as published by the Free Software Foundation, either version | 12 | License as published by the Free Software Foundation, either version |
16 | 3 of the License, or (at your option) any later version. | 13 | 3 of the License, or (at your option) any later version. |
17 | 14 | ||
18 | * Javascript Crypto Library is distributed in the hope that it will | 15 | * Clipperz Community Edition is distributed in the hope that it will |
19 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 16 | be useful, but WITHOUT ANY WARRANTY; without even the implied |
20 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
21 | See the GNU Affero General Public License for more details. | 18 | See the GNU Affero General Public License for more details. |
22 | 19 | ||
23 | * You should have received a copy of the GNU Affero General Public | 20 | * You should have received a copy of the GNU Affero General Public |
24 | License along with Javascript Crypto Library. If not, see | 21 | License along with Clipperz Community Edition. If not, see |
25 | <http://www.gnu.org/licenses/>. | 22 | <http://www.gnu.org/licenses/>. |
26 | 23 | ||
27 | */ | 24 | */ |
28 | 25 | ||
29 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
30 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
31 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
32 | 29 | ||
33 | 30 | ||
34 | //############################################################################# | 31 | //############################################################################# |
35 | 32 | ||
36 | Clipperz.PM.DataModel.User = function (args) { | 33 | Clipperz.PM.DataModel.User = function (args) { |
37 | args = args || {}; | 34 | args = args || {}; |
38 | 35 | ||
39 | Clipperz.PM.DataModel.User.superclass.constructor.apply(this, arguments); | 36 | Clipperz.PM.DataModel.User.superclass.constructor.apply(this, arguments); |
40 | 37 | ||
41 | this._username = args.username || null; | 38 | this._username = args.username || null; |
42 | this._getPassphraseFunction = args.getPassphraseFunction || null; | 39 | this._getPassphraseFunction = args.getPassphraseFunction || null; |
43 | 40 | ||
44 | this._data = null; | 41 | this._data = null; |
45 | 42 | ||
46 | this._connection = null; | 43 | this._connection = null; |
47 | this._connectionVersion = 'current'; | 44 | this._connectionVersion = 'current'; |
48 | 45 | ||
49 | this._serverData = null; | 46 | this._serverData = null; |
50 | this._serverLockValue = null; | 47 | this._serverLockValue = null; |
51 | this._transientState = null; | 48 | this._transientState = null; |
52 | 49 | ||
53 | this._deferredLocks = { | 50 | this._deferredLocks = { |
54 | 'passphrase': new MochiKit.Async.DeferredLock(), | 51 | 'passphrase': new MochiKit.Async.DeferredLock(), |
55 | 'serverData': new MochiKit.Async.DeferredLock(), | 52 | 'serverData': new MochiKit.Async.DeferredLock(), |
56 | // 'recordsIndex': new MochiKit.Async.DeferredLock(), | 53 | // 'recordsIndex': new MochiKit.Async.DeferredLock(), |
57 | // 'directLoginsIndex':new MochiKit.Async.DeferredLock() | 54 | // 'directLoginsIndex':new MochiKit.Async.DeferredLock() |
58 | // 'preferences': new MochiKit.Async.DeferredLock() | 55 | // 'preferences': new MochiKit.Async.DeferredLock() |
59 | // 'oneTimePasswords': new MochiKit.Async.DeferredLock() | 56 | // 'oneTimePasswords': new MochiKit.Async.DeferredLock() |
60 | '__syntaxFix__': 'syntax fix' | 57 | '__syntaxFix__': 'syntax fix' |
61 | }; | 58 | }; |
62 | 59 | ||
63 | return this; | 60 | return this; |
64 | } | 61 | } |
65 | 62 | ||
66 | Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { | 63 | Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, { |
67 | 64 | ||
68 | 'toString': function () { | 65 | 'toString': function () { |
69 | return "Clipperz.PM.DataModel.User - " + this.username(); | 66 | return "Clipperz.PM.DataModel.User - " + this.username(); |
70 | }, | 67 | }, |
71 | 68 | ||
72 | //------------------------------------------------------------------------- | 69 | //------------------------------------------------------------------------- |
73 | 70 | ||
74 | 'username': function () { | 71 | 'username': function () { |
75 | return this._username; | 72 | return this._username; |
76 | }, | 73 | }, |
77 | 74 | ||
78 | 'setUsername': function (aValue) { | 75 | 'setUsername': function (aValue) { |
79 | this._username = aValue; | 76 | this._username = aValue; |
80 | }, | 77 | }, |
81 | 78 | ||
82 | //------------------------------------------------------------------------- | 79 | //------------------------------------------------------------------------- |
83 | 80 | ||
84 | 'displayName': function() { | 81 | 'displayName': function() { |
85 | return "" + this.username() + ""; | 82 | return "" + this.username() + ""; |
86 | }, | 83 | }, |
87 | 84 | ||
88 | //------------------------------------------------------------------------- | 85 | //------------------------------------------------------------------------- |
89 | 86 | ||
90 | 'data': function () { | 87 | 'data': function () { |
91 | if (this._data == null) { | 88 | if (this._data == null) { |
92 | this._data = new Clipperz.KeyValueObjectStore(/*{'name':'User.data [1]'}*/); | 89 | this._data = new Clipperz.KeyValueObjectStore(/*{'name':'User.data [1]'}*/); |
93 | }; | 90 | }; |
94 | 91 | ||
95 | return this._data; | 92 | return this._data; |
96 | }, | 93 | }, |
97 | 94 | ||
98 | //------------------------------------------------------------------------- | 95 | //------------------------------------------------------------------------- |
99 | 96 | ||
100 | 'serverLockValue': function () { | 97 | 'serverLockValue': function () { |
101 | return this._serverLockValue; | 98 | return this._serverLockValue; |
102 | }, | 99 | }, |
103 | 100 | ||
104 | 'setServerLockValue': function (aValue) { | 101 | 'setServerLockValue': function (aValue) { |
105 | this._serverLockValue = aValue; | 102 | this._serverLockValue = aValue; |
106 | }, | 103 | }, |
107 | 104 | ||
108 | //------------------------------------------------------------------------- | 105 | //------------------------------------------------------------------------- |
109 | 106 | ||
110 | 'transientState': function () { | 107 | 'transientState': function () { |
111 | if (this._transientState == null) { | 108 | if (this._transientState == null) { |
112 | this._transientState = {} | 109 | this._transientState = {} |
113 | } | 110 | } |
114 | 111 | ||
115 | return this._transientState; | 112 | return this._transientState; |
116 | }, | 113 | }, |
117 | 114 | ||
118 | 'resetTransientState': function (isCommitting) { | 115 | 'resetTransientState': function (isCommitting) { |
119 | this._transientState = null; | 116 | this._transientState = null; |
120 | }, | 117 | }, |