Set<Id> permissionSetIds = new Set<Id>();
for (PermissionSetAssignment psa : [SELECT PermissionSetId
FROM PermissionSetAssignment
WHERE AssigneeId = :currentUser.Id]) {
permissionSetIds.add(psa.PermissionSetId);
}
Set<Id> accessibleOrgWideAddressIds = new Set<Id>();
for (SetupEntityAccess sea :
[SELECT SetupEntityId
FROM SetupEntityAccess
WHERE ParentId IN :permissionSetIds
AND SetupEntityType = 'OrgWideEmailAddress']) {
accessibleOrgWideAddressIds.add(sea.SetupEntityId);
}
Then query [SELECT Address, DisplayName
FROM OrgWideEmailAddress
WHERE Id IN :accessibleOrgWideAddressIds)]