diff --git a/src/models/api/requestModels.js b/src/models/api/requestModels.js index 88a362ba60..4459081ebe 100644 --- a/src/models/api/requestModels.js +++ b/src/models/api/requestModels.js @@ -6,6 +6,7 @@ this.username = login.username ? login.username.encryptedString : null; this.password = login.password ? login.password.encryptedString : null; this.notes = login.notes ? login.notes.encryptedString : null; + this.totp = login.totp ? login.totp.encryptedString : null; this.favorite = login.favorite; }; diff --git a/src/models/api/responseModels.js b/src/models/api/responseModels.js index 1f64e33d8b..4813231382 100644 --- a/src/models/api/responseModels.js +++ b/src/models/api/responseModels.js @@ -4,8 +4,17 @@ var CipherResponse = function (response) { this.folderId = response.FolderId; this.type = response.Type; this.favorite = response.Favorite; + this.edit = response.Edit; + this.organizationUseTotp = response.OrganizationUseTotp; this.data = response.Data; this.revisionDate = response.RevisionDate; + + if (response.Attachments) { + this.attachments = []; + for (var i = 0; i < response.Attachments.length; i++) { + this.attachments.push(new AttachmentResponse(response.Attachments[i])); + } + } }; var FolderResponse = function (response) { @@ -18,24 +27,36 @@ var LoginResponse = function (response) { this.id = response.Id; this.organizationId = response.OrganizationId; this.folderId = response.FolderId; + this.edit = response.Edit; this.name = response.Name; this.uri = response.Uri; this.username = response.Username; this.password = response.Password; this.notes = response.Notes; + this.totp = response.Totp; this.favorite = response.Favorite; this.revisionDate = response.RevisionDate; + this.organizationUseTotp = response.OrganizationUseTotp; if (response.Folder) { this.folder = new FolderResponse(response.Folder); } + + if (response.Attachments) { + this.attachments = []; + for (var i = 0; i < response.Attachments.length; i++) { + this.attachments.push(new AttachmentResponse(response.Attachments[i])); + } + } }; var ProfileResponse = function (response) { this.id = response.Id; this.name = response.Name; this.email = response.Email; + this.emailVerified = response.EmailVerified; this.masterPasswordHint = response.MasterPasswordHint; + this.premium = response.Premium; this.culture = response.Culture; this.twoFactorEnabled = response.TwoFactorEnabled; this.key = response.Key; @@ -58,10 +79,23 @@ var KeysResponse = function (response) { var ProfileOrganizationResponse = function (response) { this.id = response.Id; this.name = response.Name; + this.useGroups = response.UseGroups; + this.useDirectory = response.UseDirectory; + this.useTotp = response.UseTotp; + this.seats = response.Seats; + this.maxCollections = response.MaxCollections; + this.maxStorageGb = response.MaxStorageGb; this.key = response.Key; this.status = response.Status; this.type = response.Type; - this.enabled = response.Enabled; +}; + +var AttachmentResponse = function (response) { + this.id = response.Id; + this.url = response.Url; + this.fileName = response.FileName; + this.size = response.Size; + this.sizeName = response.SizeName; }; var IdentityTokenResponse = function (response) { diff --git a/src/models/dataModels.js b/src/models/dataModels.js index f7d4be2364..6b834ac0fb 100644 --- a/src/models/dataModels.js +++ b/src/models/dataModels.js @@ -27,13 +27,15 @@ var LoginData = function (response, userId) { this.username = response.username; this.password = response.password; this.notes = response.notes; + this.totp = response.totp; } else if (response instanceof CipherResponse) { this.name = response.data.Name; this.uri = response.data.Uri; this.username = response.data.Username; this.password = response.data.Password; - this.notes = response.notes = response.data.Notes;; + this.notes = response.notes = response.data.Notes; + this.totp = response.notes = response.data.Totp; } else { throw 'unsupported instance'; diff --git a/src/models/domainModels.js b/src/models/domainModels.js index e27e857d19..bf134e6f89 100644 --- a/src/models/domainModels.js +++ b/src/models/domainModels.js @@ -100,6 +100,7 @@ var Login = function (obj, alreadyEncrypted) { this.username = obj.username ? obj.username : null; this.password = obj.password ? obj.password : null; this.notes = obj.notes ? obj.notes : null; + this.totp = obj.totp ? obj.totp : null; } else { this.name = obj.name ? new CipherString(obj.name) : null; @@ -107,6 +108,7 @@ var Login = function (obj, alreadyEncrypted) { this.username = obj.username ? new CipherString(obj.username) : null; this.password = obj.password ? new CipherString(obj.password) : null; this.notes = obj.notes ? new CipherString(obj.notes) : null; + this.totp = obj.totp ? new CipherString(obj.totp) : null; } }; @@ -183,6 +185,12 @@ var Folder = function (obj, alreadyEncrypted) { return null; }).then(function (val) { model.notes = val; + if (self.totp) { + return self.totp.decrypt(self.organizationId); + } + return null; + }).then(function (val) { + model.totp = val; deferred.resolve(model); });