2015-03-02 82 views
3

我想自定義站點管理員角色權限,即我需要啓用一項功能,以在相應的站點下爲站點管理創建用戶。我怎樣才能做到這一點?我需要用Hook來實現嗎?還是需要創建EXT?或者任何其他更簡單的方法來實現呢? 我需要啓用用戶創建併爲各站點下的站點管理員分配權限。我不想通過超級管理員來創建用戶。爲Life ray中的站點管理員角色定製權限?

回答

3

也許您可以創建一個自定義portlet,將其放置在控制面板中,其中只有填寫表單的網站管理員可以創建您直接作爲當前網站成員分配的用戶。

PRO: 我認爲你可以完成你的任務。

CON:

  • 你必須花時間去開發,這不是一個「點擊幾下的解決方案」。
  • 這不是權限自定義。

參考文獻: "Beginning Liferay Development" 這是一個有用的指南,解釋,全部採用Liferay的最佳實踐,如何開發一個完整的門戶,有「著名的」 KnowledgeBasePortlet。我建議你閱讀這一切,但你的問題的要點是:

  • 設置權限,只允許對站點管理員創建用戶
  • 添加Portlet的控制面板

注意: 正如您將看到的(創建實體操作),KnowledgeBasePortlet創建兩個自定義實體,您不需要這樣做:您需要的實體已經XIST。使用that chapter只是爲了瞭解如何調用方法來添加/編輯/刪除實體,您必須通過UserLocalServiceUtil執行相同的操作,但通過User實體執行。

+0

是的,我需要參考1)從哪裏開始? 2)我可以通過掛鉤來實現嗎?我需要創建新的portlet嗎? – Vinod 2015-03-09 14:16:37

+0

我編輯了答案,但是您並沒有創建鉤子,只是一個簡單的portlet。 – 2015-03-09 14:55:00

+0

正如您所建議的,我已經創建了一個portlet並將其添加到「site_administration.users」下的控制面板中。現在,如何將創建和編輯用戶屏幕導入到portlet或者是否需要創建添加和編輯用戶屏幕?任何建議請 – Vinod 2015-03-26 14:06:49

3

我不確定我是否瞭解您需要什麼(對不起,我嘗試用hypotesize)。

如果您已經有不同的網站,並且您需要以編程方式創建所有網站管理員用戶(一次性),則需要創建一個portlet(並將其部署爲控制面板portlet)。 您的portlet應該只是一個接口來調用一個方法......你的方法只需要

如果你喜歡你的portlet CA n將此方法暴露給Liferay,而不是使用UI,但使用Liferay cron作業。 你只需要在你的liferay-portlet中添加一個聲明。xml指向您的代碼:watch this simple guide

不同的是,如果您希望每次通過接口創建站點時都自動添加用戶,則可以使用鉤子並覆蓋數據庫上的實體創建事件。 網站位於組表中,因此您可以將servlet.service.events.post事件處理程序添加到服務事件中。 在那裏你可以打電話給你的代碼:read this useful post

我希望它對你有用。

+0

我需要在我的portlet中添加什麼接口以及如何調用方法。請幫我從兩天試試這個,但沒用。請 – Vinod 2015-03-27 13:40:27

+0

我不想以編程方式創建用戶。我需要從UI創建。我已經創建了一個portlet並部署在控制面板中。該portlet具有基本的用戶詳細信息和保存按鈕。點擊保存按鈕時,用戶詳細信息應該保存在現有的用戶表中。我在論壇中添加了一個問題,https://www.liferay.com/community/forums//message_boards/message/51162704。請幫助我 – Vinod 2015-03-27 13:43:06

+0

正如我在回覆中撰寫(和鏈接)一樣,並且已經在論壇中建議您應該使用:UserLocalServiceUtil.addUser() – 2015-03-28 10:46:57