Админки и редакторы

Иногда бывает нужно добавить к объектам Кортеос какие-то свойства - например, к персоне можно добавить информацию о предпочитаемых местах в салоне самолета или вагоне поезда. Помимо того, что в этом случае нужно расширить сам объект персоны, нам также нужно сделать пользовательский интерфейс для того, чтобы можно было этими параметрами управлять.

 

В настоящий момент можно создавать интерфейсы для следующих объектов системы:

  • персона

  • пользователь клиента

  • пользователь агента

  • организация

  • код

Данный интерфейс наследует от интерфейса IViewControllerApplicable, который определяет возможность использования этого редактора текущим пользователем.

 

Реализация интерфейса:

public interface IExtendibleJavelinObject : _Common.IViewControllerApplicable    

ActionResult RenderExtension(JavelinObject source);

Часто бывает нужно проверить возможность использования контроллера представления тем или иным пользователем, например, запретить пользователю с неадминистративными ролями доступ к административным интерфейсам.

Для этого контроллер view должен имплементировать интерфейс IViewControllerApplicable:

public interface IViewControllerApplicable : IController{          bool IsApplicable(ControllerContainer bl); }

Методы:

bool IsApplicable(ControllerContainer bl)

В имплементации данного метода необходимо возвращать true, если bl.CurrentUser должен видеть представление, за которое отвечает этот контроллер; в обратном случае пользователю доступно значение false.