Diffstat (limited to 'frontend/beta/js/Clipperz/PM/DataModel/User.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/beta/js/Clipperz/PM/DataModel/User.js | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/beta/js/Clipperz/PM/DataModel/User.js b/frontend/beta/js/Clipperz/PM/DataModel/User.js index b29d224..3067742 100644 --- a/frontend/beta/js/Clipperz/PM/DataModel/User.js +++ b/frontend/beta/js/Clipperz/PM/DataModel/User.js | |||
@@ -1,150 +1,148 @@ | |||
1 | /* | 1 | /* |
2 | 2 | ||
3 | Copyright 2008-2011 Clipperz Srl | 3 | Copyright 2008-2013 Clipperz Srl |
4 | 4 | ||
5 | This file is part of Clipperz Community Edition. | 5 | This file is part of Clipperz, the online password manager. |
6 | Clipperz Community Edition is an online password manager. | ||
7 | For further information about its features and functionalities please | 6 | For further information about its features and functionalities please |
8 | refer to http://www.clipperz.com. | 7 | refer to http://www.clipperz.com. |
9 | 8 | ||
10 | * Clipperz Community Edition is free software: you can redistribute | 9 | * Clipperz is free software: you can redistribute it and/or modify it |
11 | it and/or modify it under the terms of the GNU Affero General Public | 10 | under the terms of the GNU Affero General Public License as published |
12 | License as published by the Free Software Foundation, either version | 11 | by the Free Software Foundation, either version 3 of the License, or |
13 | 3 of the License, or (at your option) any later version. | 12 | (at your option) any later version. |
14 | 13 | ||
15 | * Clipperz Community Edition is distributed in the hope that it will | 14 | * Clipperz is distributed in the hope that it will be useful, but |
16 | be useful, but WITHOUT ANY WARRANTY; without even the implied | 15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. | 17 | See the GNU Affero General Public License for more details. |
19 | 18 | ||
20 | * You should have received a copy of the GNU Affero General Public | 19 | * You should have received a copy of the GNU Affero General Public |
21 | License along with Clipperz Community Edition. If not, see | 20 | License along with Clipperz. If not, see http://www.gnu.org/licenses/. |
22 | <http://www.gnu.org/licenses/>. | ||
23 | 21 | ||
24 | */ | 22 | */ |
25 | 23 | ||
26 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } | 24 | if (typeof(Clipperz) == 'undefined') { Clipperz = {}; } |
27 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } | 25 | if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; } |
28 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } | 26 | if (typeof(Clipperz.PM.DataModel) == 'undefined') { Clipperz.PM.DataModel = {}; } |
29 | 27 | ||
30 | 28 | ||
31 | //############################################################################# | 29 | //############################################################################# |
32 | 30 | ||
33 | Clipperz.PM.DataModel.User = function(args) { | 31 | Clipperz.PM.DataModel.User = function(args) { |
34 | //MochiKit.Logging.logDebug(">>> new User"); | 32 | //MochiKit.Logging.logDebug(">>> new User"); |
35 | args = args || {}; | 33 | args = args || {}; |
36 | 34 | ||
37 | this._username = args.username || null; | 35 | this._username = args.username || null; |
38 | this._passphrase = args.passphrase || null; | 36 | this._passphrase = args.passphrase || null; |
39 | 37 | ||
40 | this._connection = null; | 38 | this._connection = null; |
41 | this._connectionVersion = 'current'; | 39 | this._connectionVersion = 'current'; |
42 | 40 | ||
43 | this._header = null; | 41 | this._header = null; |
44 | this._statistics = null; | 42 | this._statistics = null; |
45 | this._lock = 'new lock'; | 43 | this._lock = 'new lock'; |
46 | 44 | ||
47 | this._preferences = null; | 45 | this._preferences = null; |
48 | this._records = {}; | 46 | this._records = {}; |
49 | this._directLoginReferences = {}; | 47 | this._directLoginReferences = {}; |
50 | this._oneTimePasswordManager = null; | 48 | this._oneTimePasswordManager = null; |
51 | 49 | ||
52 | this._isLoadingUserDetails = false; | 50 | this._isLoadingUserDetails = false; |
53 | this._loadingUserDetailsPendingQueue = []; | 51 | this._loadingUserDetailsPendingQueue = []; |
54 | 52 | ||
55 | this._maxNumberOfRecords = Number.MAX_VALUE; | 53 | this._maxNumberOfRecords = Number.MAX_VALUE; |
56 | 54 | ||
57 | this._shouldDownloadOfflineCopy = false; | 55 | this._shouldDownloadOfflineCopy = false; |
58 | 56 | ||
59 | this._loginInfo = null; | 57 | this._loginInfo = null; |
60 | this._loginHistory = null; | 58 | this._loginHistory = null; |
61 | 59 | ||
62 | this._serverData = null; | 60 | this._serverData = null; |
63 | //MochiKit.Logging.logDebug("<<< new User"); | 61 | //MochiKit.Logging.logDebug("<<< new User"); |
64 | 62 | ||
65 | return this; | 63 | return this; |
66 | } | 64 | } |
67 | 65 | ||
68 | Clipperz.PM.DataModel.User.prototype = MochiKit.Base.update(null, { | 66 | Clipperz.PM.DataModel.User.prototype = MochiKit.Base.update(null, { |
69 | 67 | ||
70 | 'toString': function() { | 68 | 'toString': function() { |
71 | return "Clipperz.PM.DataModel.User - " + this.username(); | 69 | return "Clipperz.PM.DataModel.User - " + this.username(); |
72 | }, | 70 | }, |
73 | 71 | ||
74 | //------------------------------------------------------------------------- | 72 | //------------------------------------------------------------------------- |
75 | 73 | ||
76 | 'username': function() { | 74 | 'username': function() { |
77 | return this._username; | 75 | return this._username; |
78 | }, | 76 | }, |
79 | 77 | ||
80 | 'setUsername': function(aValue) { | 78 | 'setUsername': function(aValue) { |
81 | this._username = aValue; | 79 | this._username = aValue; |
82 | }, | 80 | }, |
83 | 81 | ||
84 | //------------------------------------------------------------------------- | 82 | //------------------------------------------------------------------------- |
85 | 83 | ||
86 | 'passphrase': function() { | 84 | 'passphrase': function() { |
87 | return this._passphrase; | 85 | return this._passphrase; |
88 | }, | 86 | }, |
89 | 87 | ||
90 | 'setPassphrase': function(aValue) { | 88 | 'setPassphrase': function(aValue) { |
91 | this._passphrase = aValue; | 89 | this._passphrase = aValue; |
92 | }, | 90 | }, |
93 | 91 | ||
94 | //------------------------------------------------------------------------- | 92 | //------------------------------------------------------------------------- |
95 | 93 | ||
96 | 'maxNumberOfRecords': function() { | 94 | 'maxNumberOfRecords': function() { |
97 | return this._maxNumberOfRecords; | 95 | return this._maxNumberOfRecords; |
98 | }, | 96 | }, |
99 | 97 | ||
100 | 'setMaxNumberOfRecords': function(aValue) { | 98 | 'setMaxNumberOfRecords': function(aValue) { |
101 | this._maxNumberOfRecords = aValue; | 99 | this._maxNumberOfRecords = aValue; |
102 | }, | 100 | }, |
103 | 101 | ||
104 | //------------------------------------------------------------------------- | 102 | //------------------------------------------------------------------------- |
105 | 103 | ||
106 | 'errorHandler': function(anErrorString, anException) { | 104 | 'errorHandler': function(anErrorString, anException) { |
107 | MochiKit.Logging.logError("- User.errorHandler: " + anErrorString + " (" + anException + ")"); | 105 | MochiKit.Logging.logError("- User.errorHandler: " + anErrorString + " (" + anException + ")"); |
108 | }, | 106 | }, |
109 | 107 | ||
110 | //------------------------------------------------------------------------- | 108 | //------------------------------------------------------------------------- |
111 | 109 | ||
112 | 'connectionVersion': function() { | 110 | 'connectionVersion': function() { |
113 | return this._connectionVersion; | 111 | return this._connectionVersion; |
114 | }, | 112 | }, |
115 | 113 | ||
116 | 'setConnectionVersion': function(aValue) { | 114 | 'setConnectionVersion': function(aValue) { |
117 | this._connectionVersion = aValue; | 115 | this._connectionVersion = aValue; |
118 | }, | 116 | }, |
119 | 117 | ||
120 | //------------------------------------------------------------------------- | 118 | //------------------------------------------------------------------------- |
121 | 119 | ||
122 | 'connection': function() { | 120 | 'connection': function() { |
123 | if ((this._connection == null) && (this.connectionVersion() != null) ){ | 121 | if ((this._connection == null) && (this.connectionVersion() != null) ){ |
124 | this._connection = new Clipperz.PM.Crypto.communicationProtocol.versions[this.connectionVersion()]({user:this}); | 122 | this._connection = new Clipperz.PM.Crypto.communicationProtocol.versions[this.connectionVersion()]({user:this}); |
125 | } | 123 | } |
126 | 124 | ||
127 | return this._connection; | 125 | return this._connection; |
128 | }, | 126 | }, |
129 | 127 | ||
130 | 'resetConnection': function(aValue) { | 128 | 'resetConnection': function(aValue) { |
131 | this._connection = null; | 129 | this._connection = null; |
132 | }, | 130 | }, |
133 | 131 | ||
134 | //========================================================================= | 132 | //========================================================================= |
135 | 133 | ||
136 | 'register': function(anInvitationCode) { | 134 | 'register': function(anInvitationCode) { |
137 | vardeferredResult; | 135 | vardeferredResult; |
138 | var prng; | 136 | var prng; |
139 | 137 | ||
140 | //MochiKit.Logging.logError(">>> User.register: " + this); | 138 | //MochiKit.Logging.logError(">>> User.register: " + this); |
141 | prng = Clipperz.Crypto.PRNG.defaultRandomGenerator(); | 139 | prng = Clipperz.Crypto.PRNG.defaultRandomGenerator(); |
142 | 140 | ||
143 | deferredResult = new MochiKit.Async.Deferred() | 141 | deferredResult = new MochiKit.Async.Deferred() |
144 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 1: " + res); return res;}); | 142 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 1: " + res); return res;}); |
145 | deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection')); | 143 | deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection')); |
146 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2: " + res); return res;}); | 144 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2: " + res); return res;}); |
147 | deferredResult.addCallback(MochiKit.Base.method(this.header(), 'updateAllSections'), anInvitationCode); | 145 | deferredResult.addCallback(MochiKit.Base.method(this.header(), 'updateAllSections'), anInvitationCode); |
148 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2.1: " + res); return res;}); | 146 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 2.1: " + res); return res;}); |
149 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'register'), anInvitationCode); | 147 | deferredResult.addCallback(MochiKit.Base.method(this.connection(), 'register'), anInvitationCode); |
150 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 3: " + res); return res;}); | 148 | //deferredResult.addBoth(function(res) {MochiKit.Logging.logDebug("User.register - 3: " + res); return res;}); |