2011-08-05 6 views
1

Нам нужно создать скрытые «системные» подпапки в каждом IGFolder, который создает обычный пользователь. Портлет галереи изображений размещается в основном на макетах частного сообщества всех обычных пользователей. Портлеты и их конфигурация предварительно сгенерированы, поэтому обычные пользователи не могут их изменить (layout.user. [Public | private] .layouts.modifiable = false).Liferay 6.0.5 - скрыть IGFolders от владельца на частном/публичном макете своего частного сообщества

Почему мы хотим это сделать В этих системных папках мы будем хранить автоматически созданные версии размеров загруженных изображений. Это связано с тем, что мы также импортируем WebContent/JournalArticle, представляющие галереи изображений, которые предоставляют разные размеры самих изображений. В конце концов, мы хотим отображать как IGFolders, так и контент JournalArticle таким же образом без особого специального кода.

Что я попробовал уже

  • Я пытался сделать это с помощью разрешений (ресурсные-акции/imgallery.xml => владелец-умолчанию), но на своих страницах сообщества пользователь также CommunityAdmin, который дает ему права делать & видеть почти все, что угодно он хочет. (PermissionCheckerBagImpl.isCommunityAdminImpl)

  • Я думал о создании макетов, которые не принадлежат пользователю его/ частного сообщества, но тестирование этого на публичной странице другого сообщества, что пользователи принадлежит не работает , Я не могу получить систему , чтобы отображать IGFolders текущего пользователя вообще, вместо отображаются папки сообщества.

  • Использование другого пользователя и группу для вложенных папок не получилось, если идентификатор_группы не соответствует одному из родительской папки папка идентификатор родительского установлен в 0, поэтому они больше подпапок на всех (IGFolderLocalServiceImpl.getParentFolderId).

Что может работать и я, наверное, просто не получить права

  • изменения владельца галереи изображений портлета/макет

  • возился с разрешения в путь я не думал

  • добавление еще одного слоя групп/сообществ

  • положить системные папки где-то еще (что, конечно, приводит
    к более кода для поддержания связи между ними и их
    родительской папки)

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

Любые идеи приветствуются, пожалуйста, не стесняются разработать, я совершенно новой для Liferay

+0

Я немного потерял то, что вы подразумеваете, сделав IGFolders похожими на контент JournalArticle и то, что вы пытаетесь сделать в целом. Не могли бы вы дать мне конкретную систему отсчета о том, чего вы действительно пытаетесь достичь? Разве размеры изображений уже не доступны на объектах изображения? Можете ли вы получить размер изображения, вызвав службу Liferay в шаблоне JournalArticle? – stackfish

ответ

1

Вы можете создать крюк плагин и переопределить в нем (вероятно, этот файл)

/portal/portal-web/docroot/html/portlet/image_gallery/view_folders.jsp

Там вы можете добавить код, чтобы игнорировать вашу «системную» папку, если она существует. Возможно, все «системные» папки могут иметь одно и то же имя (например, «_SYSTEM_FOLDER_»), с которым вы можете протестировать.

Обратите внимание, что это просто скрывает папки, поэтому, если кто-то знает folderId и имеет разрешение на просмотр/редактирование, они могут создать URL-адрес для доступа к нему.

+0

Согласитесь, это самое простое решение ... оно будет хорошо обслуживаться. Игра с разрешениями вызовет массу проблем в будущем развитии – lisak

+0

@Martin Gamulin: Спасибо за этот ответ. Это будет абсолютно работать, но также нуждается в настройке в select_folder.jsp и, возможно, в некоторых других jsps. Наконец, мы решили пойти на «исправление» в IGFolderLocalServiceImpl и InlineSQLHelperImpl.replacePermissionCheck, убедившись, что все системные папки (на самом деле более одного имени системной папки) фильтруются должным образом. –

 Смежные вопросы

  • Нет связанных вопросов^_^