Я создаю DAL для приложения создания отчетов на основе виджетов, оно было разработано таким образом, чтобы пользователи выбирали, настраивали и развертывали «виджеты» отчетов на своих домашних экранах.Виджеты могут создавать отчеты по различным видам данных компании - сайтам, брендам, сотрудникам и т. Д.
Хотя все пользователи могут получать доступ ко всем виджетам / отчетам, все пользователи не имеют прав доступа ко всем данным.Если я работаю в Компании-A, я не могу просматривать отчеты о продажах для Компании-B или данные о посещаемости персонала для продавца в Компании-C, однако я могу настроить такой отчет и добавить его на свою панель инструментов.'.
Во время выполнения промежуточный класс DataService выполняет проверку учетных данных пользователя и, если доступ разрешен, возвращает клиенту соответствующую коллекцию объектов.
На начальном этапеbuild Я только что возвратил пустой список, если доступ к данным не был разрешен, но это также то, что я делаю, если отчет не возвращает никаких данных (что может произойти).Я хотел бы показать сообщение «Отказано в доступе» на внешнем интерфейсе, если пользователь не авторизован для просмотра данных, но, очевидно, если все, что я получаю в любом случае, является пустой коллекцией, невозможно узнать, было ли это из-занедостаточно прав или просто нет данных.
Я был бы благодарен, если бы вы могли предложить способ кодирования вокруг этого, моей первой мыслью было перенести проверку учетных данных в другой объект, который, в свою очередь, вызывает класс доступа к данным.но временные ограничения означают, что это не вариант.
Единственное, что я могу придумать, что идет вразрез со всем, что я когда-либо изучал, - это создать специальное исключение, например, достаточное для применения в приложениях, если доступ не предоставлен,но это плохо пахнет.
Спасибо за чтение.