1
0
mirror of https://github.com/bitwarden/server synced 2025-12-13 14:53:34 +00:00
Files
server/util/Seeder/Queries/EmergencyAccessInviteQuery.cs
Matt Gibson 878b78b51e Stricter scene and query types
SeederAPI only serves Scenes, Recipes are inteded to be used locally only.
2025-10-29 12:27:15 -07:00

33 lines
1.0 KiB
C#

using System.ComponentModel.DataAnnotations;
using Bit.Core.Auth.Models.Business.Tokenables;
using Bit.Core.Tokens;
using Bit.Infrastructure.EntityFramework.Repositories;
namespace Bit.Seeder.Queries;
public class EmergencyAccessInviteQuery(
DatabaseContext db,
IDataProtectorTokenFactory<EmergencyAccessInviteTokenable> dataProtectorTokenizer)
: IQuery<EmergencyAccessInviteQuery.Request, IEnumerable<string>>
{
public class Request
{
[Required]
public required string Email { get; set; }
}
public IEnumerable<string> Execute(Request request)
{
var invites = db.EmergencyAccesses
.Where(ea => ea.Email == request.Email).ToList().Select(ea =>
{
var token = dataProtectorTokenizer.Protect(
new EmergencyAccessInviteTokenable(ea, hoursTillExpiration: 1)
);
return $"/accept-emergency?id={ea.Id}&name=Dummy&email={ea.Email}&token={token}";
});
return invites;
}
}