Я разрабатываю приложение калитки (в настоящее время использую калитку 1.5), которое собирается получить функцию, подобную блогу. Пользователи могут публиковать материалы или отмечать определенные бизнес-объекты как общедоступные, а другие пользователи могут их комментировать. Только пользователь-владелец может редактировать эти бизнес-объекты или записи. Я знаю, что существует несколько фреймворков, предоставляющих функции скрытия/отображения или переключения панелей в зависимости от текущего пользователя, но есть ли что-нибудь, что можно использовать для этого не только на основе пользователя, но и на основе контекста? Я знаю, что мне придется предоставить свою бизнес-логику, но я бы предпочел пропустить весь повторяющийся шаблонный код, поэтому даже подход, основанный на АОП, может помочь, но, поскольку я никогда не работал с этим раньше, я не т знаю.
Изменить. Подробнее о сценарии:
В приложении любой (вошедший в систему) пользователь может вводить, скажем, рецепты, которые он может пометить как общедоступные (может быть прочитан кем угодно) или частные (может быть прочитан только им самим). Любой зарегистрированный пользователь может комментировать любой общедоступный рецепт (публичный или частный). Частные комментарии могут быть прочитаны только комментатором и владельцем рецепта. Редактировать рецепт может только владелец. Только комментатор может редактировать свои комментарии. Только владелец рецепта или комментатор может удалять комментарии. Итак, в основном я просто ищу идею расширить классическую модель безопасности на основе ролей контекстной ролью («владелец»), и, написав это, кажется, что единственное преимущество калитки для этого было бы, что я бы предпочел решение, основанное на фреймворке, который хорошо интегрируется с wicket (или даже такое решение, в котором интеграция уже обеспечивается wicketstuff).