mirror of
https://github.com/bitwarden/server
synced 2025-12-20 10:13:39 +00:00
Add queries, rename seed to scene
This commit is contained in:
33
util/Seeder/Queries/EmergencyAccessInviteQuery.cs
Normal file
33
util/Seeder/Queries/EmergencyAccessInviteQuery.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Bit.Core.Auth.Enums;
|
||||
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>
|
||||
{
|
||||
public class Request
|
||||
{
|
||||
[Required]
|
||||
public required string Email { get; set; }
|
||||
}
|
||||
|
||||
public object 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user