#.net #orchardcms
#.net #orchardcms
Вопрос:
Я настраиваю OrchardProject.net cms. Я бы хотел, чтобы пользователи могли отправлять «акт». Это простой ContentType с одним текстовым полем.
Это проще простого для пользователя с правами администратора, но я хочу, чтобы его создал обычный пользователь без доступа к панели администратора. Пользователи могут отправлять комментарии, но есть много препятствий, через которые нужно пройти, чтобы следовать этой модели. (Запись, часть, контроллер, ViewModel, представления и т.д.)
Я бы подумал, что система по умолчанию предоставляет это, но я не могу понять, как заставить ее сгенерировать его.
Ответ №1:
Если вы хотите предоставить роли возможность создавать и публиковать контент «Deed» на вашем сайте, вы можете зайти в Роли (Панель мониторинга -> Пользователи -> вкладка Роли в Orchard 1.1) и предоставить различные разрешения роли (существующей или новой). Затем вы должны назначить роль пользователю.
После добавления типа контента с именем Deed (обязательно укажите общую часть), на вкладке Роли предоставляются следующие разрешения:
Опубликовать или отменить публикацию документа для других,
Опубликовать или отменить публикацию документа,
редактировать документ для других,
редактировать документ,
удалять документ для других,
Удалить документ
Итак, например:
- Создайте роль, DeedCreator с двумя разрешениями «Опубликовать или отменить публикацию …» (в разделе «Действие»
- Вам также потребуется предоставить разрешения «Доступ к панели администратора» в the Orchard.Раздел фреймворка
- Создайте пользователя, 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