replaceRole method
Implementation
Future<int> replaceRole(String role, String replacement) async {
final replacedPersistently = await service?.replaceRole(role, replacement);
final entries = _users.entries
.where((entry) => entry.value.roles.contains(role))
.toList(growable: false);
for (final entry in entries) {
final fingerprint = entry.value.fingerprint;
if (replacedPersistently != true && fingerprint != null) {
final updatedRoles = {...entry.value.roles, replacement}..remove(role);
await service?.updateUser(fingerprint, roles: updatedRoles);
}
_users[entry.key] = entry.value.copyWith(
roles: {...entry.value.roles, replacement}..remove(role),
);
}
return entries.length;
}