1
0
mirror of http://git.whoc.org.uk/git/password-manager.git synced 2025-10-25 17:47:34 +02:00

Implemented lock (to be reviewed)

This commit is contained in:
Dario Chiappetta
2015-09-23 10:24:49 +02:00
parent df354f1f69
commit 3891ffa476
13 changed files with 620 additions and 54 deletions

View File

@@ -35,6 +35,8 @@ Clipperz.PM.DataModel.User.Header.Legacy = function(args) {
this._records = null;
// this._directLogins = null;
Clipperz.log("Clipperz.PM.DataModel.User.Header.Legacy: Legacy header in use!");
return this;
}

View File

@@ -29,11 +29,10 @@ if (typeof(Clipperz.PM.DataModel.User.Header) == 'undefined') { Clipperz.PM.Data
Clipperz.PM.DataModel.User.Header.Preferences = function(args) {
Clipperz.PM.DataModel.User.Header.Preferences.superclass.constructor.apply(this, arguments);
return this;
}
Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Preferences, Clipperz.PM.DataModel.EncryptedRemoteObject, {
'toString': function() {
@@ -41,8 +40,42 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User.Header.Preferences, Clipperz.PM.
},
//-------------------------------------------------------------------------
'mergeDefaultPreferences': function(somePreferences) {
var result;
result = new Clipperz.KeyValueObjectStore();
result.setValues(MochiKit.Base.updatetree(
Clipperz.Base.deepClone(Clipperz.PM.DataModel.User.Header.Preferences.defaultPreferences),
somePreferences
));
return result;
},
'getPreferences': function() {
return Clipperz.Async.callbacks("User.Header.Preferences.getPreferences", [
MochiKit.Base.method(this, 'values'),
MochiKit.Base.method(this, 'mergeDefaultPreferences')
], {trace:false});
},
'getPreference': function(aKey) {
return Clipperz.Async.callbacks("User.Header.Preferences.getPreference", [
MochiKit.Base.method(this, 'getPreferences'),
MochiKit.Base.methodcaller('getValue', aKey)
], {trace:false});
},
//=========================================================================
__syntaxFix__: "syntax fix"
});
Clipperz.PM.DataModel.User.Header.Preferences.defaultPreferences = {
'lock': {
'timeoutInMinutes': 10
},
'shouldShowDonationPanel': true
};

View File

@@ -394,7 +394,9 @@ Clipperz.Base.extend(Clipperz.PM.DataModel.User, Object, {
'lock': function () {
return Clipperz.Async.callbacks("User.lock", [
MochiKit.Base.method(this, 'deleteAllCleanTextData')
MochiKit.Base.method(this.connection(), 'logout'),
MochiKit.Base.method(this, 'deleteAllCleanTextData'),
MochiKit.Base.method(this, 'setPassphraseFunction', function() {throw("No passphrase set.")})
], {trace:false});
},
@@ -906,6 +908,30 @@ console.log("Warning: User.recordWithLabel('" + aLabel + "') is returning more t
], {trace:false});
},
//-------------------------------------------------------------------------
'getPreferences': function() {
return Clipperz.Async.callbacks("User.getPreferences", [
MochiKit.Base.method(this, 'getHeaderIndex', 'preferences'),
MochiKit.Base.methodcaller('getPreferences')
], {trace:false});
},
'getPreference': function(aKey) {
return Clipperz.Async.callbacks("User.getPreference", [
MochiKit.Base.method(this, 'getHeaderIndex', 'preferences'),
MochiKit.Base.methodcaller('getPreference', aKey)
], {trace:false});
},
'setPreference': function(aKey, aValue) {
return Clipperz.Async.callbacks("User.setPreference", [
MochiKit.Base.method(this, 'getHeaderIndex', 'preferences'),
MochiKit.Base.methodcaller('setValue', aKey, aValue),
MochiKit.Base.method(this, 'saveChanges')
], {trace:false});
},
//=========================================================================
'hasPendingChanges': function () {