Junky's IT Notebook

          統計

          留言簿(8)

          積分與排名

          WebSphere Studio

          閱讀排行榜

          評論排行榜

          Liferay的授權與內容管理(轉)

          Liferay的授權與內容管理

           

          本節主要內容是Liferay的授權操作以及內容管理,在介紹授權早作的同時將結合上一篇的內容,探討程序背后的執行流程,也會凸現出在進行自己的portlet開發時所要注意的權限相關代碼,為portlet的開發打下基礎。

           

           liferay-portal-4.1.2的權限管理主要有2部分構成:

          1.user的部門歸屬

          2.對單個portlet的授權

           

          超級用戶登陸系統后,將進入超級用戶的管理界面,管理界面總共有GuestPrivateCMSSupport 四層組成,即在Myplace中的4種視圖, 現對其進行介紹.

          Guest視圖:主要管理普通用戶的所訪問的主頁內容,在此視圖中可以管理展現在主頁上的各個portlet,管理portlet中展現的內容以及portlet的展現形式以及方位。Portlet的內容管理放在稍后的視圖中詳細講解,portlet的方位以及顯示形式后可以通過頁面上直接的拖放進行設置。

                默認情況下,我們所列的portlet就是匿名用戶所看到的門戶,在每個portlet的設置中,我們還看到了權限的設置,可以將這個portlet的配置,查看等權限(每個portlet的權限不相同,每個都有配置、查看權限,但是有個復雜的portlet如用戶管理的就有更多的如添加用戶、刪除用戶等權限)授予用戶,這里權限的授予分6級,直接授予用戶,授予組織、授予地點、授予用戶群、授予社群和授予客人(用戶群和社群是自定義的)。Liferay的用戶機制為公司—地點—組織—個人,所以授予某一高級的組,下掛的用戶將都會自動獲得權限。在我的應用中,我將WIKI加入了門戶首頁,同時將察看與刪除授予匿名用戶,所以,首頁就擁有了一個大家參與修改的區域WIKI了!

          Private 視圖:這個是超級用戶的私人界面,這里特別分析了幾個簡單portlet的權限管理的實現。

          HelloWorldPortlet位置Test>helloworld 這個portlet是最簡單的一個展示,而且僅僅只有view的功能,所以這個權限管理就是能否在用戶的視圖中顯示就行了,代碼中的權限代碼無,只是由layout調用HelloWorldPortlet。注:這里是通過設置直接調用HelloWorldPortlet,沒有經過Struts框架,所以代碼直接繼承GenericPortlet,不能由路徑訪問。

          Announcements位置,這個portlet中訪問路徑由struts配置文件指定,這個portlet代碼ViewAction繼承PortletActionPortletAction繼承的是Struts Action.portlet.xml中,

          <name>view-action</name>

          <value>/wiki/view</value>

          指定了這個portletview所調用的路徑,portal容器會根據struts的配置調用指定的Action。在進行action調用時,很顯然通過了Liferay擴展的PortalRequestProcessor(上一篇提到),也就進行了權限檢查。配置Announcements的路徑在liferayportlet.xml中配置,為/announcements/edit_configuration,同樣這也是一個struts路徑,她的權限管理也同view一樣,在PortalRequestProcessor中完成。

          IFramePortlet這個portlet也是一個簡單標簽的使用例子。在這個portlet中,與HelloWorldPortlet相同,也沒有Struts的路徑配置,而是直接在portlet.xml中定義了接受請求的Action,所繼承的StrutsPortlet由于不是由struts Action而是GenericPortlet擴展而來,所以在訪問的時候沒有通過PortalRequestProcessor,所以其內部明確調用了liferay的權限管理代碼:

          PermissionChecker checker =

                       PermissionThreadLocal.getPermissionChecker();

           

          由上面我們所分析的幾個簡單的portlet來看,以后在進行portlet開發時有2種選擇,當邏輯比較少時,我們可以象IFramePortlet一樣,通過對StrutsPortlet的繼承完成。當業務邏輯比較復雜時(多個路徑),采用Struts進行路徑配置時,最好同Announcements一樣,通過繼承PortletAction來將自身開發的portlet納入liferay的權限管理框架中。

           

          CMS視圖:明顯,這個層進行文檔管理,用過Guest視圖就可以知道門戶的所有的新聞文章都在journal中進行管理,對它的使用網上有很多很有用的文章,多用幾次也就熟悉了,強大的文本、圖像編輯功能可以就近使用而不再用自己編碼,肯定也是很愉快的了:)

           

          Support視圖:這個視圖也是其他用戶(非管理員用戶)登陸后的定制頁面,由管理員進行定制,主要操作和上面一致。

          posted on 2007-05-31 13:55 junky 閱讀(1153) 評論(0)  編輯  收藏 所屬分類: portal

          主站蜘蛛池模板: 剑河县| 鹤峰县| 漳浦县| 平湖市| 灌阳县| 咸丰县| 绥德县| 新源县| 晋中市| 蓝田县| 北京市| 驻马店市| 姚安县| 社旗县| 菏泽市| 伊金霍洛旗| 抚州市| 台北县| 澄迈县| 阳曲县| 东安县| 浪卡子县| 松阳县| 桃江县| 房产| 浦东新区| 阳新县| 巴南区| 离岛区| 嫩江县| 汾西县| 富阳市| 日照市| 龙口市| 亳州市| 磐石市| 米林县| 郓城县| 佳木斯市| 靖边县| 威海市|