using System.Threading.Tasks;
using API.Constants;
using API.Entities;
using Microsoft.AspNetCore.Identity;
namespace API.Data;
///
/// New role introduced in v0.5.1. Adds the role to all users.
///
public static class MigrateChangePasswordRoles
{
///
/// Will not run if any users have the ChangePassword role already
///
///
///
public static async Task Migrate(IUnitOfWork unitOfWork, UserManager userManager)
{
var usersWithRole = await userManager.GetUsersInRoleAsync(PolicyConstants.ChangePasswordRole);
if (usersWithRole.Count != 0) return;
var allUsers = await unitOfWork.UserRepository.GetAllUsers();
foreach (var user in allUsers)
{
await userManager.RemoveFromRoleAsync(user, "ChangePassword");
await userManager.AddToRoleAsync(user, PolicyConstants.ChangePasswordRole);
}
}
}