mirror of
https://github.com/bitwarden/server
synced 2026-01-06 10:34:01 +00:00
[PM-14406] Security Task Notifications (#5344)
* initial commit of `CipherOrganizationPermission_GetManyByUserId` * create queries to get all of the security tasks that are actionable by a user - A task is "actionable" when the user has manage permissions for that cipher * rename query * return the user's email from the query as well * Add email notification for at-risk passwords - Added email layouts for security tasks * add push notification for security tasks * update entity framework to match stored procedure plus testing * update date of migration and remove orderby * add push service to security task controller * rename `SyncSecurityTasksCreated` to `SyncNotification` * remove duplicate return * remove unused directive * remove unneeded new notification type * use `createNotificationCommand` to alert all platforms * return the cipher id that is associated with the security task and store the security task id on the notification entry * Add `TaskId` to the output model of `GetUserSecurityTasksByCipherIdsAsync` * move notification logic to command * use TaskId from `_getSecurityTasksNotificationDetailsQuery` * add service * only push last notification for each user * formatting * refactor `CreateNotificationCommand` parameter to `sendPush` * flip boolean in test * update interface to match usage * do not push any of the security related notifications to the user * add `PendingSecurityTasks` push type * add push notification for pending security tasks
This commit is contained in:
23
src/Core/Vault/Models/Data/UserCipherForTask.cs
Normal file
23
src/Core/Vault/Models/Data/UserCipherForTask.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
namespace Bit.Core.Vault.Models.Data;
|
||||
|
||||
/// <summary>
|
||||
/// Minimal data model that represents a User and the associated cipher for a security task.
|
||||
/// Only to be used for query responses. For full data model, <see cref="UserSecurityTaskCipher"/>.
|
||||
/// </summary>
|
||||
public class UserCipherForTask
|
||||
{
|
||||
/// <summary>
|
||||
/// The user's Id.
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The user's email.
|
||||
/// </summary>
|
||||
public string Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The cipher Id of the security task.
|
||||
/// </summary>
|
||||
public Guid CipherId { get; set; }
|
||||
}
|
||||
27
src/Core/Vault/Models/Data/UserSecurityTaskCipher.cs
Normal file
27
src/Core/Vault/Models/Data/UserSecurityTaskCipher.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
namespace Bit.Core.Vault.Models.Data;
|
||||
|
||||
/// <summary>
|
||||
/// Data model that represents a User and the associated cipher for a security task.
|
||||
/// </summary>
|
||||
public class UserSecurityTaskCipher
|
||||
{
|
||||
/// <summary>
|
||||
/// The user's Id.
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The user's email.
|
||||
/// </summary>
|
||||
public string Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The cipher Id of the security task.
|
||||
/// </summary>
|
||||
public Guid CipherId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The Id of the security task.
|
||||
/// </summary>
|
||||
public Guid TaskId { get; set; }
|
||||
}
|
||||
22
src/Core/Vault/Models/Data/UserSecurityTasksCount.cs
Normal file
22
src/Core/Vault/Models/Data/UserSecurityTasksCount.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
namespace Bit.Core.Vault.Models.Data;
|
||||
|
||||
/// <summary>
|
||||
/// Data model that represents a User and the amount of actionable security tasks.
|
||||
/// </summary>
|
||||
public class UserSecurityTasksCount
|
||||
{
|
||||
/// <summary>
|
||||
/// The user's Id.
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The user's email.
|
||||
/// </summary>
|
||||
public string Email { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The number of actionable security tasks for the respective users.
|
||||
/// </summary>
|
||||
public int TaskCount { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user