1
0
mirror of https://github.com/bitwarden/server synced 2025-12-20 02:03:46 +00:00

implement claude suggestions

This commit is contained in:
jaasen-livefront
2025-12-03 15:41:56 -08:00
parent c0a7a1171a
commit e0daeb3518
6 changed files with 38 additions and 8 deletions

View File

@@ -220,6 +220,8 @@ public static class BulkResourceCreationService
ciphersTable.Columns.Add(deletedDateColumn); ciphersTable.Columns.Add(deletedDateColumn);
var archivedDateColumn = new DataColumn(nameof(c.ArchivedDate), typeof(DateTime)); var archivedDateColumn = new DataColumn(nameof(c.ArchivedDate), typeof(DateTime));
ciphersTable.Columns.Add(archivedDateColumn); ciphersTable.Columns.Add(archivedDateColumn);
var archivesColumn = new DataColumn(nameof(c.Archives), typeof(string));
ciphersTable.Columns.Add(archivesColumn);
var repromptColumn = new DataColumn(nameof(c.Reprompt), typeof(short)); var repromptColumn = new DataColumn(nameof(c.Reprompt), typeof(short));
ciphersTable.Columns.Add(repromptColumn); ciphersTable.Columns.Add(repromptColumn);
var keyColummn = new DataColumn(nameof(c.Key), typeof(string)); var keyColummn = new DataColumn(nameof(c.Key), typeof(string));
@@ -250,6 +252,7 @@ public static class BulkResourceCreationService
row[revisionDateColumn] = cipher.RevisionDate; row[revisionDateColumn] = cipher.RevisionDate;
row[deletedDateColumn] = cipher.DeletedDate.HasValue ? (object)cipher.DeletedDate : DBNull.Value; row[deletedDateColumn] = cipher.DeletedDate.HasValue ? (object)cipher.DeletedDate : DBNull.Value;
row[archivedDateColumn] = cipher.ArchivedDate.HasValue ? cipher.ArchivedDate : DBNull.Value; row[archivedDateColumn] = cipher.ArchivedDate.HasValue ? cipher.ArchivedDate : DBNull.Value;
row[archivesColumn] = cipher.Archives;
row[repromptColumn] = cipher.Reprompt.HasValue ? cipher.Reprompt.Value : DBNull.Value; row[repromptColumn] = cipher.Reprompt.HasValue ? cipher.Reprompt.Value : DBNull.Value;
row[keyColummn] = cipher.Key; row[keyColummn] = cipher.Key;

View File

@@ -72,7 +72,8 @@ public class UserCipherDetailsQuery : IQuery<CipherDetails>
OrganizationUseTotp = o.UseTotp, OrganizationUseTotp = o.UseTotp,
c.Reprompt, c.Reprompt,
c.Key, c.Key,
c.ArchivedDate c.ArchivedDate,
c.Archives
}; };
var query2 = from c in dbContext.Ciphers var query2 = from c in dbContext.Ciphers
@@ -96,7 +97,8 @@ public class UserCipherDetailsQuery : IQuery<CipherDetails>
OrganizationUseTotp = false, OrganizationUseTotp = false,
c.Reprompt, c.Reprompt,
c.Key, c.Key,
c.ArchivedDate c.ArchivedDate,
c.Archives
}; };
var union = query.Union(query2).Select(c => new CipherDetails var union = query.Union(query2).Select(c => new CipherDetails
@@ -118,7 +120,8 @@ public class UserCipherDetailsQuery : IQuery<CipherDetails>
Manage = c.Manage, Manage = c.Manage,
OrganizationUseTotp = c.OrganizationUseTotp, OrganizationUseTotp = c.OrganizationUseTotp,
Key = c.Key, Key = c.Key,
ArchivedDate = c.ArchivedDate ArchivedDate = c.ArchivedDate,
Archives = c.Archives
}); });
return union; return union;
} }

View File

@@ -808,7 +808,31 @@ public class CipherRepository : Repository<Core.Vault.Entities.Cipher, Cipher, G
await cipherEntitiesToModify.ForEachAsync(cipher => await cipherEntitiesToModify.ForEachAsync(cipher =>
{ {
dbContext.Attach(cipher); dbContext.Attach(cipher);
cipher.ArchivedDate = action == CipherStateAction.Unarchive ? null : utcNow;
Dictionary<Guid, DateTime> archives;
if (string.IsNullOrWhiteSpace(cipher.Archives))
{
archives = new Dictionary<Guid, DateTime>();
}
else
{
archives = JsonSerializer.Deserialize<Dictionary<Guid, DateTime>>(cipher.Archives)
?? new Dictionary<Guid, DateTime>();
}
if (action == CipherStateAction.Unarchive)
{
archives.Remove(userId);
}
else if (action == CipherStateAction.Archive)
{
archives[userId] = utcNow;
}
cipher.Archives = archives.Count == 0
? null
: JsonSerializer.Serialize(archives);
cipher.RevisionDate = utcNow; cipher.RevisionDate = utcNow;
}); });

View File

@@ -28,7 +28,7 @@ BEGIN
SET SET
[Archives] = JSON_MODIFY( [Archives] = JSON_MODIFY(
COALESCE([Archives], N'{}'), COALESCE([Archives], N'{}'),
'$."' + CONVERT(NVARCHAR(36), @UserId) + '"', CONCAT('$."', CONVERT(NVARCHAR(36), @UserId), '"'),
CONVERT(NVARCHAR(30), @UtcNow, 127) CONVERT(NVARCHAR(30), @UtcNow, 127)
), ),
[RevisionDate] = @UtcNow [RevisionDate] = @UtcNow

View File

@@ -28,7 +28,7 @@ BEGIN
SET SET
[Archives] = JSON_MODIFY( [Archives] = JSON_MODIFY(
COALESCE([Archives], N'{}'), COALESCE([Archives], N'{}'),
'$."' + CONVERT(NVARCHAR(36), @UserId) + '"', CONCAT('$."', CONVERT(NVARCHAR(36), @UserId), '"'),
NULL NULL
), ),
[RevisionDate] = @UtcNow [RevisionDate] = @UtcNow

View File

@@ -197,7 +197,7 @@ BEGIN
SET SET
[Archives] = JSON_MODIFY( [Archives] = JSON_MODIFY(
COALESCE([Archives], N'{}'), COALESCE([Archives], N'{}'),
'$."' + CONVERT(NVARCHAR(36), @UserId) + '"', CONCAT('$."', CONVERT(NVARCHAR(36), @UserId), '"'),
CONVERT(NVARCHAR(30), @UtcNow, 127) CONVERT(NVARCHAR(30), @UtcNow, 127)
), ),
[RevisionDate] = @UtcNow [RevisionDate] = @UtcNow
@@ -248,7 +248,7 @@ BEGIN
SET SET
[Archives] = JSON_MODIFY( [Archives] = JSON_MODIFY(
COALESCE([Archives], N'{}'), COALESCE([Archives], N'{}'),
'$."' + CONVERT(NVARCHAR(36), @UserId) + '"', CONCAT('$."', CONVERT(NVARCHAR(36), @UserId), '"'),
NULL NULL
), ),
[RevisionDate] = @UtcNow [RevisionDate] = @UtcNow