Как создать пользовательский создаваемый / редактируемый тип контента в orchardproject.net cms

#.net #orchardcms

#.net #orchardcms

Вопрос:

Я настраиваю OrchardProject.net cms. Я бы хотел, чтобы пользователи могли отправлять «акт». Это простой ContentType с одним текстовым полем.

Это проще простого для пользователя с правами администратора, но я хочу, чтобы его создал обычный пользователь без доступа к панели администратора. Пользователи могут отправлять комментарии, но есть много препятствий, через которые нужно пройти, чтобы следовать этой модели. (Запись, часть, контроллер, ViewModel, представления и т.д.)

Я бы подумал, что система по умолчанию предоставляет это, но я не могу понять, как заставить ее сгенерировать его.

Ответ №1:

Если вы хотите предоставить роли возможность создавать и публиковать контент «Deed» на вашем сайте, вы можете зайти в Роли (Панель мониторинга -> Пользователи -> вкладка Роли в Orchard 1.1) и предоставить различные разрешения роли (существующей или новой). Затем вы должны назначить роль пользователю.

После добавления типа контента с именем Deed (обязательно укажите общую часть), на вкладке Роли предоставляются следующие разрешения:

Опубликовать или отменить публикацию документа для других,
Опубликовать или отменить публикацию документа,
редактировать документ для других,
редактировать документ,
удалять документ для других,
Удалить документ

Итак, например:

  1. Создайте роль, DeedCreator с двумя разрешениями «Опубликовать или отменить публикацию …» (в разделе «Действие»
  2. Вам также потребуется предоставить разрешения «Доступ к панели администратора» в the Orchard.Раздел фреймворка
  3. Создайте пользователя, User1 с ролью DeedCreator

Даже если вы предоставили разрешения панели администратора Access, пользователь сможет получить доступ только к странице создания документа на панели мониторинга — и ни к чему другому.

Если вы хотите разрешить анонимным пользователям (действительно, действительно, не рекомендуется), вы могли бы технически предоставить вышеупомянутые разрешения анонимной роли. Имейте в виду, что тогда анонимные пользователи будут иметь по крайней мере поверхностный угол атаки на вашу панель мониторинга. Любой пользователь может перейти к www.yoursite.com/admin и начать создавать контент Deed.

Обновление для каждого комментария

Когда я сохранил свой тестовый документ, вот как выглядело СООБЩЕНИЕ в /Admin / Contents /Create / Deed:

 Body.Text:<p>test useraddable add (save)</p>
Deed.UserField1.Value:blah blah
CommentsActive:true
CommentsActive:false
CommonPart.Owner:admin
CommonPart.ContainerId:
submit.Save:submit.Save
  

Кроме того, для __RequestVerificationToken было значение, которое я не уверен, как сгенерировать. (Возможно, с Html.BeginAntiForgeryPost помощником в Orchard.Mvc.Html пространство имен

Комментарии:

1. Хорошо, это дает мне 80% успеха, спасибо! В конечном счете, я бы хотел, чтобы они могли отправлять «Акт» с самого сайта. Какое значение для «действия» у меня есть для элемента формы? «~/Admin/Contents/Create/Deed»? Существует ли маршрут типа «~/Contents /Deed / Создать» или «~/Contents / Create / Deed»?

2. @DanielEli Смогли ли вы подтвердить значение для __RequestVerificationToken works с помощью Html.BeginAntiForgeryPost ? Если да, я бы сказал, что у вас есть детали для взлома того же сообщения, сгенерированного панелью мониторинга 🙂

3. еще не углублялся в это. Сможете ли вы выполнить сопряжение с этим? Теперь мне нужен пользовательский контроллер. Все остальное я сделал с расширениями codegen. Я могу заплатить. (Я надеюсь, что это не противоречит политике SO!) twitter:@danschlossberg github:danieleli