2011-05-23 41 views
2

我定製的OrchardProject.net釐米。我希望用戶能夠提交「契據」。這是一個帶有單個文本字段的簡單ContentType。如何創建一個用戶可創建/編輯內容orchardproject.net CMS型

這是一個具有管理員權限的用戶是小菜一碟,但我想一個普通用戶無需訪問管理面板來創建它。用戶可以提交評論,但是有很多事情需要跳過來遵循這個模型。 (錄音,部分,控制器,視圖模型,視圖等)

我覺得默認的系統提供了這一點,但我想不通的路線讓它生成它。

回答

1

如果你想給一個角色到您的網站上創建和發佈「契約」內容的能力,你可以進入角色(儀表板 - >用戶 - >在果園1.1角色選項卡),並給予不同的權限一個角色(現有的或新的)。然後,您可以將角色分配給用戶。

添加名爲契約內容類型後(一定要包括常見部分),該角色選項卡允許以下權限:

發佈或爲他人
取消發佈契據發佈或取消發佈契約
編輯契約爲他人
編輯契約
爲他人刪除契約
刪除契約

因此,例如:

  1. 創建角色,DeedCreator與兩個「發佈或取消發佈...」權限(在契約部分
  2. 您還需要授予「訪問管理面板「在Orchard.Framework部分
  3. 權限創建一個用戶,用戶1 作用DeedCreator

即使您授予訪問管理控制檯的權限s,用戶將只能訪問儀表板中的Create Deed頁面 - 沒有別的。

如果您想允許匿名用戶(實際上,真的,推薦使用而不是),您可以在技術上將上述權限授予匿名角色。請記住,匿名用戶將不得不攻擊到儀表板至少在表面層次的角度。任何用戶都可以導航到www.yoursite.com/admin並開始創建契約內容。根據註釋

更新

當我保存我的測試契約,這裏是什麼POST到/管理/內容/製作/契據看起來像:

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,這我不知道如何生成一個值。 (也許用在Orchard.Mvc的Html.BeginAntiForgeryPost幫手。Html命名空間

+0

好吧,這讓我80%的路上,thx!最終,我想讓他們能夠從網站本身提交「契據」。我對錶單元素有什麼「行動」的價值? 「〜/管理/內容/製作/契約」?有沒有類似「〜/ Contents/Deed/Create」或「〜/ Contents/Create/Deed」的路線? – DanielEli 2011-05-23 23:10:10

+0

太棒了!謝謝您的幫助! – DanielEli 2011-05-24 16:09:21

+0

@DanielEli您是否可以使用'Html.BeginAntiForgeryPost'來確認__RequestVerificationToken的值?如果是這樣,我會說你有詳細信息破解儀表板生成的相同的POST :) – 2011-05-24 16:11:34

相關問題